为什么从休眠状态恢复需要 10 分钟以及如何避免这种情况?

为什么从休眠状态恢复需要 10 分钟以及如何避免这种情况?

我正在运行 XUbuntu 16.04,内核为 4.4.0-116-generic(但早期版本也是如此)和 16 GB RAM。我使用的是“传统”硬盘(无 SSD),并且我的 swappiness 为 0(RAM 很少满)。

我在休眠时遇到过以下情况:正常休眠只需不到 2 分钟,但从休眠中恢复需要花费更多时间才能使应用程序响应(今天需要 10 分钟以上才能到达 light-locker 提示)。

我认为这没有用(从休眠状态恢复比启动到新会话并重新打开程序需要更多时间)。

我怎样才能提高性能?我是唯一遇到这些问题的人吗?

确实,现在的内存使用量是 8.8 GB,但让我烦恼的是休眠时间和恢复时间之间的差异。我从其他问题中了解到,这可能是因为在休眠期间,内核冻结所有进程并将 RAM 全部转储到交换区,而在恢复时,它只是让进程在交换区中请求其页面。

这是一个有效的解释吗?如果是这样,为什么要这样做,因为从硬盘驱动器读取大块比随机访问更快?我可以将休眠配置为不以这种方式继续吗?问题“从休眠状态恢复时恢复内存/交换页面状态”似乎相关,但我不知道足够多的页面来真正理解它们的作用(“记下标记磁盘和 RAM 中页面的标签,然后在简历上恢复这个确切的状态”)是否有用,我也不知道该怎么办。

答案1

我认为你的经历对于冬眠又名。挂起到磁盘,尤其是使用旋转盘时。

内核文档,提到了一种解决方法,它似乎与您发布的链接的想法有关。如果我做对了,这将立即清空交换,而不是在恢复时逐步清空。但它仍然需要读取所有已使用的交换,并且可能需要一些时间。

问:恢复后,系统大量分页,导致交互性非常差。

答: 尝试跑步

猫 /proc/[0-9]/地图| grep / | sed 的:。/:/:' |排序 -u |读取文件时执行 test -f "$file" && cat "$file" > /dev/null 完成

恢复后。交换-a; swapon -a 也可能有用。

您可能想要测试的是挂起至内存或者暂停到两者这在中解释得很好拱门维基。基本上:

  • 挂起至内存不会关闭计算机电源,而是将其置于省电模式。如果电池电量耗尽,状态就会丢失并可能导致问题
  • 暂停到两者类似于挂起至内存而且还将状态保存到交换中,这样可以在电池耗尽后恢复

根据您的环境,如何启动挂起/休眠方法,您可以在 XFCE 中使用以下命令进行配置:xfce4-电源管理器图形用户界面。

答案2

在阅读了该线程中共享的有用链接并尝试了一些操作后,以下是对我有用的方法。

默认/sys/power/image_size设置为 RAM 的 2/5。我的系统 RAM 为 12 Gb,交换文件大小为 8 Gb。在本例中/sys/power/image_size约为 5 GB。

休眠时,如果内存使用量超过此限制,系统需要很长时间才能恢复。增加到 8 Gb(交换内存大小)后/sys/power/image_size,恢复时间大大缩短!

内核文档说增加是安全的/sys/power/image_size。系统 RAM 2/5 的默认限制看起来太低了。

相关内容