休眠需要多大的交换分区?


11

我已经阅读了这个问题,但是并不能完全回答我的问题。

如果我希望计算机能够休眠,是否需要一个与RAM一样大的交换分区,或者如果交换分区可以容纳当前使用的 RAM ,Ubuntu明智地能够休眠吗?我将在具有大量RAM和相对较小硬盘的计算机上安装Ubuntu,因此我不想使用不必要的硬盘空间。

我想避免给出我的实际规格,以使这个问题更笼统,尽管我会在必要时给出它们。

Answers:


9

很难预测:您的掉期需要适应

  • 休眠时交换中已经有什么
  • 休眠时RAM中的内容是什么,但只有不是磁盘高速缓存或缓冲区的部分;如果您使用RAM图像被压缩uswsusp
  • 一些内核数据结构

因此,即使您的交换大于RAM,您也可能无法进入休眠状态,因为大多数交换已在使用中。而且,如果您一次没有使用太多的交换,那么可以通过小于RAM的交换成功地休眠。

如果由于磁盘很小而要避免使用固定大小的交换分区,则可以选择交换文件。调整大小更容易,并且应该支持休眠到交换文件(不确定当前是否可以立即使用,这在Ubuntu版本之间是不存在的; IIRC在9.10中做到了,但必须在10.10中设置。)。


1
磁盘缓存未压缩
psusi 2011年

1
措辞的方式听起来像是在说缓存已压缩,而不是休眠图像。要压缩休眠图像,您需要安装uswsusp软件包。默认内核实现不压缩。
psusi 2011年

2

在调整交换大小以设置休眠状态时,这个问题在常见查询中仍会继续出现。原始答案是正确的,因为它可能会根据您的工作量而变化很大,但我认为这不是一个完整的答案。

完整的答案是,您可以根据特定的工作量告诉您需要多少,然后可以适当调整大小。

基本工具是休眠期间的内核消息。您想查看此命令使用了多少内存:

sudo cat /var/log/syslog | grep 'PM:'|grep kbytes

您应该得到如下输出:

Aug 14 11:03:20 mike-XPS-15-9570 kernel: [17594.823584] PM: Allocated 11809876 kbytes in 2.65 seconds (4456.55 MB/s)
Aug 14 11:03:20 mike-XPS-15-9570 kernel: [17605.365657] PM: Wrote 11787284 kbytes in 9.09 seconds (1296.73 MB/s)

然后,策略是运行最大负载并触发休眠状态,查看所需的交换空间,可能会增加安全裕度,然后使交换空间达到该大小。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.