RedisのValueは1.5 gに

1289 ワード

最近のオンラインでは、Webシステムの論理に問題が発生したため、redisクラスタ内のノードのメモリ使用量が急上昇しました.
急いでチェック・・・
発見原因はあるkeyのvalue値が1.5 gに達したことであり、info Memory情報は以下の通りである.
# Memory
used_memory:1793327880
used_memory_human:1.67G
used_memory_rss:1319301120
used_memory_peak:2056544368
used_memory_peak_human:1.92G
used_memory_lua:36864
mem_fragmentation_ratio:0.74
mem_allocator:jemalloc-3.6.0
# Clients
connected_clients:6
client_longest_output_list:67963
client_biggest_input_buf:0
blocked_clients:0
client_longest_output_list :           ,       
client_longest_output_list          ?

次の問題が発生しました.
rssの量はusedの量より大きく、valueデータがハードディスクに交換されたことを示しています.この場合、操作に明らかな遅延が生じる可能性があります.
急いでwebシステムにコードをロールバックさせて、手動delでこのkeyを落として、メモリが成長を停止することを発見して、しかしredisのused_memoryの減少も顕著ではなく,毎秒0.5 M程度減少した.
メモリがすぐに解放されないのはなぜですか?
Redisがメモリを解放すると、ディスペンサは、オペレーティングシステムにメモリを返す可能性があります.
ソリューション:redisを再起動すると、メモリがすぐに解放され、lowではないかと気づきます.
http://www.cnblogs.com/mushroom/p/4738170.html
http://www.infoq.com/cn/articles/tq-redis-memory-usage-optimization-storage/