tech planet 2015 - 라인 redis clusters를 서원필님이 발표했다. 발표 내용 중 좋은 팁들이 나와서 메모해 둔다.

http://techplanet.skplanet.com/speaker_track1.html#track1_6




#tip 1(사진을 못 찍음)


apache coomon pools
- jmx optionon, gc time 50% 증가
- pool설정이 잘못되면, stream buffer의 빈번한 생성/과로 인해 GC 부하

cpu affinity
- redis, nic interrupt cpu 분리하는 편이 좋음
- high load 상황에서 cpu usage 20-30%까지 차이 발생

(tip#1 슬라이드의 나머지 내용은 잘 기억 안남)

# tip 2
max-memory
- data가 너무 크면 slaveof 시간등이 늘어나게 된다. 26G dump에 33분분

maxmemory-policy
- rehashing 중에 max-memory에 도달하면, LRU가 필요 이상으로 많은 메모리를 삭제하려는 문제가 있음
- 상황에 따라 N분간 LRU 삭제만 할 수도 있음
(hash 크기를 크게 하여 사용)

ziplist/intst 적극 활용
- 평균 45% 정도의 메모리 사용량 감소 효과
- 한번 ziplist/intset -> set/hash/zset/list로 바뀌면 다시 반대로 돌아가지 않는다.
- "zunionstore key 1 key" 형태로 하면 강제로 변경 가능하지만 fragmentation 문제 발생 가능
  -- mem_fragmentation_ratio:2.33 


# tip 3

Lua script 적극 활용
- number of I/O
- Atomicity

client-output-buffer-limit 설정
- write가 많으면 "client-output-buffer-limit.slave" 기본값으로는 slaveof 실패할 수 있음

사람은 실수를 한다.
- keys, shutdown, flushall, flushdb, save 등 위험한 명령어는 rename

기본적으로 하지 말아야 할 것들에 대한 정보
- src/latency.c, createLatencyReport()








Posted by 김용환 '김용환'