(/ meは深呼吸します)
この1行を一度に処理してみましょう。
PHPのアプリケーションパフォーマンス管理(...を参照)
APMが何であるかを知らない人々からは、おそらく非常に賢明な答えを得ることができないでしょう。
このツールは、本番環境の任意のphpアプリケーションにプラグインできます。
これはむしろ、PHPコードソリューションを探していることを意味します。これが、問題の解決を試みる最後の方法である可能性があります。
PHPの実行時間に関する統計
OK、これを確実に測定できる唯一の場所はPHPコード内ですが、問題を解決するためのくだらない方法です。
ネットワーク時間
どのネットワーク時間ですか?応答がクライアントに返され始めるまでに少なくとも2回のラウンドトリップがあり、どちらもPHPは認識できません。また、PHPスクリプトの完了とクライアントからの最後のack(またはRST)の間の遅延を測定することはできません。
データベースクエリ時間
これはAPMの範囲外になりつつあります。
必要なものとキャプチャできるものを見つけるには、ここで提供できるよりもはるかに詳細な分析が必要になります。ただし、これらのメトリックを取得するためにコードをインストルメント化しようとしないことをお勧めします。
多くの情報をWebサーバーでキャプチャできます。Apacheを想定している場合は、%Dと%Xをログに記録していることを確認してください。
この問題を解決するための最良のアプローチの1つは、パケットスニッフィングです。Client VantageやNimsoftのソリューションのような予算がない場合は、Pastmonをご覧ください。
ページめくりの応答時間を再構築できるというこれらの主張の中でより高価ですが、私の経験では、単純な静的コンテンツ以外の問題が発生することがよくあります。彼らにPRGパターを投げると、彼らは完全に迷子になります。
ページめくりの反応を測定したい場合は、2つのアプローチがあります
ログ分析を使用します(ユーザー追跡機能がまだない場合は、Apache用にmod_usertrackを設定し、対応するユーザーとmimeのログを有効にします)。その後、'text/htmlの先頭からページめくり時間の見積もりを取得できます。 '最後の非'text/html'リクエストの最後までのリクエスト。残念ながら、私はこの種の分析を提供する既製のパッケージを知りません。
javascriptを使用して、タイムアウトをブラウザにプッシュします。これがOracleのEUPMの仕組みですが、結果を確認するには、完全なGridControlインストールでOracleスタックを実行する必要があります。しかし、非常に有望なアーキテクチャの骨については、エピソードを見てください(非常に似たようなものをマイクロソフトが発明しました!)-宝くじに当選して引退したとき、趣味でエピソードのサポートをPiwikに組み込んでみるかもしれません。
上記のすべてを実行するパッケージを販売することをいとわない人はたくさんいますが、多くの場合、実際に提供するものと測定しているものとの間には意味上の違いがあります。たとえば、それらの多くは、サーバーが応答を開始したときにサーバー側の処理が完了すると想定しています。これは、システムの状態の一貫したインジケーターとして扱うことができますが、明らかにナンセンスです(mod_log_firstbyteも参照) 。
HTH