質問: スワップを完全に無効にする方法は? debian sid、ext4でフォーマットされたハードドライブを使用していて、linux 3.1で実行しています以前のlinuxバージョン(たぶん3.0以前)を覚えていますが、メモリ不足でスワップが有効になっていない場合、プログラムは通常クラッシュします。これは私の環境に最適です。重要な操作のないシンプルなwebブラウジングです。つまり、メモリを大量に消費する悪いwebサイトに偶然出くわした場合、端末が使用できなくなることなくクラッシュします。しかし、私の現在のセットアップでは、コンピューターはバックグラウンドで激しいi/oスループットでハングします。 iotopはkswapd0が原因であることを明らかにします。これは、スワッピングが原因であることを意味します。 swapon -sを使用して有効になっているスワップを確認した後、swapoff -aを使用してすべてのスワップを無効にし、swapon -sを使用してすべてのスワップが無効になっていることを確認しました。次に、メモリ使用量を最大化してみました。悲しいかな、私が期待した行動は起こりませんでした。代わりに、kswapd0はramを何度もスワップアウトしようとしますが、スワップスペースがないため失敗します。決してあきらめないため、コンピュータは永遠のi/oヘビーフリーズにロックされています。私のディスクの健康。swapoff -aをしようとして何か間違ったことをしていますか?動作が以前の動作と異なるのはなぜですか(おそらく3.0倍前)。
回答: 各ブート後に/etc/fstabを実行するよりも、swapoff -aのスワップパーティションエントリをコメントアウトすることをお勧めします。ハードウェアのkswapd0で同じ問題があります。vm.swappinessシステムパラメータのチューニングは役に立ちません。sysctl -w vm.swappiness=0 私はググってたくさんの投稿、メーリングリストを読んだ、そして今これはカーネルのバグだと思う。アクティブなスワップパーティションがなく、空きメモリがしきい値(私の場合は約300mb)未満になると、kswapd0の狂気によりシステムが応答しなくなります。おそらくそれは特別な構成と条件で再現されています。誰かにとっては、kswapd0を無効にしてカスタムカーネルを構築することにより、他の人のために再パーティション化するシステムの再インストールによって解決されます。