2014-02-26 2 views
2

내 노트북에는 8GB RAM 만 있습니다. Redis를 많이 사용하는 테스트 앱에 스트레스를가했습니다. INFO 출력을 보면 사용 된 메모리가 31.83GB가 될 수있는 것을 알 수 없었습니다. Rdb 덤프는 300MB입니다.Redis 정보 읽기

# Memory 
used_memory:34177666096 
used_memory_human:31.83G 
used_memory_rss:412901376 
used_memory_peak:34175483600 
used_memory_peak_human:31.83G 
used_memory_lua:31744 
mem_fragmentation_ratio:0.01 
mem_allocator:libc 

질문 : RDB 덤프가 너무 작고 used_memory_human가 너무 커서 왜

? 실제 메모리 사용을 식별하는 방법 (INFO는 다른 것을 보여줍니다)?

답변

5

Redis는 메모리와 디스크에서 동일한 데이터 표현을 사용하지 않습니다. 각각은 최적화되어 있습니다. in-disk 표현은 디스크 공간 사용을 줄이는 반면 메모리 내 표현은 액세스 속도에 최적화되어 있습니다. 따라서 파일 크기를 사용 된 RAM과 비교할 수 없습니다.

used_memory/used_memory_human은 Redis가 libc에 할당 한 메모리입니다. OS에서 볼 수있는 크기 인 used_memory_rss보다 훨씬 크기 때문에 시스템이 스와핑 중이므로 성능 문제가 발생할 수 있습니다.

+0

+1은 오버 커밋을 나타냅니다. –