如何诊断Ubuntu CPU峰值/ IO等待?
我正在使用Ubuntu,并且每隔几分钟它就会没有响应半秒到一秒钟,这通常不是问题,但是当你尝试命中退格或导航代码而没有发生任何事情时,尝试编码非常令人沮丧。 问题是,冻结是如此短暂,以至于top没有时间向我展示什么是尖峰CPU(假设某些东西,但我不知道还有什么可能导致这种情况)。
有谁知道如何解决这个性能问题?
编辑:我尝试使用Gnome Classic(无效果)而不是Unity登录,但它仍然每隔一段时间冻结一次。
编辑:CPU图表似乎没有显示任何实际峰值,所以看起来你是对的,我原来诊断的CPU峰值是问题是不正确的,我现在怀疑IO等待。 我不记得在我使用Windows 7 Starter的短暂几周内发生了这种情况,这让我相信它不是(只是?)硬件..有什么我可以调整来改进它吗? 我正在使用Acer Aspire One D257和Ubuntu 11.10。
编辑: dmesg
输出位于http://paste.ubuntu.com/1060054/,kern.log位于http://paste.ubuntu.com/1060055/
您可能需要查看两个额外的工具:
- IOTop
- LatencyTop
如果你没有从这两个工具中得到你想要的东西,那么你可能需要使用像OProfile或Sysprof这样的开发工具。
列出的所有工具都可以从ubuntu存储库中获得
关于你对usb的观察,从我所听到的情况来看,一些usb控制器表现得有点不稳定,某些硬件可能会导致中断风暴,这可能会导致你所描述的内容。 尝试搜索usb中断风暴,你会得到很多点击。
我使用htop多年,我终于找到了如何通过数字和百分比获得Cpu利用率,我很惊讶我错过了这个。
htop iowait图像
按F2
箭头到“可用米”
突出显示CPU平均值
F5或F6添加到列
箭头指向“CPU [Bar]”项
按F4直到出现“CPU [Text]”
你也可以获得IORates
F2-> Columns->可用
添加IO_RATE,IO_READ_RATE,IO_WRITE_RATE
查看此内容的最佳方法是使用命令行应用程序,如top
或htop 。
最佳
HTOP
您需要暂时观看它,直到您看到导致尖峰的原因(如果它确实是CPU使用率的峰值而不是I / O等待,这可能不会在所有情况下都被捕获)。
一个新的非常有用的工具是cpustat它有一个图形界面,允许您随着时间的推移监视多个pids。