2010-12-06 89 views
11

我在執行在生產服務器上配置代碼剖析的想法,並希望獲得一些最佳實踐建議。顯然,由於增加了額外的開銷,所以對所有請求進行概要分析是個壞主意,所以我正在研究一些技術,這些技術會隨機調用每個請求的分析器。每10,000個請求就有1個配置文件。生產剖析代碼

我知道有一種方法可以通過Facebook的XHProf Profiler實現這樣的任務,但希望使用xdebug的類似解決方案。

所以我的問題是:(假設Xdebug的是分析器):

  1. 就是這種功能甚至可取的?我想從生產環境中獲取一些真實世界的數據,但如果這意味着由於開銷而破壞用戶體驗,則不是。
  2. 在生產環境中安裝xdebug是否以任何方式向攻擊者/開發者打開服務器(假設調試器未啓用)?是否有這種設置的鍋爐配置?
  3. 觸發適合樣本量的探查器的最佳方法是什麼?

任何其他洞察事項將不勝感激。

回答

9

不要重新發明輪子。當涉及到在生產環境中對代碼進行分析時,XHProf Profiler絕對是該工作的最佳工具。

您的XDebug的內使仿形選擇是有限的要麼經由php.ini文件或.htaccess文件經由xdebug.profiler_enable = 1總是在具有分析或通過xdebug.profiler_enable_trigger = 1上分析選擇性地打開。在後一種情況下,您必須設置XDEBUG_PROFILE GET或POST參數集或發送名稱爲XDEBUG_PROFILE的cookie。這意味着,如果有人惡作劇想要,他們可以通過簡單地將GET參數附加到一堆請求中來減慢服務器的抓取速度。

我可以看到的唯一選項是將一個相對隨機的請求樣本進行概要分析,是讓cron腳本定期將.htaccess文件放在適當的目錄中,然後將其移出目錄。儘管如此,這還不夠理想。

如果您決定與XHProf一起去看看XHGUI

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

+0

謝謝你的建議約翰。我會更多地閱讀xhprof並給予更多考慮。 – 2010-12-07 13:29:48