在 linux 下使用很少 cpu 的高平均负载的通常解释是 IO 过多(或更恰当地说是不间断的 sleep)。
我有一个服务在 2 核 VM 集群上运行,该集群表现出适度的 CPU 使用率(~55-70% 空闲),但高于 2 平均负载,同时体验接近零的 IO、适度的上下文切换和无交换。轮询ps我从未D在进程状态列中看到。
该服务是在 unicorn 下运行的 ruby 1.9。它连接到两个上游 postgres 数据库,这些数据库提供非常快的 avg 语句执行(~0.5ms)。该服务记录的已用请求持续时间大约是它在我们的性能测试网络上更高压力负载下所显示的两倍。唯一看起来不正常的监控信号是平均负载(当然还有平均响应持续时间),其他一切(cpu、内存、io、网络、cswitch、intr)都是标称和匹配的预测。
系统是 Ubuntu 10.04.4 LTS“Lucid”。uname 是Linux dirsvc0 2.6.32-32-server #62-Ubuntu SMP Wed Apr 20 22:07:43 UTC 2011 x86_64 GNU/Linux. 管理程序是 VMWare ESX 5.1。
更新:@ewwhite 要求的更多信息。存储是映射到连接到 NetApp 的 vm 主机上的 NFS 装载的虚拟磁盘设备。我要指出的是,所有迹象都表明没有发生重大的磁盘 IO。该服务读取和写入网络套接字(~200KB/s)并进行普通访问和错误记录(速度约为 20KB/s)。vm 主机有一对千兆端口,连接到两个顶部机架交换机,每个交换机都将四个千兆端口绑定回核心路由器,全是铜线。每个 vm 主机具有 24 (4x6) 个物理内核和 150GB 内存,通常托管大约 30 个运行各种不同服务的类似大小的 vm 来宾。在生产中,这些主机永远不会在内存上过度使用,而只是在 cpu …
我有一个很奇怪的情况,我的 CentOS 5.5 机器负载很高,但使用的 CPU 和内存却很低:
top - 20:41:38 up 42 days, 6:14, 2 users, load average: 19.79, 21.25, 18.87
Tasks: 254 total, 1 running, 253 sleeping, 0 stopped, 0 zombie
Cpu(s): 3.8%us, 0.3%sy, 0.1%ni, 95.0%id, 0.6%wa, 0.0%hi, 0.1%si, 0.0%st
Mem: 4035284k total, 4008084k used, 27200k free, 38748k buffers
Swap: 4208928k total, 242576k used, 3966352k free, 1465008k cached
free -mt
total used free shared buffers cached
Mem: 3940 3910 29 0 37 1427
-/+ buffers/cache: 2445 1495
Swap: 4110 236 …Run Code Online (Sandbox Code Playgroud) 在过去的几天里,我一直试图了解我们的基础设施中发生的怪事,但我一直无法弄清楚我们的情况,所以我求助于你们给我一些提示。
我一直在 Graphite 中注意到,load_avg 的峰值大约每 2 小时发生一次,具有致命的规律性 - 不完全是 2 小时,但非常规律。我附上了一张我从 Graphite 中截取的截图
我一直在研究这个问题——这种规律性让我认为这是某种 cron 作业或类似的东西,但这些服务器上没有运行 cronjobs——实际上这些是在 Rackspace 云中运行的虚拟机。我正在寻找的是某种可能导致这些问题的迹象以及如何进一步调查。
服务器相当空闲 - 这是一个临时环境,因此几乎没有流量进入/应该没有负载。这些都是 4 个虚拟核心 VM。我可以肯定的是,我们大约每 10 秒采集一次 Graphite 样本,但如果这是造成负载的原因,那么我希望它会一直很高,而不是每 2 小时在不同服务器上的波次中发生一次。
任何有关如何调查此问题的帮助将不胜感激!
以下是来自 sar 的 app01 的一些数据——这是上图中的第一个蓝色尖峰——我无法从数据中得出任何结论。也不是您看到的每半小时(不是每 2 小时)发生的字节写入峰值是由于厨师客户端每 30 分钟运行一次。我会尝试收集更多数据,即使我已经这样做了,但也无法真正从这些数据中得出任何结论。
加载
09:55:01 PM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked
10:05:01 PM 0 125 1.28 1.26 0.86 0
10:15:01 PM 0 125 0.71 1.08 0.98 0
10:25:01 PM 0 125 4.10 3.59 2.23 0
10:35:01 PM 0 125 0.43 0.94 …Run Code Online (Sandbox Code Playgroud)