如何让Ubuntu停止定期卡顿?

自从Ubuntu 11.04以来,我一直遇到随机系统卡死的问题(我目前正在运行11.10版本)。REISUB无法恢复系统,需要进行硬重启。扫描所有系统日志(kern.log、syslog、dmesg)对我来说并没有发现什么异常,除了每30秒出现一次的一系列ecryptfs_encrypt_page错误。
例如,这是当前dmesg的末尾部分:
<snip/>
[ 2586.952174] ecryptfs_encrypt_page: Error attempting to write lower page; rc = [-5]
[ 2586.952179] ecryptfs_writepage: Error encrypting page (upper index [0x000000000000001f])
[ 2586.952210] ecryptfs_encrypt_page: Error attempting to write lower page; rc = [-5]
[ 2586.952212] ecryptfs_writepage: Error encrypting page (upper index [0x000000000000001f])
[ 2586.952244] ecryptfs_encrypt_page: Error attempting to write lower page; rc = [-5]
[ 2586.952246] ecryptfs_writepage: Error encrypting page (upper index [0x000000000000001f])
[ 2616.952218] ecryptfs_encrypt_page: Error attempting to write lower page; rc = [-5]
[ 2616.952222] ecryptfs_writepage: Error encrypting page (upper index [0x0000000000000020])
[ 2616.952254] ecryptfs_encrypt_page: Error attempting to write lower page; rc = [-5]
[ 2616.952256] ecryptfs_writepage: Error encrypting page (upper index [0x0000000000000020])
[ 2616.952287] ecryptfs_encrypt_page: Error attempting to write lower page; rc = [-5]
[ 2616.952289] ecryptfs_writepage: Error encrypting page (upper index [0x0000000000000020])
[ 2646.952211] ecryptfs_encrypt_page: Error attempting to write lower page; rc = [-5]
[ 2646.952216] ecryptfs_writepage: Error encrypting page (upper index [0x0000000000000021])
[ 2646.952248] ecryptfs_encrypt_page: Error attempting to write lower page; rc = [-5]
[ 2646.952250] ecryptfs_writepage: Error encrypting page (upper index [0x0000000000000021])
[ 2646.952281] ecryptfs_encrypt_page: Error attempting to write lower page; rc = [-5]
[ 2646.952283] ecryptfs_writepage: Error encrypting page (upper index [0x0000000000000021])

我遇到的问题表现为:
- 循环声音 - 键盘/鼠标无响应 - 屏幕冻结 - Alt + SysReq + REISUB 无效
我的问题似乎与另一个AskUbuntu问题中描述的问题相同,但我不认为这是硬件问题。我使用双系统,Windows 7一直运行良好。
我尝试过Unity和Gnome-Shell,但两者都会出现卡顿。卡顿是不可预测的,我也不确定是什么原因导致的。起初我以为是从文件服务器上流媒体视频引起的(因为在Ubuntu上我最常做的就是这个,并且卡顿发生时通常正在进行这个操作),但上周系统在播放本地视频时也出现了卡顿。还有一次系统什么都没做就卡住了(只有浏览器在运行)。
今年大部分时间我都选择在Windows 7中工作,但我真的很想让Ubuntu再次稳定下来。 对于诊断这个问题有什么建议吗?

1我很难相信没有人遇到过同样的问题!我想我接下来会尝试Ubuntu论坛。 - mirzmaster
1@mirzmanter 我也遇到了同样的问题,真是让我抓狂。如果我无法找出问题所在,我就准备降级到旧版的Ubuntu了。 - William
你使用开源图形驱动程序吗? - RolandiXor
这是在机器空闲时发生的吗?还是在某些操作过程中发生的?(假设存在某种模式) - david6
1我也遇到了同样的问题,这让我很生气。每天发生好几次。我使用两台电脑,有时候甚至在什么都不做或者与另一台电脑交互时也会出现卡顿。这个问题从11.04开始,现在在11.10上仍然存在。 - Yuriy Voziy
你是否正在使用encrypt-fs?这听起来很像是一个显卡问题——你用的是什么显卡?更换显卡会有任何不同吗? - balloons
edmj000所发布的答案似乎完全符合您的症状。请尝试他提供的解决方法,并相应地给予+1的回复。在将来,您可能希望尝试REISUB和BISECT来缩小问题的范围,以确定可能导致所有麻烦的原因。这个问题很容易被误认为是硬盘问题,例如备份存储正在逐渐失效,导致高级别写入超时。谢谢。 - ppetraki
@ppetraki 正如我刚才评论的,虽然频率大大降低,但我仍然遇到了卡顿问题。在为系统格式化做文件备份的过程中,我注意到机器不再卡住了,至少是我当时以为的。然而,几周后又出现了卡顿情况。 - mirzmaster
@david6 这种情况是随机发生的,尤其是在玩视频时——这是我在电脑上最常做的活动。 - mirzmaster
专有驱动程序,实际上。 - mirzmaster
你仍然回到了二分法,这意味着在系统稳定之前,要删除像cryptfs和专有驱动程序这样的功能。下次系统挂起时,你可以尝试设置crashdump并发送一个魔术sysrq命令,但不能保证魔术sysrq能够成功执行。通过转储我们可以获取最终的dmesg日志以及系统在挂起时的操作情况。你还可以将串行控制台连接到你的系统上,并记录下来,希望下次系统挂起时会出现一些有趣的信息。 - ppetraki
修复了eCryptfs驱动程序中的错误。 - Braiam
3个回答

eCryptfs错误是由于回归引起的。
在Oneiric内核版本3.0.0-15.25中已经修复了这个问题。
我不确定eCryptfs的错误是否导致了你列出的所有问题,但升级内核将在追踪问题时消除一个变量。

非常感谢您的反馈。我再也没有看到ecryptfs错误了。 - mirzmaster
Ubuntu 14.04的问题再次出现了。 - XavierStuvw
我已经在https://askubuntu.com/questions/940467上发布了我的问题。尝试写入较低页面和加密页面时出现错误,导致循环无法解决,并且/var目录已满的问题。 - XavierStuvw

这似乎发生在一些从11.04升级到11.10并保留了加密的家目录的人身上。目前还没有修复方法,但有一个解决办法。可以通过使用以下命令删除所有长度为零的encryptfs加密文件来解决此问题:
find /home/.ecryptfs/$USER/.Private/ -size 0c -exec ls '{}' \; | wc -l

来源:https://bugs.launchpad.net/ubuntu/+source/ecryptfs-utils/+bug/870326

我已经采纳了这个建议,尽管它并没有完全解决我的问题。虽然偶尔还是会出现卡顿,但频率确实有所降低(而且我也不确定是否与删除这些零长度文件有关)。 - mirzmaster

有时候调试问题需要一些时间。回答你的问题,错误是从什么时候开始出现的?在错误发生之前,你是否添加或删除了任何新的硬件或软件?
诊断:
1. 运行Live CD提供的memtest内存诊断工具,至少运行24小时。 2. 检查你的硬盘健康状况。 3. 你的电脑中是否安装了独立显卡?如果是,请检查显卡驱动程序并更新到推荐版本。

2我最近对内存和硬盘进行了升级。以前的内存和硬盘会出现冻结问题,现在换成了新的,但问题依然存在,没有任何改变。 - Yuriy Voziy