查找哪些页面导致加载?

查找哪些页面导致加载?

我通常不是系统管理员,但我有一台负载很重的生产服务器(提供一些基本的 php 页面和一些包含一些 sql 查询的 php 重定向文件,但没有图像),它不断崩溃。具体来说,负载达到约 20 并且请求超时。Apache 访问日志或错误日志中没有任何内容表明存在异常活动,但磁盘 IO 图表显示了与我们的停机时间相关的大量读/写峰值。

我知道这是这些页面和每小时几十万次点击的组合,但我不知所措,不知道该使用哪些工具。我需要查看 A) 这些页面每秒/分钟/小时的点击次数和 B) 提供每个页面需要多长时间。有什么可用于分析负载下的实时服务器?哪个最好?

服务器是 apache2、php5、ubuntu hardy。任何建议都非常感谢。

编辑:

感谢您的想法。我可以编辑 PHP,但这些页面是设计师经常更改的,他们喜欢复制/粘贴/删除内容,我希望找到比胶带更好的方法,因为这是我们许多服务器上反复出现的问题。

真的没有软件包可以监控生产服务器上每个文件的服务器负载吗?我是否必须求助于调试工具和每个代码段的分析?如果我的服务器已经因点击而阻塞,那么添加 XDebug 难道不会彻底搞砸我的 S@^& 吗?

答案1

您可以尝试 Apache 模块慢速对数获取当前进程处理每个请求所用的时间周期的测量值。

答案2

最简单的第一件事就是尝试识别请求的最“流行”的 PHP 文件。

你可以检查 Apache 的 access.log 文件,或者使用类似阿帕奇实时(尽管它也依赖于日志文件)。

您可以使用以下方式检查 Apache 服务器状态mod_status- 它还会向您显示究竟是什么在使用 Apache 的 CPU 周期。有很多关于使用它来识别 CPU 密集型请求的信息。

在您有了“优化候选”列表之后,您确实可以对每个候选单独使用 XDebug。

作为一个更简单的选择,你可以安装 xcache 或 APC 或任何其他 PHP 缓存软件。它确实显著加快了 PHP 脚本的执行速度。

答案3

你应该尝试 Xdebug分析功能。您可以将其安装为模块,然后打开分析以创建配置文件。收集数据后,您可以使用高速缓存研磨或其他瓦尔格林德处理,看看你的时间都花在了哪里。还有其他选项PHP 分析也一样。

答案4

有一个简单的方法可以自动将脚本添加到所有 php 文件的前面和后面:http://www.electrictoolbox.com/php-automatically-append-prepend/

只需在附加的文件中启动一个计时器,然后停止它并在附加的文件中记录运行时间。

通过使用此技术,您不必担心其他开发人员/设计人员覆盖您的代码。

相关内容