我的 Drupal 6 站点多年来一直运行平稳,但最近经历了间歇性的极度缓慢(10-60 秒的页面加载)。几个小时的缓慢,然后是几个小时的正常(4-6 秒)页面加载。页面总是加载没有错误,只是有时需要永远。
我的设置:
- 视窗服务器 2003
- Apache/2.2.15 (Win32) Jrun/4.0
- PHP 5
- mysql 5.1
- Drupal 6
- 冷融合 9
- vmware 虚拟环境
- 企业防火墙后的 DMZ
- 流量:1-3 次点击/秒峰值
故障排除
- apache 错误日志中没有适用的错误
- drupal事件日志中没有错误
- Drupal 开发模块在 366.23 毫秒内显示 242 个查询,页面执行时间 2069.62 毫秒。(所以看起来查询和 php 脚本不是问题)
- 没有异常高的 CPU、内存或磁盘 IO
- 冷融合应用程序和 drupal 之外的其他静态页面也加载缓慢
- 网页test.org 测试显示非常长的第一个字节时间
问题似乎与 Apache 响应请求有关,但以前我只在 100% cpu 负载下看到过这种行为。仅从资源监控来看,似乎发生的事情很少。
这是关键 - 大约一半的站点访问来自我们的 LAN,但如果我禁用防火墙规则并阻止来自我们网络外部的访问,内部 (LAN) 访问(1000 多个设备)会很快。但是一旦外部访问恢复,该站点就会瘫痪。
阿帕奇配置?爬虫/机器人?攻击者?我已经走到了尽头,我应该在哪里寻找来确定问题出在哪里?
- - - 编辑: - - -
附件是来自webpagetest.org 的瀑布图,显示了15 秒的加载时间。我见过的时间高达几分钟。同样,服务器大部分时间都运行良好。绿色区域表示浏览器已发送请求并等待从服务器接收回数据的第一个字节。这当然是后端延迟,但令人费解的是,在这种缓慢期间几乎没有使用 CPU。
(没有足够的代表发布图片,请参阅https://webmasters.stackexchange.com/questions/54658/apache-very-high-page-load-time
- - - 编辑 - - -
在 Apache 方面 - 这可能是 ThreadsPerChild 问题吗?