2009年10月1日木曜日

Apacheプロセス数のチェック方法

駆動中のhttpdプロセス数のチェック
$ ps -a | grep httpd | grep -v grep | wc

プロセスリストからhttpdプロセスの数を数える。
"grep -v grep"しないと、"grep httpd"まで数え上げてしまう。
また、httpdは親プロセス+子プロセスで出てくるので、MaxClients等で指定した子プロセス数より1つ多くなる点に注意。

httpでのTCPコネクションのチェック
$ netstat -a | grep .http | grep EST | wc

httpポートでESTABLISHEDしているTCPコネクション数を数える。



定期的にチェックする場合は、以下の様にするのが楽。
$ while [ 1 ]; do ps -a | grep httpd | grep -v grep | wc; sleep 1;
done

※1秒ごとにコマンドを延々実行(B-Shell系)

セッションを張りっぱなしのクライアントを実現(つまり、ずっと処理中の子プロセスを生成)するには、以下の様にtelnetで直接叩くのが楽。
$ telnet www.server.com 80
ただし、Accept Filterを有効にしている場合、TCPはESTABLISHEDするが、子プロセスまで要求が渡らないため、httpd子プロセスは増えない。
Accept Filterを一旦解除するか、sleepするCGIを作成し、これをGETするのがよい。

0 件のコメント: