我的笔记本电脑有足够的内存和 SSD。为了不磨损 SSD,我不想一直使用交换。如果一个进程使用了太多的 RAM 以至于它不得不开始使用交换,那么它显然是行为不端,应该被内核杀死。但我也希望能够休眠或混合睡眠我的笔记本电脑。目前似乎很难让这样的设置工作。以下是一些注意事项:
swappiness如果应用程序请求太多内存,即使设置为 0 也将允许使用交换。似乎没有办法启用交换但阻止内核将其用作交换空间(从而将其效用减少到休眠图像的空间)systemctl hibernate错误输出之类的命令Failed to hibernate system via logind: Sleep verb not supportedsystemctl hibernate是不够的)我现在正在寻找实现这一目标的正确方法。一种方法可能是通常禁用我的交换分区,然后swapon通过 systemd 在正确的点(以及swapoff在系统唤醒后)。但我不知道如何实现这一目标。
另一种方法是使用交换文件,但与使用交换分区相比,这似乎增加了额外的复杂性。尤其是因为我正在使用全盘加密,而且uswsusp似乎只是我现有交换分区已有的另一层。但也许我遗漏了一些东西,为此目的使用交换文件确实总体上更容易。