我有一个运行 CentOS 5 的网络服务器,带有 Apache 2 和 PHP 5.3。目前该服务器主要用于开发,因此实际上没有什么流量可谈。该服务器包含几个 Drupal 实例、一个 Mediawiki 实例和一些静态页面。它使用虚拟主机。
问题是 Drupal 和 Mediawiki 的性能真的很差。页面执行时间大约在 5 到 15 秒之间。静态页面运行良好。
我已经启用了 mod_forensics,并且我可以看到请求被立即注册,但是需要 5-10 秒才能得到服务,因此该问题与 Web 服务器上的执行有关。
我已经在 Drupal 中安装了提供有关执行信息的 Devel 模块,它为我提供了这样的数据。
Executed 59 queries in 62.86 milliseconds. Queries taking longer than 5 ms and queries executed more than once, are highlighted. Page execution time was 6215.2 ms.
因此数据库性能似乎不是问题。
我已经安装了 eAccelerator 并打开了日志记录,它显示几乎所有页面请求的点击次数,如下所示:
EACCELERATOR hit: "/var/www/adqwww/includes/path.inc"
如果我理解正确的话,这应该意味着缓存正在被使用。
现在我已经没有主意了,我需要更准确地指出发生了什么,但我真的不知道该怎么做。由于 Mediawiki 和 Drupal 都受到影响,我假设这与 php 有关,但我不知道如何调查。任何帮助都将不胜感激。
更新:问题现在已经解决(我不知道是否有合适的方法将问题标记为已解决),结果发现是 DNS 问题,正如下面所建议的那样。我不明白 SQL 服务器需要解析连接的 Web 服务器。感谢花时间回答这个问题的每个人。
答案1
这听起来像是超时,您的系统正在等待某事而不是做某事。
通常在这种情况下是名称解析(DNS)(httpd / mysql的反向查找,或mysql主机的正向查找)。
检查您是否可以查找您连接的 IP 和数据库连接的主机名,以及需要多长时间。
答案2
尝试禁用 Drupal 更新状态模块,在某些防火墙配置下,它可能会导致相对较长的超时。也许 MediaWiki 问题很明显,但也可能与外部查找有关。