スワップはいつトリガされ、swap_tendencyを計算するには?

スワップはいつトリガされ、swap_tendencyを計算するには?

本番サービスに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」の値から来ます。

引用する

関連情報