本番サービスにRedisを使用しようとしていて、パフォーマンスに悪いスワップを避けたいと思います。
私はスワップが次に依存するswap_tendencyによってトリガされることを理解しています。
swap_tendency =mapped_ratio/2 + 交換の程度 + 痛み
/proc/meminfo
監視スクリプトからmapped_ratio/distressをどのように取得しますか?
または、システムがページを交換することを知らせるパラメータはありますか?
答え1
マッピング率
mapped_ratio
次のように計算できます。
mapped ratio = (nr mapped * 100) / total memory;
源泉:https://www.cs.columbia.edu/~smb/classes/s06-4118/l19.pdf
数値マッピング
値はnr_mapped
以下から読み取ることができます/proc/vmstat
。
$ grep nr_mapped /proc/vmstat
nr_mapped 47640
悩む
この記事によると、タイトルは次のとおりです。Linuxメモリ - 実装ノート
「これは、仮想マシンがページを回収するのがどれほど難しいかを示す尺度です。お住まいの地域の非アクティブクリーン+フリーページ数が最低透かしを超えない場合、n減算1は100 >> nとして測定されます。5
多くの文書を研究すると、「ディストレス」がカーネルカウンターのように聞こえますが、実際にはそうではありません。代わりに、各メモリ領域をスキャンするために使用される値であり、カーネルがメモリページのフレームを回収しようとしたときに値が徐々に増加します。これについての議論はこのQ&Aの範囲を超えていますが、本の「Linuxカーネルの理解」の部分が気になる場合は、第17章:ページフレームのリサイクル。 「distress」の値は、その領域をスキャンするときに「prev_priority」の値から来ます。