我正在寻找PHP的应用程序性能管理(见http://en.wikipedia.org/wiki/Application_performance_management)
此工具可以插入生产中的任何PHP应用程序,并可以收集/显示有关每个请求的PHP执行时间,网络时间,数据库查询时间的统计信息.对于每个指标,我希望看到最小值,最大值和平均值.
所有这些统计数据都可以实时获得,也可以过去获得.
有没有现成的工具可以做到这一点?欢迎任何工具(免费或不免费)的建议.
解决方法:
(/我深呼吸)
让我们一次处理这一行:
application performance management for PHP (see …
你可能不会从那些不知道APM是什么的人那里得到非常明智的答案.
This tool could be plugged to any php application in production
这意味着您正在寻找一个PHP代码解决方案 – 这可能是您应该尝试解决问题的最后一种方式.
statistic about php execution time
好的,唯一能够可靠地测量它的地方是在PHP代码中 – 但它是解决问题的一种糟糕的方法.
network time
哪个网络时间?在响应开始回到客户端之前至少有两次往返,PHP都看不到.此外,您无法测量PHP脚本完成与客户端的最终确认(或RST)之间的延迟.
db query time
这超出了APM的范围.
只是为了找出你需要的东西,以及你能捕获的东西需要比这里提供的更深入的分析.但是,我建议您不要尝试使用代码来获取这些指标.
Web服务器可以捕获大量信息 – 假设它的Apache,确保您正在记录%D和%X.
解决问题的最佳方法之一是通过数据包嗅探.如果您没有获得Client Vantage或Nimsoft解决方案的预算,您可能需要查看Pastmon.
虽然这些声称能够重建翻页响应时间的成本越来越高,但我的经验是他们经常遇到除静态内容以外的任何问题.向他们扔一个PRG图片,他们完全迷失了.
如果要测量翻页响应,则有两种方法
>使用日志分析(如果您还没有一些用户跟踪功能,请为Apache设置mod_usertrack – 并启用相应的用户和mime日志记录)然后您可以从’text /开头估计页面翻转时间html’请求到最后一个非’text / html’请求的结尾.不幸的是,我不知道有任何现成的包提供这种分析.
>使用javascript将超时推送到浏览器.这就是Oracle’s EUPM的工作原理 – 但您需要运行带有完整网格控制安装的Oracle堆栈才能查看结果.但是看看Episodes对于一个非常有前途的架构的骨头(特别是微软有invented something看起来非常相似!) – 当我赢得彩票并退休时,我可能会尝试为076版建立支持Episodes的业余爱好.
虽然有很多人愿意向你推销包含上述所有内容的软件包,但在很多情况下,它们实际提供的内容与您测量的内容之间存在一些语义差异.例如.他们中的很多人都认为当服务器开始响应时服务器端处理完成 – 这显然是无意义的,尽管它可以被视为系统状态的一致指示(参见mod_log_firstbyte)
HTH