2014-02-26 153 views
2

我的筆記本電腦只有8GB內存,我試圖壓力測試我的應用程序,它嚴重使用Redis。當我看着INFO輸出,我無法弄清楚如何使用內存可以是31.83GB。 Rdb轉儲只有300 MB。閱讀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不會在內存和磁盤上使用相同的數據表示形式。每一個都經過優化。內存中表示針對訪問速度進行了優化,而磁盤上的表示則減少了磁盤空間使用量。所以你不能比較文件的大小和使用的RAM。

used_memory/used_memory_human是由libc分配給Redis的內存。因爲它比used_memory_rss大得多,這是操作系統所看到的大小,這意味着您的系統正在交換,所以您應該會遇到一些性能問題。

+0

+1指出過度使用。 –