6
平均负载高,CPU使用率适中,几乎没有IO
在Linux下,对于很少使用cpu的高平均负载的通常解释是IO过多(或更恰当地说是不间断的sleep)。 我有一个在2核VM的群集上运行的服务,这些CPU表现出适度的CPU使用(〜55-70%空闲),但平均负载高于2,而IO几乎为零,上下文切换适中,并且没有交换。ps我从未D在进程状态列中进行轮询。 该服务是在独角兽下运行的ruby 1.9。它连接到两个上游postgres数据库,这些数据库提供了非常快的平均语句执行时间(〜0.5ms)。该服务记录的经过的请求持续时间大约是生产中的两倍,这是在我们的性能测试网络承受较高压力的情况下证明的。似乎无法克服的唯一监视信号是平均负载(当然还有平均响应持续时间),其他所有内容(cpu,内存,io,网络,cswitch,intr)都是标称值且匹配的预测。 系统是Ubuntu 10.04.4 LTS“ Lucid”。ame妇是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主机有一对千兆位端口,这些端口连接到机架式交换机的两个顶部,每个机架式交换机将四个千兆位端口绑定回到一个核心路由器,全部为铜缆。每个虚拟机主机具有24个(4x6)物理核心和150GB的内存,并且通常托管大约30个大小相似,运行各种不同服务的虚拟机客户机。在生产中,这些主机永远不会在内存上过量使用,而只会在cpu上过量使用。 我欢迎提出解释高负荷的想法。 这是今天中午两个小时的窗口中提取的sar数据: sar -q#平均负载 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 12:05:01 PM 1 173 1.15 2.41 2.48 12:15:01 PM 0 173 0.96 1.56 1.99 …