linux如何查看系统平均负载是否高于CPU数量的70%?
1、先查看cpu数量
cat /proc/cpuinfo |grep "physical id"|uniq|wc -l
或者
nproc
2、使用uptime查看系统平均负载。这里显示的是 1 分钟、5 分钟和 15 分钟的平均负载。
15:36:33 up 1 day, 4:09, 1 user, load average: 0.35, 0.44, 0.51
3、计算出 70% CPU 数量的阈值。假设您有 4 个 CPU,则 70% 的阈值是 2.8。
threshold=$(echo "$cpu_count * 0.7" | bc)
4、获取平均负载
load=$(cat /proc/loadavg | awk '{print $1}')
5、比较平均负载和阈值
if (( $(echo "$load > $threshold" |bc -l) )); then
echo "平均负载高于 CPU 数量的 70%!"
else
echo "平均负载正常。"
fi
完整代码
#!/bin/bash
# 获取 CPU 数量
cpu_count=$(nproc)
# 计算 70% CPU 数量的阈值
threshold=$(echo "$cpu_count * 0.7" | bc)
# 获取平均负载
load=$(cat /proc/loadavg | awk '{print $1}')
# 比较平均负载和阈值
if (( $(echo "$load > $threshold" |bc -l) )); then
echo "平均负载高于 CPU 数量的 70%!"
else
echo "平均负载正常。"
fi