より具体的には、この情報をプログラム内から、できればスワッピングを開始する直前に見つけて、対応できるようにしたいと考えています。これまでのところ、私は見つけました:
/proc
あまり役に立たない内の情報mincore
syscall は Linux と BSD で利用できるようですが、興味のあるすべてのページを渡す必要があります (これで十分かもしれませんが、少し面倒です)。
他にアイデアはありますか?
vmstat
2秒ごとに実行するには、「vmstat2」と言います。次のような出力が得られます。
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 16124 431352 439000 0 0 4 2 37 18 0 0 100 0 0
「si」列と「so」列は「swap-in」と「swap-out」です。Swapdは、スワップデバイスにあるメモリの量です。Swapdは安定している必要があり、siなどはゼロです。
覚えて:
「システムの交換ですか」ではなく、「私のプログラムの交換ですか」と実際に尋ねるべきではありません。あなたのプログラムは他の人をスワップさせることができます-他の人はあなたをスワップさせることができます、など。いずれにせよ、それが起こったとき-パフォーマンスd ... i..e ...s...。