我对Linux不太熟悉。因此,对于其他人来说,这可能是一个简单的问题。当我们跑步时顶部c 命令 - 我们获得服务器上当前状态的平均等待时间(wa)。我需要知道过去 1 个月的平均等待时间是多少。有什么办法可以得到这些信息吗?
答案1
您需要定期记录该信息并将其保存一个月。
有一些工具可以进行资源使用跟踪,例如sysstat
或atop
。
至少在atop
Debian 上,每 10 分钟采样一次的信息存储在/var/log/atop
.
可以通过以下命令查询全局CPU使用率信息
atop -r /path/to/log/file -PCPU
手册atop
页为您提供了该输出的描述,您会发现对于每一行,第 6 个字段报告该周期内的秒数,第 7 个字段报告每秒的 CPU 滴答数,第 13 个字段报告每秒的 CPU 滴答数。等待滴答声。
所以假设使用 GNU 工具,你可以这样做:
start=$(date -d '1 month ago' +%s)
find /var/log/atop -maxdepth 1 -name 'atop_[0-9]*' \
-newermt "@$start" -exec atop -r {} -PCPU \; |
awk -v start="$start" '
$3 >= start {t += $6 * $7; w += $13}
END {printf "%.2f%%\n", w * 100 / t}'
答案2
您应该能够使用sysstat
, sar
,...更长时间地监控系统性能
在互联网上查找这些程序。这是一个开始链接:https://www.thegeekstuff.com/2011/03/sar-examples/