題 未啟用交換的休眠模式


我的筆記本電腦有足夠的RAM和SSD。為了不磨損SSD,我不想讓交換使用。如果一個進程曾經使用過如此多的RAM,它必須開始使用swap,那麼它顯然是行為不端,應該被內核殺死。但我也希望能夠休眠或混合睡眠我的筆記本電腦。目前似乎很難讓這樣的設置工作。以下是一些警告:

  • 甚至設定 swappiness 如果應用程序請求太多內存,則為0將允許使用swap。似乎沒有辦法啟用交換,但是停止內核將其用作交換空間(從而將其實用性降低到休眠圖像的空間)
  • 禁用交換(暫時)將導致命令,如 systemctl hibernate 出錯了 Failed to hibernate system via logind: Sleep verb not supported
  • 我希望upower能夠將我的系統置於休眠/混合睡眠狀態(所以編寫一個包裝腳本,啟用交換然後啟動 systemctl hibernate 還不夠)

我現在正在尋找實現這一目標的正確方法。一種方法可能是通常禁用我的交換分區,然後去 swapon 通過systemd在正確的位置(和 swapoff 系統醒來後)。但我不知道如何實現這一目標。

另一種方法是使用交換文件,但與使用交換分區相比,這似乎增加了額外的複雜性。至少是因為我正在使用全盤加密和 uswsusp 似乎只是我已經擁有的現有交換分區的另一層。但也許我錯過了一些東西,並且使用交換文件確實更容易實現此目的。


4
2017-11-19 19:36


起源


你找到了解決方案嗎? - Turgs
不幸的是@Turgs沒有。 - josch


答案: