前の記事 ≪:2010年12月15日 管理人のブックマーク
次の記事 ≫:246種類のクリアで美しいソーシャルアイコンセット

サーバ上で動いてるどのphpが重いか?を調べられる「phptop」

2010年12月16日-はてなブックマーク

スポンサード リンク
[PR] 英単語を忘却曲線アプリを使って超効率よく記憶する方法
サーバ上で動いてるどのphpが重いか?を調べられる「PhpTop」。
サーバ監視に超使える〜topコマンドのまとめ」というエントリで様々なtopコマンドを紹介したのですが、phptopなるものを新たに発見したのでご紹介。
具体的に出来ることは、今サーバで動いているものを指定した期間で、もっともアクセスが多いphp、CPUを多く消費しているphp、メモリを多く使っているphpといったものを降順にソートできるというものです。

サーバ上で多くのphpが動いており、どうも負荷が高いけどどれが重いのかよくわからないという場合に使えます。
top コマンドでは httpd が動いてるぐらいしか分からないので phper な方で負荷にお悩みの方は使ってみるのもよいかも。



たとえば、
$ phptop -t 15 -s mem
のように実行すると、15分以内で、メモリを多く使っている順にソートが可能。

-o html オプションを付ければ次のようにhtmlで出力することも可能です。
URLごとにリソース消費を表示してくれて便利です。



使い方は、パッケージに含まれる phptop_hook.php を任意のパスに解凍後、「 auto_prepend_file=/path/to/phptop_hook.php 」を php.ini に記述することで、全てのphpが読み込まれる前にincludeされるコードとして設定します。そして、apacheを再起動。最初にincludeされるコードに設定することで、apacheのエラーログにリソース消費の状態等を記録します。

phptop コマンド自体はapacheのエラーログを解析することで、結果を表示することが出来るというものになってます。
phptop は Perl で書かれているので、Perl の必要モジュールが入ってない場合は、実行の前にインストールする必要があります。

とりあえず、どこのパスが重いかを調べるのに使えますので、重い部分が分かったらそこを xhprof 等でプロファイリングしてチューニングするという流れで対処すればよさそうですね。

関連エントリ
関連の記事検索:PHP, チューニング, サーバ, 監視
スポンサード リンク

By.KJ : 2010年12月16日 09:11 livedoor Readerで購読 Twitterに投稿

間違いの指摘をしていただける方はメール、あるいはTwitter/FBでお願いします(クリック)