我的目标是检查等待来自 top 命令的值不高于 50
如果值高于 50 并且持续一小时以上,则需要发出警报(通过脚本或其他选项)
到目前为止我所做的是:
top-n|grepiowait
CPUstates:94.3%idle,0.5%user,5.2%kernel,0.0%iowait,0.0%swap
我可以轻松捕获 iowait,如下所示:
top-n|grepiowait|awk'{print$9}'|seds'/%//'
0.0
但如何验证等待值至少高于 50 一小时?
答案1
答案2
您可以将iostat
其用于此目的。只需运行iostat -y 3600 | grep -A 1 avg-cpu
上述命令将每小时报告各种 CPU 状态(idle、iowait、ecc),而以下 grep 将仅推断您关心的两行。显然,在将脚本投入生产之前,请进行一些等待时间较短(例如 5 秒)的测试。
编辑:对于 solaris,你可以使用iostat -c 3600
但是,命令grep
会有所不同,因此你必须自己测试。