有没有办法返回平均负载,不包括由好的进程引起的任何负载?
我们有一个负载平衡机制,可以检查多个 Linux 服务器的负载,并将作业提交给负载最低的服务器。我们有一个场景,所有服务器的负载都太高,因此无法在负载平衡中选择任何服务器。但是,我注意到服务器正在处理一堆不错的进程,因此尽管平均负载很高,但提交另一个作业仍然是“安全的”。
让我知道是否需要澄清。谢谢。
小智 6
您可以编写自己的脚本,用于ps列出处于运行/可运行状态的所有进程,而不会出现大于 0 的 nice 值。您需要使用的特定语法将根据您的ps. 像这样的事情可能会奏效:
ps -eo state,nice | awk 'BEGIN {c=0} $2<=0 && $1 ~ /R/ { c++ } END {print c-2}'
Run Code Online (Sandbox Code Playgroud)
它运行ps收集所有进程的state和nice级别并将输出管道awk设置为计数变量c并在第二列(nice)小于或等于 0 并且第一列包含 R(用于可运行)时增加它。完成后,它会打印出c减去 2 后的值。我减去 2,因为 ps 和 awk 命令在命令执行期间几乎总是被认为是可运行的。最终结果将是一个数字,它表示在脚本执行时可运行的进程数,不包括自身和进程运行nicely,它本质上是机器上的瞬时负载。您需要定期运行它并在 1、5 和 15 分钟内对其进行平均,以确定机器的典型负载平均值。
| 归档时间: |
|
| 查看次数: |
916 次 |
| 最近记录: |