Dha*_*ans -3 linux command-line load-average
在 Linux 或 Unix 操作系统中,我收到文本
系统负载
如下。
谁能告诉我这是什么意思以及如何使用 CLI 命令提取系统负载%?
System load: 6.84
Run Code Online (Sandbox Code Playgroud)
请参阅 Unix 风格系统负载值的 Wikipedia 文章: https://en.wikipedia.org/wiki/Load_(computing)
简而言之,如果这是 Unix 风格的负载平均值,您需要将该值除以系统中可用处理器核心的数量,然后乘以 100以获得百分比值。
事实上,Unix 风格的负载值描述了特定时间段内实际运行 + 等待 CPU 进程的平均数量:通常会报告三个负载值,分别使用 1、5 和 15 分钟的时间窗口。在 Linux 上,等待 I/O 的进程也被计算在内;在大多数 Unix 系统上它们不是。
如果负载值小于可用处理器核心的数量,则意味着系统在平均窗口内并未完全繁忙,并且可以处理更多工作;如果负载值大于处理器核心的数量,则意味着工作量超出了处理器的处理能力。
在大多数类 Unix 系统(包括 Linux)中,您可以使用该uptime
命令获取如下输出:
$ uptime
12:11:23 up 5:22, 1 user, load average: 0.04, 0.05, 0.01
Run Code Online (Sandbox Code Playgroud)
在这些词之后load average:
显示 1、5 和 15 分钟时间窗口的负载值。
在 Linux 上,您可以通过读取/proc/loadavg
虚拟文件(例如cat /proc/loadavg
.
在 Linux 上,您可以将负载平均值转换为如下百分比,例如:
#!/bin/sh
# uses the 5-minute load value
LOADVAL5=$(awk '{ print $2; }' < /proc/loadavg)
NUMCPUS=$(getconf _NPROCESSORS_ONLN)
echo "$LOADVAL5 * 100 / $NUMCPUS" | bc
Run Code Online (Sandbox Code Playgroud)
当然,这个脚本没有经过优化,因此不适合重复运行;如果您正在开发监控系统,您应该在程序代码中进行计算,而不是运行外部脚本来计算负载百分比。
归档时间: |
|
查看次数: |
6997 次 |
最近记录: |