Linux 3.1で実行しているext4でフォーマットされたハードドライブのDebian sidを使用しています
以前のLinuxバージョン(おそらく3.0より前)で、メモリが不足し、スワップが有効になっていない場合、プログラムは通常クラッシュします。これは私の環境に最適です。重要な操作のないシンプルなWebブラウジングです。つまり、メモリを大量に消費する悪いWebサイトに偶然出くわすと、端末が使用できなくなることなくクラッシュします。
しかし、私の現在のセットアップでは、コンピューターはバックグラウンドで激しいI / Oスループットでハングします。iotopは、kswapd0が犯人であることを明らかにします。これは、スワップが原因であることを意味します。使用後にswapon -s
有効にされた任意のスワップを決定するために、私が使用するswapoff -a
すべてのスワップを無効にするとswapon -s
、すべてのスワップが無効になったことを確認するために再び。
次に、メモリ使用量を最大化してみました。悲しいかな、私が期待した動作は起こりませんでした。代わりに、kswapd0は何度も何度もRAMをスワップアウトしようとしますが、スワップスペースがないため失敗します。決してあきらめないので、コンピューターは永遠のI / Oの激しい凍結にロックされ、ディスクの状態が悪くなります。
私はしようとして何か間違っていswapoff -a
ますか?振る舞いが以前のものと異なるのはなぜですか(おそらく3.0以前)?
fstab
スワップに関する行をコメントするだけで十分だと思います。動作が同じ場合に試してください。
swapoff -a
はスワップを永続的に無効にする必要があります。つまり、次回の再起動後も無効のままにしておく必要があります。これを確認しました。それでも、次回の再起動後のセッション中にI / Oの「ストーム」が発生します。記録でswapoff -a
は、その時点でスワップが0だったため、I / Oの「ストーム」は私が行った瞬間には発生しませんでした。
swapoff -a
はありません。
swapoff -a
それ自体を実行すると、大量のI / Oが生成されます(実際のRAMが十分にない場合、プロセスが強制終了される可能性があります)。swapoff -a
I / O「ストーム」を引き起こしたのはそれではないのですか?