Pocket

こんにちはPHP嫌いなあだちんです。
↑このフレーズで始まるの3年ぶりっ!?

開発していると、このページ重いなあ…
インフラスケールアップするか?いやいやそんなCPU使用料使ってないし、
もしかしたらこのPHPプログラムに原因があるのでは?など
どのメソッドが重くなっているかリファクタリングすることでボトルネックを探しやすくしてくれて、
さらに可視化してくれるxhprof、xhgui、graphvizを導入してみました。しかもFacebook製とな!


■Environment

・EC2 Amazon Linux t2.micro
・RDS Aurora
・PHP 5/7
・Apache 2.2.34


■xhprof install

・php-devel install

・xhprof-0.9.4 install

・edit php.ini

・make log 

・確認

OK!


■xhgui install

https://github.com/pierrejoye/xhprof-pr

・git clone

・header.php

・config.php

DBの設定と$controlIPsは使わないのでfalseにしてそれ以下はコメントアウトします。

・make database xhprof

テーブル作成はxhprof_lib/utils/Db/Pdo.phpに書いてるのでそのままコピペ。

・/etc/httpd/conf.d/xhprof.conf

nginxでもheader.php読むように設定すればOK。念のためダイジェスト認証も。
久々apache触った。。。apache再起動忘れずに。
ちなみにxhguiはプロファイル結果を可視化して分かりやすく表示するもの。

・確認

アクセスすればこんなUIが出てくるはず。

しかし!

これだけではない!!


■graphviz

プロファイル結果をグラフ表示するgraphvizを入れないとアカン。

・graphviz graphviz-gd

・config.php


 ■解析

・index.php

適当にアクセスしたいページF5してxhprofのページからRunIDをクリックすると。。。

 

おおおおどこが怪しいか分かる!!


■まとめ

PHPで開発してる人は導入検討してみるといいかも!
可視化すばらっ。

参考
http://i-plug-tech.hatenablog.com/entry/2017/01/04/231534
https://qiita.com/w_cota/items/48667a845cd06d969d4a

Pocket

カテゴリー: ApacheAWSPHP

adachin

1989年生まれのSRE。ホスティングから大規模なアドテクなどのインフラエンジニアとして携わる。現在はサービスの信頼性向上、DevOps、可用性、レイテンシ、パフォーマンス、モニタリング、オブザーバビリティ、緊急対応、AWS/Azureでのインフラ構築、Docker開発環境の提供、Kubernetes保守、インフラコード化、新技術の検証、リファクタリング、セキュリティ強化などを担当している。個人事業主では数社サーバー保守とベンチャー企業のSREインフラコンサルティングやMENTAで未経験者にインフラのコーチング/コミュニティの運用を実施している。また、「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/技術広報/テクニカルサポート/コントリビュータでもある。

0件のコメント

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください