Redis Monitoring Metrics

adam2·2021년 10월 12일
0

redis

목록 보기
5/5

redis는 많은 트래픽을 처리할 수 있기 때문에, redis에 문제가 생기면 전체 성능 저하로 이어질 수 있다.

info all명령으로 정보를 수집할 수 잇는 redis 자체의 메트릭

대항목항목내용
memoryused_memory_rssredis가 현재 사용하고 있는 실제 물리 메모리 양. 실제 메모리 사용량이 많으면 swap이 일어나서 성능이 떨어진다.
used_memory현재 redis가 계산하고 있는 사용 메모리 양. malloc의 값을 저장하고 있다가 보여준다. redis가 할당을 요청한 메모리의 양.
mem_fragmentation_ratioused_memory와 used_memory_rss의 비율.비율이 1보다 높으면 swap이 발생하고 있다고 보면 된다.
instantaneous_ops_per_sec초당 실행 명령수. redis는 cpu의 영향을 받으므로, 더 성능이 좋은 cpu를 쓰면 명령처리량이 늘어난다. per_sec이 낮다는건 실제로 트래픽이이 작을수도 있고, 처리하는데 오래걸리는 명령을 실행해서 전체적으로 처리하는 양이 줄어들수도 있다.
total_commands_processed지금까지 처리한 명령 수
expired_keys지금까지 expireation이 발생한 이벤트 수
keyspace_hits캐시 hit수
keyspace_missescache miss count
clientsconnected_clients현재 접속해있는 클라이언트 수. redis는 싱글 스레드 기반이라 클라이언트가 지속적으로 연결/연결 해제할 경우 성능이 떨어지므로 해당 값이 크게 계속 바뀌면, 성능이 떨어진다.
maxclients접속할 수 있는 최대 클라이언트의 수
replicationmaster_repl_offsetprimary의 replication offset
slave_repl_offsetsecondary의 replication offset. replica에만 존재하고, master_repl_offset - slave_repl_offset이 현재 replication lag이다

os

  • physical mem
  • virtual mem
    redis는 inmemory solution이다보니 스왑이 발생하면 성능이 많이 떨어짐. rss를 보고 실제 메모리 사용량이 적도록 관리해야함

메모리 파편화 일어나면 used_memory가 4기가인데, rss는 12기가일수 있다. used memory보다 rss값을 보는게 중요

Host Metrics

  • redis cpu 사용률
  • 몇개의 command를 처리하냐
  • 메모리 사용량(free memory)
  • 스왑 발생하지 않도록
  • network in/out size
  • 과도하게 사용량 많으면 뭔가 큰 벨류를 가진 키가 계속 전송되고 있거나 대량의 데이터가 복사되고 있는 상황일 수 있음
  • disk usage
  • 클라우드 환경에서는 크게 신경 안써도 됨

명령 모니터링

info all 명령의 commandstats 파트를 확인한다.
O(n) 관련 명령의 calls와 usec_per_call이 증가하는지를 확인해야 한다.

0개의 댓글