지연 원인 진단 (LATENCY DOCTOR, histogram, commandstats)
Redis성능명령어
# Enable the latency monitor (record events above 100 ms):
CONFIG SET latency-monitor-threshold 100
LATENCY LATEST
LATENCY HISTORY command
LATENCY DOCTOR
# Per-command latency distribution and percentiles:
LATENCY HISTOGRAM GET SET HGETALL
INFO latencystats
# Most expensive commands by total CPU time:
redis-cli -h redis1 -p 6379 INFO commandstats | sort -t= -k3 -rn | head
# On the server host, baseline latency outside Redis (VM/steal detection, 30 s):
redis-cli --intrinsic-latency 30
LATENCY RESET하는 일
latency monitor는 fork, AOF fsync, expire cycle, 느린 명령 같은 이벤트의 지연 스파이크를 기록한다. 명령별 지연 백분위수와 총 CPU 시간 기준 가장 비용이 큰 명령을 보여 주며, 호스트 수준의 기준 지연을 측정한다.
사용 시점
애플리케이션에서 p99 지연 스파이크가 보이고 SLOWLOG가 깨끗한데도 성능 저하 불만이 계속될 때.
주의
latency-monitor-threshold 기본값은 0(꺼짐)이며 진단 후 이전 값으로 되돌린다. SLOWLOG는 명령 실행 시간만 측정하며 네트워크나 큐 대기는 보지 못한다. LATENCY 이벤트는 fork나 fsync 같은 서버 내부 정체도 포착한다. --intrinsic-latency는 CPU를 소비하며 Redis 서버를 호스팅하는 머신에서 실행해야 한다.