目录

CPU使用率低负载高

概述

CPU 使用率和负载是机器的重要指标,以前总觉得负载跟 CPU 使用率是一个意思,然而实际上,还是大有玄机的。

原因总结

CPU 使用率低负载高产生的原因一句话总结就是: 等待磁盘I/O完成的进程过多,导致进程队列长度过大,但是 CPU 运行的进程却很少,这样就体现到负载过大了,CPU 使用率低。

下面内容是具体的原理分析: 在分析负载为什么高之前先介绍下什么是负载、多任务操作系统、进程调度等相关概念。

什么是负载

什么是负载: 负载就是 CPU 在一段时间内正在处理以及等待 CPU 处理的进程数之和的统计信息,也就是 CPU 使用队列的长度统计信息,这个数字越小越好(如果超过 CPU 核心*0.7就是不正常)

负载分为两大部分:

  1. CPU负载
  2. IO负载

例如,假设有一个进行大规模科学计算的程序,虽然该程序不会频繁地从磁盘输入输出,但是处理完成需要相当长的时间。因为该程序主要被用来做计算、逻辑判断等处理,所以程序的处理速度主要依赖于 CPU 的计算速度。此类 CPU 负载的程序称为计算密集型程序。

还有一类程序,主要从磁盘保存的大量数据中搜索找出任意文件。这个搜索程序的处理速度并不依赖于 CPU,而是依赖于磁盘的读取速度,也就是输入输出(input/output,I/O)。磁盘越快,检索花费的时间就越短。此类I/O负载的程序,称为I/O密集型程序。

参考资料

  1. CPU使用率低负载高
警告
本文最后更新于 2017年2月1日,文中内容可能已过时,请谨慎参考。