PHP应用程序的应用程序性能管理

Mic*_*ael 3 php apm

我正在寻找PHP的应用程序性能管理(请参阅http://en.wikipedia.org/wiki/Application_performance_management)

此工具可以插入生产中的任何PHP应用程序,并可以收集/显示有关每个请求的PHP执行时间,网络时间,数据库查询时间的统计信息.对于每个指标,我希望看到最小值,最大值和平均值.

所有这些统计数据都可以实时获得,也可以过去获得.

有没有现成的工具可以做到这一点?欢迎任何工具(免费或不免费)的建议.

sym*_*ean 5

(/我深呼吸)

让我们一次处理这一行:

PHP的应用程序性能管理(参见...

你可能不会从那些不知道APM是什么的人那里得到非常明智的答案.

这个工具可以插入生产中的任何php应用程序

这意味着您正在寻找一个PHP代码解决方案 - 这可能是您应该尝试解决问题的最后一种方式.

关于php执行时间的统计

好的,唯一可以可靠地测量它的地方是在PHP代码中 - 但它是一种解决问题的糟糕方法.

网络时间

哪个网络时间?在响应开始回到客户端之前至少有两次往返,PHP都看不到.此外,您无法测量PHP脚本完成与客户端的最终确认(或RST)之间的延迟.

数据库查询时间

这超出了APM的范围.

只是为了找出你需要的东西,以及你能捕获的东西需要比这里提供的更深入的分析.但是,我建议您不要尝试使用代码来获取这些指标.

Web服务器可以捕获大量信息 - 假设它的Apache,确保您正在记录%D和%X.

解决问题的最佳方法之一是通过数据包嗅探.如果您没有获得Client VantageNimsoft解决方案等预算,您可能需要查看Pastmon.

虽然这些声称能够重建翻页响应时间的成本越来越高,但我的经验是他们经常遇到除静态内容以外的任何问题.向他们扔一个PRG图片,他们完全迷失了.

如果要测量翻页响应,则有两种方法

  • 使用日志分析(如果您还没有一些用户跟踪功能,请为Apache设置mod_usertrack - 并启用相应的用户和mime日志记录)然后您可以从'text/html开始估算页面翻转时间'请求到最后一个非'text/html'请求的结尾.不幸的是,我不知道有任何现成的包提供这种分析.

  • 使用javascript将超时推送到浏览器.这就是Oracle的EUPM的工作原理 - 但您需要运行带有完整网格控制安装的Oracle堆栈才能查看结果.但有一看情节的一个非常有前途的架构的骨头(显着微软已经发明的东西,看起来非常相似!) -当我赢了彩票和退休我可能会尝试建设发作支持到Piwik的爱好.

虽然有很多人愿意向你推销包含上述所有内容的软件包,但在很多情况下,它们实际提供的内容与您测量的内容之间存在一些语义差异.例如他们中的很多假设当服务器开始响应该服务器侧的处理完成时-这显然是无义,虽然它可以作为系统的状态的一致指示器被处理(也参见mod_log_firstbyte)

HTH