100%CPUを使用するkswapdが表示されます... kswapdが非常に使用されているプロセスを代理して確認するにはどうすればよいですか?
100%CPUを使用するkswapdが表示されます... kswapdが非常に使用されているプロセスを代理して確認するにはどうすればよいですか?
回答:
kswapdは、すべてのプロセスで物理的に利用できるよりも大きいメモリ要求に応じて、スワップスペースを管理しています。
これはプロセスに依存せず、どのページがいつアクセスされるかだけに関心があります(もちろんこれよりも複雑ですが、物事を単純にするために、このように表示することもできます)。
したがって、本当の問題は、「kswapdが常にページングを必要とする原因となっているメモリに最も大きな負荷があるプロセス」です。
これは、「top」を使用してメモリ使用ソートモードに切り替えると最も簡単に答えられます。
top
IO待機に時間は費やされておらず、システムにほぼ100%の時間が費やされていることを教えてくれます。さらに詳しい情報:スワップが使用されているときにkswapdは、多くの場合、100%のCPUを使用しています
スクリプトを作成することもできますが、topを使用して実行することもできます。
ラントップはその後、プレスOが続いたp、その後入力します
これで、すべてのプロセスがスワップ使用量でソートされ、どのプロセスがそれを使用しているかを確認できます
Ubuntu 15.10以降を使用している場合、これは実際にはバグの結果である可能性があります。特に、システムがスワップパーティションのない仮想マシン(AWS EC2など)である場合は特にそうです。この問題は他のディストリビューションにも存在しますが、執筆時点では、同じ修正が普遍的に機能するかどうかは不明です。
一時的な回避策:
sudo ln -s /dev/null /etc/udev/rules.d/40-vm-hotadd.rules
sudo reboot
これにより、XenおよびHyper-V仮想マシンのホットアドRAM / CPUが無効になることに注意してください。
echo 3 > /proc/sys/vm/drop_caches
それが起こったらそれを軽減することがわかりました。私は今、cronジョブのコマンドを先制的に持っていますが、それは助けになるか、少なくともコンピューターから離れているときのOOM大虐殺の期間を制限するようです。
また、kswapd
どこかにバグがあるようです。できれば古いカーネルでのみです。
ほぼ毎日、kswapdは、より大きなクラスター(ただし、現在のカーネルではない)の一部のマシンでランダムに動作します。両方のkswapdプロセスで100%CPU。他の実行中のプロセス(sshシェルを除く)、十分な空きRAM(700 MB以上)、SWAPはまったく使用されていません。スワップインもスワップアウトもありません。
特定のマシンがヒットし、別のマシンがヒットしない理由はまだ説明されていません。通常、短い時間内に複数のマシンにヒットするため、完全にランダムではないようです。アイドル状態のマシン、および高圧下にあるマシンは、効果による影響を受けにくいようです。そのため、作業負荷で何かをする必要があり、マシンがアイドル状態でもビジーでもない場合にのみヒットします。
問題が何も起こらなければ、もう役に立ちません。すべてのプロセスを殺し(殺せなくなることはありませんでした)、すべてのファイルシステムをアンマウントします。kswapd
100%CPUのままです。SMPカーネルでのスピンロックレースが疑われますが、間違っている可能性もあります。
おそらく私の答えをご覧くださいserverfault.com/questions/316995/#493257
ノート: