【问题标题】:Profiling Code on Production生产分析代码
【发布时间】:2011-05-21 05:24:22
【问题描述】:

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

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

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

  1. 这种功能甚至是可取的吗?我想从生产环境中获取一些真实世界的数据,但如果这意味着由于开销而破坏用户体验,则不这样做。
  2. 在生产环境中安装 xdebug 是否会以任何方式向攻击者/利用者开放服务器(假设未启用调试器)?这种类型的设置是否有样板配置?
  3. 触发探查器以获得适当样本量的最佳方式是什么?

非常感谢您对此事的任何其他见解。

【问题讨论】:

    标签: php profiling xdebug xhprof


    【解决方案1】:

    不要重新发明轮子。在生产环境中分析代码时,XHProf Profiler 绝对是最适合这项工作的工具。

    在 xdebug 中启用分析的选项仅限于通过 php.ini 文件或通过 xdebug.profiler_enable = 1 的 .htaccess 文件始终打开分析,或者通过 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

    【讨论】:

    • 感谢约翰的建议。我会阅读更多关于 xhprof 的内容并给予更多考虑。
    猜你喜欢
    • 1970-01-01
    • 2013-05-31
    • 1970-01-01
    • 1970-01-01
    • 2011-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多