1

我想编写一个脚本(在 linux 上使用 bash 或 Perl)来监视 Apache 并在它超过 X% CPU 时重新启动 Apache。我知道我需要获取 Apache 的总 CPU 使用率,因为它会打开子进程。

如何获取 Apache 的总 CPU 使用率?

4

3 回答 3

4

请尝试以下操作,但请确保使用您的实际名称更新 Apache 进程名称(我的是httpd):

ps u -C httpd | awk '{sum += $3} END {print sum}'

这将获得所有正在运行的 apache 进程的列表,并使用 对 的输出%CPU列求和。psawk

于 2012-08-13T14:16:31.013 回答
1

这将返回父 apache 进程和所有子进程的总负载,以百分比为单位,没有任何附加信息,因此您可以以任何方式轻松使用此脚本:

ps --no-heading -o pcpu -C httpd | awk '{s+=$1} END {print s}'
于 2012-10-05T09:58:41.493 回答
0

这将列出每个 apache2 进程的总 CPU 使用率:

ps u -C apache2 | awk '{print $3}' | grep -v "%CPU"

但是请注意,即使当前 CPU 使用率很高,总(=平均)CPU 使用率也可能相当低,尤其是对于长时间运行的进程。

于 2012-08-13T14:11:06.247 回答