Latency мониторинг
Тема дорожной карты · Redis
Мониторинг задержки Redis — это практика измерения и диагностики всплесков времени ответа in-memory хранилища для обеспечения соблюдения субмиллисекундного SLA распределённым кэшем. Redis предоставляет встроенную систему мониторинга задержки, активируемую параметром latency-monitor-threshold 100 в redis.conf, после чего можно запускать LATENCY LATEST, LATENCY HISTORY и LATENCY RESET для просмотра временных шкал событий. Распространённые причины всплесков задержки Redis: медленные команды (выявляются через SLOWLOG), фрагментация памяти, fork() на уровне ОС при создании RDB-снимков и сетевые флуктуации между клиентом и Redis-сервером. Включение latency-tracking yes в сочетании с redis_exporter для Prometheus даёт операторам дашборды с перцентилями задержки Redis в реальном времени по всему флоту. Проактивное управление задержкой Redis критически важно для любого приложения, зависящего от кэширования в памяти для сокращения времени ответа для конечных пользователей.
Как это работает
Latency мониторинг использует INFO (server stats), MONITOR (live-поток команд — только для debug, дорого), SLOWLOG (лог медленных команд с порогом slowlog-log-slower-than), CLIENT LIST (текущие соединения), LATENCY-команды (встроенная диагностика latency). Внешнее: prometheus redis_exporter, RedisInsight (GUI), Grafana-дашборды. Ключевые метрики: hit ratio (keyspace_hits / (hits + misses)), evicted keys, memory fragmentation ratio, connected clients, replication lag.
Когда применять
redis_exporter — с первого дня; метрики крошечные, но спасают день, когда что-то идёт не так. Алерты: memory > 80% maxmemory (eviction storm близко), connected_clients > 80% maxclients, replication lag > 30s, падение hit ratio > 20% за 1h. SLOWLOG — для поиска дорогих команд (KEYS, HGETALL на большом хеше, ZRANGEBYSCORE на огромном sorted set). Никогда не запускайте MONITOR в production больше секунд.
Типичные ошибки
Ловушки Latency мониторинг: MONITOR оставлен работать и валит throughput; alerts только на абсолютные метрики (нет rate() — пропускаете тренды); игнор memory fragmentation (mem_fragmentation_ratio > 1.5 — RAM тратится впустую — рестарт или defrag); нет разделения latency cache-miss от total request latency на дашбордах.