기본 콘텐츠로 건너뛰기

라벨이 UNLINK 비동기 삭제인 게시물 표시

Redis 메모리 폭증과 eviction 정책 미스매치 사례 분석 및 대응 가이드

Redis 메모리 폭증과 eviction 정책 미스매치 사례 분석 및 대응 가이드 AI 생성 이미지: Redis 메모리 폭증과 eviction 정책 미스매치 사례 사례 개요 — 어떤 상황에서 메모리가 급증했는가 운영 중인 Redis 클러스터(최대 메모리 32GB, eviction=volatile-lru)에서 특정 일자 오전 10:00~11:30 사이 메모리 사용률이 급격히 상승했다. 평소 오전 API 피크와 겹쳐 동시 쓰기 요청이 늘었다. 같은 시간대에 배치·집계 작업이 TTL 없이 결과를 캐시에 적재해 소멸되지 않는 키가 누적된 것이 주된 원인으로 확인됐다. 영향과 증상은 다음과 같다. 서비스 영향: API 평균 응답시간이 50ms에서 400ms로 악화했다. 일부 요청은 503 또는 타임아웃을 반환했고, DB에서 롤백과 쿼리 폭증이 발생해 전반적인 서비스 지연이 초래됐다. 시간대·트래픽 패턴: 오전 피크에 동시 쓰기가 집중되는 가운데 배치 입력이 겹치며 쓰기 비중이 급증했다. 사용자 리포트·알림: 프론트엔드에서 느린 페이지와 연속 오류가 보고됐다. 모니터링에는 High Redis memory usage, 연결된 클라이언트 수 증가, slow commands 증가가 포착되었으나 eviction count는 기대만큼 오르지 않아 eviction 정책과 실제 동작 사이의 미스매치가 의심됐다. 이번 사건은 Redis 메모리 폭증과 eviction 정책 미스매치 사례로 분류할 수 있다. 실무 체크리스트: TTL 적용 여부와 배치의 캐시 적재 방식을 우선 점검하고, eviction 정책(정책 타입·maxmemory 설정)과 모니터링 지표(eviction count, used_memory, connected_clients, slowlog)를 함께 확인하라. 초기 탐지와 핵심 진단 지표 메모리 이상 징후가 보이면 우선 Redis 내부 상태를 실시간으로 수집해 원인 범위를 좁히세요. 핵심 명령은 INFO MEMORY와 INFO STATS이며, 다음 ...