OS/Linux

Redis 모니터링 정책 및 가이드

_눙이_ 2021. 10. 18. 17:01
반응형

Redis에 메모리가 부족하면 어떻게 됩니까?

OOM 킬러에 의해 프로세스가 종료되거나 오류로 인해 충돌 속도가 느려지기 시작합니다.

키가 없을 경우 3MB 메모리 사용량이 발생 됩니다.

1백만 개의 경우 대략 85MB ~ 100MB 메모리 사용량이 나타납니다.


키는 DB_Size(Keys)로 확인 가능합니다.

 

CLI 창에서 info memory 입력 시 Redis 메모리 사용률 과

총 시스템 메모리를 확인하실 수 있습니다.

 

가능한 한 30% 정도 여유 메모리를 갖도록 서버를 운영 해야합니다.

시스템 메모리가 16gbRedis 서버가 최대 12gb정도 사용 하도록 합니다.

 

1. Maxmemory : 메모리 사용량 제한

 

maxmemory

redis에서 사용할 수 있는 최대 메모리를 값을 설정해줍니다.

 

redis.config 또는 Configuration에서 설정 가능합니다.

ex) maxmemory 1gb

 

논리적으로 사용되고 있는 메모리의 크기가 maxmemory보다 커지는 경우

메모리 정책(Memory-policy)에 따라 아래 방식처럼 처리됩니다.

1. 메모리 정책이 설정되어 있지 않은 경우, 에러가 발생한다.

2. 메모리 정책이 설정되어 있는 경우, 값이 추가될 때마다 메모리 정책에 따라 데이터가 삭제된다.

2. Maxmemory-policy : 메모리 정책

max-memory만큼 메모리를 사용하게 되면, 메모리 정책에 따라 과거에 만들어진 키들이 삭제됩니다.

 

redis.config 또는 Configuration에서 설정 가능합니다.

ex) maxmemory-policy allkeys-lru

옵션 설명
volatile-lru

만료 시간이 있는 키 중 최근에 사용하지 않은 키를 제거 하여 공간을 확보 합니다.

volatile-ttl

만료 시간이 있는 키 중 수명이 짧은 키를 제거 하여 공간을 확보 합니다.

allkey-lru

모든 키를 대상으로 최근에 사용하지 않은 키를 제거 합니다.
allkeys-random

모든 키를 대상으로 임의로 키를 제거합니다.
noeviction (default) 기존 데이터 삭제 안함. 오류가 반환 됩니다.

 

반응형