我正在尝试使用 来监控系统平均负载uptime
。在我的 Debian 机器上,我使用了以下命令:
$ for ((i=0;i<=1000000000;i++)); 正常运行时间;完成
然而,看看top
,18% 的 CPU 被分配给了bash
!这意味着我的正常运行时间检查太过激进了。
我如何轻松检查平均负载?
答案1
你有没有尝试过watch
?
watch uptime
答案2
这难道不是运行轻量级监控守护进程的好例子吗?监控? 您可以设置一个阈值,并让系统在特定条件下向您发送电子邮件……
另外,top
这里有一个选项吗?
答案3
您的示例代码正在以系统发出串行正常运行时间命令的速度查询正常运行时间,这不是您想要的。
您需要使用一个以一定间隔进行查询的工具(轮询)。
您可以通过添加 sleep 语句来“修复”现有代码。这将导致轮询粒度减小,但监控带来的开销也会减少。此示例将每分钟检查一次。
$ for ((i=0;i<=1000000000;i++)); do sleep 1m; uptime; done
也就是说,您确实想使用专门为监控而构建的工具,而不是自己编写的工具。