3

PHPのアプリケーションパフォーマンス管理を探しています(http://en.wikipedia.org/wiki/Application_performance_managementを参照)

このツールは、本番環境の任意のPHPアプリケーションにプラグインでき、各リクエストのPHP実行時間、ネットワーク時間、データベースクエリ時間に関する統計を収集/表示できます。各指標について、最小値、最大値、平均値を確認したいと思います。

これらの統計はすべて、リアルタイムおよび過去の統計で利用できます。

それを行うことができる既存のツールはありますか?(無料かどうかにかかわらず)ツールの提案は大歓迎です。

4

4 に答える 4

5

(/ meは深呼吸します)

この1行を一度に処理してみましょう。

PHPのアプリケーションパフォーマンス管理(...を参照)

APMが何であるかを知らない人々からは、おそらく非常に賢明な答えを得ることができないでしょう。

このツールは、本番環境の任意のphpアプリケーションにプラグインできます。

これはむしろ、PHPコードソリューションを探していることを意味します。これが、問題の解決を試みる最後の方法である可能性があります。

PHPの実行時間に関する統計

OK、これを確実に測定できる唯一の場所はPHPコード内ですが、問題を解決するためのくだらない方法です。

ネットワーク時間

どのネットワーク時間ですか?応答がクライアントに返され始めるまでに少なくとも2回のラウンドトリップがあり、どちらもPHPは認識できません。また、PHPスクリプトの完了とクライアントからの最後のack(またはRST)の間の遅延を測定することはできません。

データベースクエリ時間

これはAPMの範囲外になりつつあります。

必要なものとキャプチャできるものを見つけるには、ここで提供できるよりもはるかに詳細な分析が必要になります。ただし、これらのメトリックを取得するためにコードをインストルメント化しようとしないことをお勧めします。

多くの情報をWebサーバーでキャプチャできます。Apacheを想定している場合は、%Dと%Xをログに記録していることを確認してください。

この問題を解決するための最良のアプローチの1つは、パケットスニッフィングです。Client VantageNimsoftのソリューションのような予算がない場合は、Pastmonをご覧ください。

ページめくりの応答時間を再構築できるというこれらの主張の中でより高価ですが、私の経験では、単純な静的コンテンツ以外の問題が発生することがよくあります。彼らにPRGパターを投げると、彼らは完全に迷子になります。

ページめくりの反応を測定したい場合は、2つのアプローチがあります

  • ログ分析を使用します(ユーザー追跡機能がまだない場合は、Apache用にmod_usertrackを設定し、対応するユーザーとmimeのログを有効にします)。その後、'text/htmlの先頭からページめくり時間の見積もりを取得できます。 '最後の非'text/html'リクエストの最後までのリクエスト。残念ながら、私はこの種の分析を提供する既製のパッケージを知りません。

  • javascriptを使用して、タイムアウトをブラウザにプッシュします。これがOracleのEUPMの仕組みですが、結果を確認するには、完全なGridControlインストールでOracleスタックを実行する必要があります。しかし、非常に有望なアーキテクチャの骨については、エピソードを見てください(非常に似たようなものをマイクロソフトが発明しました!)-宝くじに当選して引退したとき、趣味でエピソードのサポートをPiwikに組み込んでみるかもしれません。

上記のすべてを実行するパッケージを販売することをいとわない人はたくさんいますが、多くの場合、実際に提供するものと測定しているものとの間には意味上の違いがあります。たとえば、それらの多くは、サーバーが応答を開始したときにサーバー側の処理が完了すると想定しています。これは、システムの状態の一貫したインジケーターとして扱うことができますが、明らかにナンセンスです(mod_log_firstbyteも参照) 。

HTH

于 2010-10-06T12:02:58.170 に答える
3

NewRelicを見てください。あなたが探しているすべての情報を網羅しています。PHP スタックのオーバーヘッドを個別に正確に測定したことはありませんが、少し前に Java スタックを広範囲に測定したところ、2 ~ 5% の範囲でした。同社は、PHP のオーバーヘッドはほぼ同じであると主張しており、私はそれを信じがちです。

于 2011-12-20T17:27:40.430 に答える
1

幅広い APM ツールがあり、それらはすべて異なる方法で動作し、異なる統計を収集できます。さまざまなツールがどのように機能するか、および監視しようとしている対象に応じて多かれ少なかれ役立つ理由の例を次に示します。

  • サーバーベースのエージェント。CPU やメモリ負荷などの統計を収集できます。Splunk または Cacti を参照してください。
  • Web エンドユーザー モニターは、多くの場合、提供するページに JavaScript を組み込むことで機能します。エンドユーザーのブラウザー内からのみ収集できる統計がたくさんあることは想像できると思います。
  • コードレベルの拡張/レポート/分析。たとえば、.NET には、AVIcode からのツールがいくつかあります。
  • ネットワーク トラフィック分析。製品の品質は、処理できるトラフィックの量と理解できるプロトコルの数によって異なります。このカテゴリの製品を持つ ExtraHop という会社があります。彼らの技術は、分析用にパケット ダンプをアップロードできるhttp://www.networktimeout.comを支えていると思います。
于 2010-10-06T23:50:27.553 に答える
0

PHPアプリケーションのプロファイリングについては、XHProfを確認することをお勧めします。

http://pecl.php.net/package/xhprof

http://techportal.inviqa.com/2009/12/01/profiling-with-xhprof/

于 2011-10-20T11:32:53.457 に答える