実稼働サービスにRedisを使用し、パフォーマンスに悪影響を与えるスワッピングを回避しようとしています。
私はスワップが依存しているswap_tendencyによってトリガーされることを学びました
swap_tendency = maps_ratio/2 + swappiness +苦痛
モニタースクリプトの/proc/meminfo
からmapped_ratio/distressを取得するにはどうすればよいですか?
または、システムがページを交換することを通知できるパラメータはありますか?
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メモリ-実装ノート
「これは、VMがページを再利用するのにどれだけの難しさがあるかを測定したものです。VMがメモリを再利用しようとするたびに、ページを再利用するために、各ゾーンの非アクティブなリスト。リストを通過するたびに、そのゾーンの非アクティブなクリーン+空きページの数が最低水準点を超えていない場合、nは1つ減ります。 100として測定>> n” 5
多くのドキュメントを調査すると、「苦痛」はカーネルカウンターであるかのように聞こえますが、そうではありません。むしろ、メモリの各ゾーンがスキャンされているときに使用される値であり、メモリのページフレームがカーネルによってスキャンされて再利用されるにつれて徐々に増加します。これについての議論はこのQ&Aの範囲を超えていますが、「Linuxカーネルについて」という本のセクションに興味がある場合は、 第17章:ページフレームの再利用 。 「distress」の値は、ゾーンがスキャンされるときの値「prev_priority」から取得されます。