Redis 성능 모니터링 명령어 및 기법
KUKJIN LEE • 16시간 전 작성
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 클러스터 구성: 클러스터링을 통해 데이터와 부하 분산.
성능 최적화를 위한 체크리스트
-
명령어 사용 빈도 분석: MONITOR 명령어를 활용하여 비효율적인 명령어 식별.
-
메모리 사용량 확인: INFO memory 출력 값 분석.
-
클라이언트 연결 상태 점검: CLIENT LIST로 비정상 연결 확인.
-
TTL(Time-To-Live) 설정: 데이터 만료 정책을 통해 불필요한 키 제거.
-
메모리 정책 구성: maxmemory 및 maxmemory-policy를 적절히 설정.
이 문서는 Redis 성능 모니터링 및 기본적인 성능 튜닝 방법을 다루었습니다.