我们有一台服务器具有异常高的负载和cpu util,但我们不知道为什么。当我们运行最高时,所有进程的CPU似乎都非常低。
http://cl.ly/2d1g0K3q261r0R0K3e35
有没有更好的方法来查找导致此问题的原因?
我们有一台服务器具有异常高的负载和cpu util,但我们不知道为什么。当我们运行最高时,所有进程的CPU似乎都非常低。
http://cl.ly/2d1g0K3q261r0R0K3e35
有没有更好的方法来查找导致此问题的原因?
Answers:
负载是对系统在1分钟,5分钟和15分钟内的工作量的度量。
最常见的误解是平均负载纯粹与系统的CPU使用率有关。
但是,负载确实包含其他度量,例如CPU等待I / O,我认为这是您的问题。
根据图像,我猜测您的内存不足并开始将数据交换到磁盘。
一个简单的free -m
告诉您使用了多少RAM和交换空间。
有趣的列是除之外的免费列-/+ buffers/cache
。
如果接近零,则说明RAM用完了,应该采取相应的措施。
iotop
或vmstat
尝试查看它是否为I / O。
看起来CPU使用率来自线程。top
似乎没有考虑到这一点。我最近在mysql服务器上看到了这个。有正在运行的INSERT语句,但是我无法使用SELECT获取新行,因为mysqld的某个线程正在更新表索引。顶部显示了一个内核上100%的用户负载,但是包括mysqld在内的每个进程都是0.0%的CPU。小时后,相同的SELECT提供了预期的结果集。
也可以看看