2012-08-13 25 views
1

我想编写一个脚本(在bash或Perl on linux上),它监视Apache并在它超过X%CPU的情况下重新启动Apache。 据我所知,我需要得到Apache的总CPU使用率,因为它打开子进程。在(linux)中获得apache总CPU使用率

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

回答

3

尝试以下,但一定要用实际一个更新Apache的进程名(我的是httpd):

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

这将让所有的Apache进程的列表,运行,总结了%CPUps的输出使用awk

+0

PSü-C阿帕奇回报一个空的结果 – Shay 2012-08-13 14:31:05

+0

@Shay是'apache'你的apache进程的名字?我见过'httpd'和'apache2',但不只是'apache'? – newfurniturey 2012-08-13 14:34:12

+0

该名称是apache2,但是使用apache2该命令也会返回空 – Shay 2012-08-13 14:43:59

0

这将列出你每次的Apache2进程的CPU使用总量:

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

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

1

这将返回父Apache进程的总负载和所有子进程,以百分比,没有任何额外的信息,这样就可以很容易地以任何方式使用这个脚本:

ps --no-heading -o pcpu -C httpd | awk '{s+=$1} END {print s}'