/proc/loadavg 的“CPU 和 IO 利用率”是什么意思?

shi*_*oid 5 statistics

在此页面中,它表示 /proc/loadavg 输出的前三列测量最后一分钟、五分钟和 10 分钟周期的 CPU 和 IO 利用率。

单个值是否可以同时显示 CPU 和 IO 利用率?如果我只想知道 CPU 利用率怎么办?或者只是 IO 利用率?

或者,从这个单一值,我如何知道服务器有多重?

Ego*_*yev 5

平均负载意味着有多少进程在队列中等待。它不仅是 CPU 指标,而且不以百分比显示 CPU 利用率。平均负载显示近似的系统负载。

\n\n

请参阅UNIX 负载平均以获得更好的理解。

\n\n

在本文档中:

\n\n
\n
    \n
  1. \xe2\x80\x9cload\xe2\x80\x9d 不是利用率,而是总队列长度。
  2. \n
  3. 它们是三个不同时间序列的点样本。
  4. \n
  5. 它们是指数阻尼移动平均线。
  6. \n
  7. 它们以错误的顺序表示趋势信息。
  8. \n
\n
\n\n

要计算当前使用时间的CPU 空闲率/proc/stat(取自此处):

\n\n
average idle percentage X % = ( idle * 100 ) / ( user + nice + system + idle + iowait + irq + softirq )\n
Run Code Online (Sandbox Code Playgroud)\n\n

因此,要计算CPU 利用率

\n\n
grep \'cpu \' /proc/stat | awk \'{usage=100-($5*100)/($2+$3+$4+$5+$6+$7+$8)} END {print usage}\'\n
Run Code Online (Sandbox Code Playgroud)\n\n

CPU 利用率计算并不像看起来那么容易。查看类似主题

\n\n

一些结论

\n\n
    \n
  1. 不要仅分析 CPU 利用率而不分析其他硬件/软件指标。使用磁盘、RAM、网络使用情况得出完整的结论(并且可能是每个进程的负载);
  2. \n
  3. 不要仅根据负载平均参数做出结论。您可以使用平均负载作为解决性能问题的起点;
  4. \n
  5. 使用方法:
  6. \n
\n\n

如果 1 分钟负载超过5/10 分钟负载 -> 系统负载正在增长

\n\n

如果 1 分钟负载小于5/10 分钟负载 -> 系统负载减少

\n\n

并阅读精彩文章:Linux 平均负载:解开谜团

\n


jll*_*gre 4

\n

单个值是否可以同时显示 CPU 和 IO 利用率?

\n
\n\n

是的,它是 CPU 和磁盘利用率综合的粗略指示,但不是百分比。零意味着没有负载。如果您的系统有四个 CPU 核心,则值 4 表示系统满载,值 8 表示系统过载。CPU 负载是比计算更好的指标100 - idle CPU,因为后者不区分系统满载和系统过载的情况。

\n\n
\n

如果我只想知道 CPU 利用率怎么办?

\n
\n\n

看一下vmstat第一列:r。它显示使用或等待 CPU 的线程数。与之前的指标的解释相同。

\n\n
\n

或者只是 IO 利用率?

\n
\n\n

从寻找\xc3\xacostat输出开始。从这些统计数据中计算出磁盘负载比使用 CPU 更复杂,因为磁盘特性(每秒 I/O)和使用类型(顺序或随机、I/O 大小)都很重要。

\n\n
\n

或者,从这个单一值,我如何知道服务器有多重?

\n
\n\n

经验法则是,如果平均负载始终高于操作系统可用的核心/线程数,则服务器过载。

\n