生产分析代码

时间:2010-12-06 20:48:01

标签: php profiling xdebug xhprof

我正在考虑实现在生产服务器上配置代码并想要一些最佳实践建议的想法。显然,由于增加的开销,对所有请求进行分析是个坏主意,因此我正在研究一些技术,这些技术将根据请求随机调用分析器。每10,000个请求就有1个配置文件。

我知道有一种方法可以通过Facebook的XHProf Profiler来实现这样的任务,但希望使用xdebug来实现类似的解决方案。

所以我的问题是(假设xdebug是分析器):

  1. 这种功能是否可取?我想从生产环境中获取一些真实世界的数据,但如果这意味着由于开销而破坏用户体验则不会。
  2. 在生产中安装xdebug是否以任何方式打开服务器攻击者/开发者(假设调试器未启用)?这种类型的设置是否有锅炉板配置?
  3. 触发分析器以获得合适样本量的最佳方法是什么?
  4. 对此事的任何其他见解将不胜感激。

1 个答案:

答案 0 :(得分: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