3

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

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

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

是否有任何现有的工具可以做到这一点?欢迎对任何工具(免费或非免费)提出建议。

4

4 回答 4

5

(/我深吸一口气)

让我们一次处理这一行:

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

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

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

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

php执行时间统计

好的,您可以可靠地衡量这一点的唯一地方是在 PHP 代码中 - 但它是解决问题的糟糕方法。

网络时间

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

数据库查询时间

这超出了 APM 的范围。

只是为了找出你需要什么,以及你能捕捉到什么,需要比这里提供的更深入的分析。但是,我建议您不要尝试检测您的代码来获取这些指标。

网络服务器可以捕获很多信息 - 假设它是 Apache,请确保您正在记录 %D 和 %X。

解决问题的最佳方法之一是通过数据包嗅探。如果您没有足够的预算购买Client VantageNimsoft的解决方案,您可能想看看Pastmon

尽管这些声称能够重建翻页响应时间的成本更高,但我的经验是,除了纯静态内容之外,它们通常会遇到任何问题。向他们扔PRG pater,他们完全迷路了。

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

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

  • 使用javascript将超时推送到浏览器上。这就是Oracle 的 EUPM 的工作方式——但您需要运行一个安装了完整网格控制的 Oracle 堆栈才能看到结果。但是请查看Episodes以了解非常有前途的架构的骨架(值得注意的是,微软已经发明了一些看起来非常相似的东西!) - 当我中了彩票并退休时,我可能会尝试在Piwik中建立对 Episodes 的支持以作为一种爱好。

虽然有很多人愿意向您出售执行上述所有操作的软件包,但在很多情况下,他们实际提供的内容与您正在测量的内容之间存在一些语义差异。例如,他们中的许多人假设服务器端处理在服务器开始响应时完成 - 这显然是无稽之谈,尽管它可以被视为系统状态的一致指标(另见mod_log_firstbyte

高温高压

于 2010-10-06T12:02:58.170 回答
3

看看NewRelic。它涵盖了您正在寻找的所有信息。我没有准确独立测量 PHP 堆栈的开销,但不久前我对 java 堆栈进行了广泛的测量,它在 2-5% 的范围内。该公司声称 PHP 开销大致相同,我倾向于相信他们。

于 2011-12-20T17:27:40.430 回答
1

APM 工具种类繁多,它们的工作方式各不相同,并且能够收集不同的统计数据。以下是一些不同工具如何工作的示例,以及为什么它们可能或多或少有用,具体取决于您要监控的内容:

  • 基于服务器的代理。允许收集 CPU 和内存负载等统计信息。请参阅 Splunk 或 Cacti。
  • Web 最终用户监视器通常通过在您提供的页面上包含一些 JavaScript 来工作。我相信你可以想象有大量的统计数据只能从最终用户的浏览器中收集。
  • 代码级扩充/报告/分析。例如,对于 .NET,AVIcode 提供了一些工具。
  • 网络流量分析。产品质量因它可以处理多少流量和了解多少协议而异。有一家名为 ExtraHop 的公司拥有此类产品。我相信他们的技术支持http://www.networktimeout.com,您可以在其中上传数据包转储进行分析。
于 2010-10-06T23:50:27.553 回答
0

对于分析 PHP 应用程序,您可能需要查看 XHProf:

http://pecl.php.net/package/xhprof

http://techportal.inviqa.com/2009/12/01/profiling-with-xhprof/

于 2011-10-20T11:32:53.457 回答