web-dev-qa-db-ja.com

休止状態にしようとしたが、十分なスワップが利用できない場合はどうなりますか?

サイズRAM + xのスワップパーティションを持つLinuxボックスがあります。x以上のスワップがすでに使用されているとします。今、私は休止状態にしようとします。カーネルは

  • rAMを保持するのに十分なスワップ空きができるまで、スリープ中および/またはスリープしていないプロセスをランダムに強制終了します
  • 休止状態ではなく、続行するように警告/要求しませんか?

または、カーネルが安全に休止状態にするのに十分なスワップを常に予約しているため、この状況が発生することはありませんか?

動作を構成できますか?

編集:これが違いを生む場合、私は現在Linux3.2.0-39-genericでUbuntu12.04を使用しており、pm-hibernateで休止状態になっています。

5
Simon S

それ以降のバージョンのLinuxカーネルでは、休止状態にスワップする必要があります。しかし、回避策があります。パーティションを作成せずに、どこにでもスワップファイルを設定できます。

ここでそれについて読んでください。 https://www.kernel.org/doc/Documentation/power/swsusp-and-swap-files.txt

迅速な解決策(Robert Munteanuのクレジット)

Create the swap file : dd if=/dev/zero of=/swapfile bs=1024 count=8388608 ( 8GB )
Setup the swap file: mkswap /swapfile
Only when you need to set suspend you can activate it: swapon /swapfile
When you resume you can deactivate it: swapoff /swapfile
2
user213584