2010-12-06 3 views
11

プロダクションサーバーでコードをプロファイルし、ベストプラクティスのアドバイスが必要なものを実装しようと考えています。明らかに、オーバーヘッドのためにすべてのリクエストをプロファイルするのは悪い考えです。そのため、リクエストごとにプロファイラをランダムに呼び出すいくつかの手法を検討していました。 10,000リクエストごとに1つのプロファイルのようなもの。プロダクションのコードを書きます

FacebookのXHProf Profilerでこのようなタスクを達成する方法があることは知っていますが、xdebugを使って同様の解決策を望んでいました。

だから私の質問は、(仮定xdebugのは、プロファイラである)、次のとおりです。

  1. も、お勧め機能のこの種のですか?実際の世界のデータを実稼働環境から取得したいのですが、オーバーヘッドのためにユーザーエクスペリエンスが破壊されるという意味ではありません。
  2. 実稼働環境にxdebugをインストールすると、攻撃者/悪用者にサーバーを開くことはできますか(デバッガが有効ではないと仮定します)。このタイプの設定にはボイラープレートの設定がありますか?
  3. 適切なサンプルサイズに対してプロファイラをトリガする最適な方法は何ですか?

その他の洞察は非常に高く評価されます。

答えて

9

ホイールを改造しないでください。プロダクション環境でコードをプロファイリングする場合、XHProf Profilerは仕事にとって最適なツールです。 xdebugの中にプロファイリングを有効にするための

あなたのオプションは、xdebug.profiler_enable = 1経由php.iniファイルまたは.htaccessファイルを経由して、常に上のプロファイリングを持つか、選択xdebug.profiler_enable_trigger = 1を経由してプロファイリングをオンにするのいずれかに限定されています。後者の場合は、XDEBUG_PROFILE GETまたはPOSTパラメータを設定するか、XDEBUG_PROFILEという名前のクッキーを送信する必要があります。これは、誰かがいたずらをしたいなら、GETパラメータを一連の要求に追加するだけで、サーバーをクロールするのが遅くなる可能性があることを意味します。

比較的ランダムなリクエストのサンプルをプロファイルする唯一のオプションは、cronスクリプトに.htaccessファイルを適切なディレクトリに定期的に置き、それをディレクトリから移動することです。それでも、それは望ましいものではありません。

XHProfと一緒に行くことに決めたら、XHGUIを見てください。

http://phpadvent.org/2010/profiling-with-xhgui-by-paul-reinheimer

+0

提案していただきありがとうございます。私はxhprofについてもっと読んで、もう少し考慮する。 –

関連する問題