如何诊断 Ubuntu CPU 峰值/IO 等待?

如何诊断 Ubuntu CPU 峰值/IO 等待?

我正在使用 Ubuntu,每隔几分钟它就会无响应半秒到一秒,这通常不是问题,但当你试图按退格键或浏览代码而什么都没有发生时,这会让尝试编码变得非常令人沮丧。问题是,冻结时间太短,以至于 top 没有时间向我显示是什么导致了 CPU 的激增(假设有某种东西,但我不知道还有什么可能导致这种情况)。

有人知道如何解决这个性能问题吗?

编辑:我尝试使用 Gnome Classic(无效果)而不是 Unity 登录,但它仍然会时不时地冻结。

编辑:CPU 图表似乎没有显示任何实际峰值,所以看来你是对的,我最初对 CPU 峰值是问题的诊断是不正确的,我现在怀疑是 IO 等待。不过,我不记得在我运行 Windows 7 Starter 的短短几周内发生过这种情况,这让我相信这不是(只是?)硬件问题。我可以调整什么来改善这种情况吗?我使用的是 Acer Aspire One D257,装有 Ubuntu 11.10。

编辑:的输出dmesghttp://paste.ubuntu.com/1060054/并且 kern.log 位于http://paste.ubuntu.com/1060055/

答案1

您可能还想了解另外两个工具:

如果你没有从这两个工具中获得你想要的东西,那么你可能需要使用开发者工具,例如配置文件或者系统性能

列出的所有工具都可以从 ubuntu 存储库获得

关于您对 usb 的观察,据我所知,某些 usb 控制器在某些硬件上表现有点不稳定,这可能会导致中断风暴,这可能会导致您所描述的情况。尝试搜索 usb 中断风暴,您会得到相当多的结果。

答案2

我使用 htop 很多年了,最后我终于找到了如何通过数字和百分比来获取 CPU 利用率的方法,我很惊讶我错过了这一点。

htop iowait 图片

按 F2

指向“可用仪表”的箭头

突出显示 CPU 平均值

F5 或 F6 添加到列

指向项目“CPU [Bar]”的箭头

按 F4 直到出现“CPU [文本]”

您还可以获得 IORates

F2->列->可用

添加 IO_RATE、IO_READ_RATE、IO_WRITE_RATE

答案3

最好的方法是使用命令行应用程序,如top顶部 安装 htop

顶部
顶部

顶部
顶部

您需要观察一段时间,直到看到导致峰值的原因(如果确实是 CPU 使用率的峰值而不是 i/o 等待的峰值,则可能无法在所有情况下捕获)。

答案4

一个新的且非常有用的工具是处理器状态统计 它有一个图形界面,允许您随时间监控多个 pid。

在此处输入图片描述

相关内容