DBAtlas · 데이터베이스 운영 아틀라스

eviction, 만료, OOM 오류 진단

Redis메모리

명령어

INFO stats
# Fields to check: evicted_keys, expired_keys, expired_stale_perc, keyspace_hits, keyspace_misses, total_eviction_exceeded_time (7.0+)
INFO keyspace
CONFIG GET maxmemory
CONFIG GET maxmemory-policy
INFO memory
# The value that triggers eviction: used_memory - mem_not_counted_for_evict, compared with maxmemory

하는 일

evict된 key와 만료된 key 수, 캐시 적중률, TTL이 있는 key 비율, maxmemory 대비 eviction을 트리거하는 메모리 값을 보여 준다.

사용 시점

애플리케이션이 'OOM command not allowed when used memory > maxmemory'를 받을 때, 캐시 적중률이 떨어질 때, 또는 key가 예기치 않게 사라진다는 보고가 있을 때.

주의

noeviction 정책에서는 maxmemory에 도달하면 쓰기 명령이 OOM 오류를 받고 읽기는 계속 동작한다. volatile-* 정책에서는 TTL 없는 key가 evict되지 않으며, TTL이 있는 key가 없으면 noeviction처럼 동작한다(INFO keyspace의 expires 확인). maxmemory를 물리 RAM에 너무 가깝게 설정하지 않는다: 복제 버퍼와 fork 중 copy-on-write를 위한 여유를 남긴다.

DBAtlas에서 열기 →

관련 항목