コンピュータがフリーズすることなくスワップファイルを非アクティブ化する

コンピュータがフリーズすることなくスワップファイルを非アクティブ化する

私は現在、ラップトップでコーディングしています。RAM は 4 GB で、2.5~3 GB 以上は使用していませんが、時々、プログラムを台無しにして、メモリ リークを起こしながら実行し、スワップ ファイルに書き込もうとするとコンピューターがフリーズします (これは swapiness の値が低いことに関係しています)。そのため、重要なデータを失いそうになったことが何度かあったので、コンピューターを別の方法で動作させたいと思っています。スワップ ファイルなし、前述したように、使用時に 3 GB を超える RAM を必要としたことはなく、使用可能な RAM よりも多くの RAM を使用しようとするプログラム (常に自分のプログラムが適切にコーディングされていない) によって OS がクラッシュします。この方法でセットアップするにはどうすればよいでしょうか。

よろしくお願いします。

答え1

問題の原因となっているプログラムがわかっている場合は (質問で示唆されているように)、Ctrl+ Alt+を押して別の端末にログインしF2、 を実行しますkillall <processname>Ctrl+ Alt+F7またはCtrl+ Alt+を押すとF8GUI に戻ります。

スワップを非アクティブ化する必要がある場合は、/etc/fstab ファイルを編集する必要があります。 sudo gedit /etc/fstab

「swap」という単語が含まれる行が 1 行あります。#行の先頭に を入れます。ファイルを保存して終了します。システムを再起動すると、スワップがなくなるはずです。これはシステム モニターで確認できます。

答え2

試すkill -STOP pid && swapoff /path/to/yourswapdev

その後、実行しているプログラムのコードが間違っている可能性があります。

タスクが問題を引き起こしている場合でも、Linuxを安定させ、引き続き使用したいと考えることができます。

試す renice -n 20 -p pid

タスクを続行するにはkill -CONT pid

注意: タスクが起動時に開始される場合は、起動スクリプト内の通常のexecを適切なコマンドに置き換える必要があります。

PDv2: 起動時にスワップがロードされないように、/etc/fstab の該当行をコメントアウトする

関連情報