尝试休眠时出现“可用交换空间不足”错误

我最近从11.04升级到11.10,但是当我尝试将我的笔记本电脑置于休眠状态时,出现了“没有足够的可用交换空间”错误。

我有2GB的物理内存和3GB的交换空间。此外,11.04版本中休眠功能正常。

这里是memoinfo

SwapCached:            0 kB
SwapTotal:       4028604 kB
SwapFree:        4028604 kB

那么问题可能是什么呢?

哪个程序告诉您出现了错误?请将meminfo输出粘贴如我在回答中所示。 - cweiske
你还在寻找帮助吗,还是已经找到了问题的答案?如果你找到了答案,请考虑在这里添加。谢谢 :) - coversnail
4个回答

检查您的交换状态:
$ cat /proc/meminfo |grep Swap
SwapCached:       216692 kB
SwapTotal:       5855624 kB
SwapFree:        5162340 kB

你会看到有多少可用的交换空间供你休眠。可能你运行了太多占用过多内存的应用程序。

2谢谢回复。我在休眠之前检查了交换空间,我确定有足够的空间让整个内存都存放在交换空间中,但问题仍然存在。 - Derrick Zhang

让您的交换驱动器比物理内存大两倍。这似乎是一个经验法则。

那么,我应该怎么处理我的情况呢? - Derrick Zhang
将您的交换空间大小加倍。 - Alvar

我觉得你应该增加SWAP的大小。试试现在的两倍。要更改SWAP的大小,你需要从一个live-cd启动,并更改SWAP分区,我建议你使用gparted来完成。
sudo apt-get install gparted
现在只需找到你的SWAP分区并将其更改为你想要的大小,我建议至少5GB。
来源:
Ubuntu.com关于SWAP的常见问题解答
是否可能减少SWAP内存大小?

你在交换到一个文件吗?检查文件系统中的碎片化情况。
在启动时,没有驱动程序或文件系统可用,所以内核只是将数据流回内存。因此,在休眠时,它只需要将数据流入交换文件。如果文件被分割成碎片,只有第一个碎片可以使用。
使用e4defrag -c /swapfile来检查碎片化情况。 使用e4defrag -v /来修复它。
为什么要对整个根文件系统进行碎片整理,如果只有一个文件需要进行碎片整理呢?嗯,其他文件可能已经足够碎片化,但是散布在磁盘上,以至于没有足够大的区域让交换文件缩小到一个范围。