AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

Redis Slow Log로 지연된 명령어 디버깅 방법

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

DevOps

대상자

Redis를 프로덕션 환경에서 운영하는 소프트웨어 개발자 및 DevOps 엔지니어

핵심 요약

  • Redis Slow Log는 명령어 실행 시간이 설정된 임계값을 초과할 때 자동으로 기록하여 성능 병목 현상을 파악하는 도구
  • slowlog-log-slower-than(마이크로초 단위)과 slowlog-max-len(기록 보관 수) 두 가지 설정으로 Slow Log의 동작을 제어 가능
  • SLOWLOG GET 명령어로 로그 조회, SLOWLOG RESET으로 로그 초기화 가능

섹션별 세부 요약

1. Redis Slow Log 개요

  • Redis는 실행 시간을 기준으로 지연된 명령어를 기록하는 내장 기능 제공
  • 네트워크 I/O 시간은 제외하고 Redis 내부 처리 시간만 측정
  • 고 트래픽 시스템에서 성능 문제를 빠르게 파악 가능

2. Slow Log 설정 방법

  • slowlog-log-slower-than:

- 0: 모든 명령어 기록

- -1: 기능 비활성화

- 예: CONFIG SET slowlog-log-slower-than 10000 (10ms 이상 지연 시 기록)

  • slowlog-max-len:

- 메모리에 보관할 로그 수 설정

- 예: CONFIG SET slowlog-max-len 128

3. 로그 조회 및 관리

  • SLOWLOG GET [수]:

- 예: SLOWLOG GET 5 → 최근 5개의 지연 로그 출력

- 각 항목: ID, 타임스탬프, 실행 시간(마이크로초), 명령어 및 인자 포함

  • SLOWLOG RESET:

- 모든 로그 즉시 삭제 (복구 불가)

4. 지연 원인 분석 사례

  • KEYS/SMEMBERS 대규모 데이터셋 사용
  • 트래픽 증가 시 CPU 과부하
  • Lua 스크립트 성능 저하

결론

  • slowlog-log-slower-thanslowlog-max-len을 적절히 설정해 지연 명령어를 모니터링하고, SLOWLOG GET으로 실시간 분석
  • SLOWLOG RESET은 로그 관리 시 주의 깊게 사용해야 하며, 성능 최적화를 위해 주기적으로 확인 권장