Ubuntu 11.10 上 Hibernate 运行缓慢的问题

Ubuntu 11.10 上 Hibernate 运行缓慢的问题

我在我的机器上安装了 Ubuntu 11.10,我注意到休眠功能存在一些问题。当我使用 s2disk/pm-hibernate 时,我发现从休眠状态唤醒的速度非常慢。我指的是大约 5-6 分钟的时间,而同一系统上的 Windows 7 即使在我以略微加载的系统休眠时也能在 1 分钟内恢复。但这种从休眠状态恢复的缓慢速度是不可接受的,如果有人能帮助我修复它,我将非常高兴。我有一个 Core i5 处理器和 8GB RAM。我已设置了大约 6GB 的硬盘空间用于交换。如果有人能帮助我识别和纠正恢复过程中的瓶颈,那将很有帮助。

此外,在 Windows 7 中,我能够设置系统在指定时间自动从休眠状态唤醒。但我无法在 Linux 上运行相同的功能。我正在关注此自动系统唤醒指南

感谢您的帮助!

更新:

/var/log/kern.log 中的有趣观察

在 s2disk 阶段:我看到以下日志消息:

Jan 16 01:38:00 pc kernel: [10682.575070] PM: Preallocating image memory... done (allocated 1902274 pages)
Jan 16 01:38:00 pc kernel: [10706.894027] PM: Allocated 7609096 kbytes in 24.33 seconds (312.74 MB/s)

这似乎是s2disk阶段的瓶颈。

在恢复过程中,根据 kern.log,唯一耗时的步骤是:

Jan 16 01:38:01 pc kernel: [10709.361876] video LNXVIDEO:00: Restoring backlight state
Jan 16 01:38:13 pc kernel: [10726.919537] wlan0: authenticate with c0:c1:c0:f0:68:6b (try 1)

这需要 12 秒。

Jan 16 01:38:15 pc kernel: [10728.620666] [drm:drm_mode_getfb] *ERROR* invalid framebuffer id
Jan 16 01:38:17 pc kernel: [10730.903990] wlan0: deauthenticated from *:*:*:*:*:6b (Reason: 15)

这需要2秒。

Jan 16 01:38:17 pc kernel: [10730.967287] cfg80211: Calling CRDA to update world regulatory domain
Jan 16 01:38:19 pc kernel: [10732.265611] wlan0: authenticate with *:*:*:*:*:6b (try 1)

这需要2秒。

Jan 16 01:38:19 banga-pc kernel: [10732.271086] wlan0: associated
Jan 16 01:38:35 banga-pc kernel: [10748.866054] cfg80211: Ignoring regulatory request Set by core since the driver uses its own custom regulatory domain
Jan 16 01:38:35 banga-pc kernel: [10748.866063] cfg80211: World regulatory domain updated:

这需要 16 秒。

其余所有日志消息的时间间隔都很紧密。这无法解释 5-6 分钟的恢复时间。此外,在开机约 2 分钟后,我确实看到了窗口和所有内容,但系统需要大约 3-4 分钟才能可用。在此之前,我看不到鼠标指针,键盘也无法使用。在此之前,屏幕保持冻结状态,就像在sudo s2disk休眠系统之前等待我发出的命令一样。

很奇怪,但我确实需要帮助来尽快解决这个问题。我习惯于每周<30秒的恢复时间和<一次重新启动我的电脑。如果我能在Ubuntu上得到同样的效果,我会很高兴。我还需要帮助来修复我上面提到的ACPI唤醒问题。

以防万一,我的笔记本电脑上有一块集成的英特尔显卡。

答案1

瓶颈在于你必须将 8 GB 的 RAM 写入磁盘,更糟糕的是,你必须对 6 GB 的交换分区进行排序,以确定哪些数据与哪些数据对应。也许可以尝试缩小交换分区(或者完全删除它,如果你有足够的 RAM),看看这是否有帮助。否则,我们需要查看一些日志文件man dmesgman syslog

也可能是硬件问题。目前还很难说。

答案2

只需将交换区大小调整为 8GB,因为在休眠期间 RAM 数据会写入交换区。现在有多少数据可以写入交换区?6 GB。有多少数据可能写入 RAM?8 GB。8 减 6 就是少了 2 GB。

答案3

您应该检查您的 swappiness 值。通常它保持在 60。它应该是 10 或 15:

cat /proc/sys/vm/swappiness

您可以使用以下方式随时更改它

sudo bash -c“echo -e 10 > /proc/sys/vm/swappiness”

并使其坚持

sudo bash -c “echo‘vm.swappiness = 15’>> /etc/sysctl.conf”

相关内容