这里真的很奇怪。我间歇性地不断收到非常令人不快的 CPU 峰值,其中 CPU 在所有内核上达到 80-90% 的繁忙时间大约 5 分钟。当我在 htop 或系统监视器中查看 conky 并按 CPU 百分比排序时,我看不到任何占用这么多 CPU 的进程。
自开始以来,我唯一改变的是:
- 我移至内核版本 2.6.35(家庭编译,从 2.6.24-1 升级)
- 我安装了 Nvidia 驱动程序 256.44(从 256.34 开始)
现在,我愿意降级其中一个/两个以找到问题,但我更愿意尽可能科学地执行此操作,并在降级之前找出导致 CPU 爆炸的原因。
编辑:我的确切问题看起来像是他们最新驱动程序中的 nvidia 回归。其他人也有类似的尖峰。
“CPU 在大约 5 分钟内达到所有内核的 80-90% 繁忙”
如此多的使用可能使您能够通过使用 sysstat 包中提供的 pidstat 来查明罪魁祸首。
只需运行
pidstat -u | sort -nr -k 7,7 | head -10
,使用最多 CPU 的进程应该是顶行。我会尝试使用一些 shell 脚本找出问题的原因:
该脚本有两个变量
MAXLOAD
和CURRLOAD
. 第一个应该是高负载乘以 100。因此,如果您遇到峰值并看到系统负载上升到 2 或 3,那么您应该设置MAXLOAD
为 200 左右的某个值。$CURRLOAD
获取 的输出uptime
,查找负载并删除点以及前导零。如果某个时刻的负载过高,它会打印出 CPU 利用率最高的五个进程并将它们发送到
[email protected]
.该脚本应该可以帮助您找到峰值的原因,如果您知道,您也许可以解决您的问题。
它可能是一个内核线程,在大多数性能监视器中默认隐藏。在 htop 中,您可以使用“K”(shift+k)隐藏/显示内核线程。
要从顶部获取可以保存的输出:top -b -n1
把它放在一个 cronjob 中,即使问题消失了,你也可以查看详细的进程列表。crontab 条目示例:
这将在 /tmp 中每分钟将其保存在一个文件中
有一些最近修复的错误可能会纠正此问题。如果您运行的是 Ubuntu,我建议您坚持使用 Ubuntu 内核,通过定期更新来获取补丁。我建议安装 Lucid 以获得支持和稳定性。如果您知道 Lucid 中没有您需要的功能,您可以选择 Maverick。
我认为这是一个内核问题。我会恢复到正式测试的版本。