DBAtlas · データベース運用アトラス

メモリ使用量と断片化を分析し、active defrag を有効にする

Redisメモリ

コマンド

INFO memory
# Fields to check: used_memory_human, used_memory_rss_human, mem_fragmentation_ratio, mem_fragmentation_bytes, allocator_frag_ratio
MEMORY STATS
# If fragmentation is high and persistent, enable active defrag (requires jemalloc):
CONFIG SET activedefrag yes
CONFIG SET active-defrag-ignore-bytes 100mb
CONFIG SET active-defrag-threshold-lower 10
# Ask the allocator to return free pages to the OS:
MEMORY PURGE

概要

Redis がデータに割り当てたメモリ (used_memory) と OS から見た RSS の差、断片化率、メモリの内訳を表示する。必要に応じて実行時に active defrag を有効にする。

使用する場面

RSS がデータセットより明らかに大きい場合、一括削除 / 有効期限切れの後もメモリが減らない場合、または OOM のリスクが生じた場合。

注意

mem_fragmentation_ratio は小さなデータセットでは誤解を招く (例: 2 MB のデータで 4.0)。絶対値については mem_fragmentation_bytes を確認する。比率が 1 未満の場合は断片化ではなくスワップを意味し、レイテンシを引き起こす。active defrag は CPU を消費するため、active-defrag-cycle-max で上限を設ける。永続化するには CONFIG REWRITE または redis.conf が必要。

DBAtlas で開く →

関連項目