2010-12-06 122 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