Redis 성능 모니터링 명령어 및 기법

KUKJIN LEE's profile picture

KUKJIN LEE1개월 전 작성

INFO 명령어

INFO 명령어는 Redis 서버의 상태 정보를 제공하는 명령어로, 다양한 카테고리의 정보를 조회할 수 있습니다. 주요 카테고리는 다음과 같습니다:

  • server: Redis 버전, 운영 체제 정보 등 서버 관련 정보.

  • clients: 연결된 클라이언트 정보.

  • memory: 메모리 사용량 및 메모리 할당 정보.

  • persistence: 영속성 설정 및 RDB, AOF 관련 상태.

  • stats: 명령어 실행 통계.

  • replication: 복제 상태.

  • cpu: CPU 사용량 통계.

  • keyspace: 데이터베이스별 키 공간 상태.

명령어 사용 예

redis-cli INFO memory

메모리 관련 정보를 출력

 

MONITOR 명령어

MONITOR 명령어는 Redis 서버에서 실행되는 모든 명령어를 실시간으로 모니터링합니다. 성능 문제를 디버깅하거나 클라이언트의 비효율적인 쿼리를 추적할 때 유용합니다.

사용법

redis-cli MONITOR

MONITOR 명령어는 성능에 영향을 미칠 수 있으므로 운영 환경에서 주의하여 사용해야 합니다.

 

CLIENT LIST 명령어

CLIENT LIST 명령어는 Redis에 연결된 클라이언트의 목록과 상태 정보를 제공합니다. 이 정보를 통해 비정상적으로 많은 연결을 확인하거나 특정 클라이언트를 차단할 수 있습니다.

주요 출력 정보

  • id: 클라이언트 ID.

  • addr: 클라이언트의 IP와 포트.

  • age: 클라이언트 연결 지속 시간.

  • idle: 클라이언트의 비활성 시간.

  • flags: 클라이언트 상태 플래그.

  • db: 클라이언트가 사용하는 데이터베이스 번호.

명령어 사용 예

redis-cli CLIENT LIST

메모리 사용량 모니터링

메모리 관련 주요 INFO 출력 항목

  • used_memory: Redis가 현재 사용 중인 메모리.

  • used_memory_peak: Redis가 기록한 최고 메모리 사용량.

  • used_memory_rss: 운영 체제가 보고한 메모리 사용량.

  • mem_fragmentation_ratio: 메모리 단편화 비율.

이 값을 주기적으로 모니터링하여 메모리 사용량 증가 추세를 파악하고 최적화를 수행해야 합니다.

성능 튜닝 개념

  • maxmemory 설정: Redis가 사용할 최대 메모리를 설정하여 OOM(Out of Memory) 오류를 방지.

  • maxmemory-policy 설정: 메모리 초과 시 삭제 정책 지정 (예: volatile-lru, allkeys-lru).

  • Redis 데이터 구조 최적화: 데이터 구조를 적절히 선택하여 메모리 사용량 절감.

  • Redis 클러스터 구성: 클러스터링을 통해 데이터와 부하 분산.

성능 최적화를 위한 체크리스트

  1. 명령어 사용 빈도 분석: MONITOR 명령어를 활용하여 비효율적인 명령어 식별.

  2. 메모리 사용량 확인: INFO memory 출력 값 분석.

  3. 클라이언트 연결 상태 점검: CLIENT LIST로 비정상 연결 확인.

  4. TTL(Time-To-Live) 설정: 데이터 만료 정책을 통해 불필요한 키 제거.

  5. 메모리 정책 구성: maxmemory 및 maxmemory-policy를 적절히 설정.

이 문서는 Redis 성능 모니터링 및 기본적인 성능 튜닝 방법을 다루었습니다.

New Tech Posts