PHP 页面有时加载缓慢

PHP 页面有时加载缓慢

在过去的 15-20 天里,我注意到一个网站出现了问题。该网站有两个图片库,一个是几年前制作的旧静态 HTML 库,另一个是主库,由 ZENPhoto CMS 提供支持。此外,我在同一个 VPS 上的另外两个网站上也有同样的库 CMS。

问题是,一段时间后,PHP 生成的页面网站加载速度会变得非常慢,或者出现 503 服务暂时不可用错误。但是,问题只出现在 PHP 生成的页面中,网站中带有静态 .html 页面的旧部分运行速度很快,同时运行良好。即使所有其他 PHP 生成的页面加载缓慢或无法访问,所有静态 .html 页面都能快速运行。

另外,另外两个具有相同 CMS 图库的站点和该 VPS 上的另外两个具有不同 PHP 驱动图库的站点同时在同一 VPS 上运行良好。

所以,当站点开始挂起时,只有 PHP 生成的内容无法工作,就像我说的,其他静态页面都可以工作。然后我需要重新启动 Apache,重新启动后,一切都运行良好且快速,但一段时间后,只有该站点上的 PHP 页面变得更慢。如果我不重新启动 Apache,这种缓慢需要一段时间(几分钟、几小时,取决于流量),在此期间,PHP 驱动的内容加载非常缓慢或在该站点上不可用。过了一段时间,有时一切都开始正常工作,并在一段时间内再次快速运行,然后再次快速运行。在流量较多的几个小时内,PHP 内容加载缓慢或不可用,在流量较少的几个小时内,它有时会很快,有时会比平时慢一点。

再次强调,只有在该网站上,并且只有 PHP 驱动的页面,静态页面即使在大多数流量时段也能快速运行。

一旦网站速度开始变慢,访问者就会减少。

我还注意到,周末网站运行得更好,可能是因为访问量较少。

当网站开始变慢时,我可以在 Apache 状态中看到类似这样的内容:

mod_fcgid status:
Total FastCGI processes: 37 
Process: php5  (/usr/local/cpanel/cgi-sys/php5)
Pid Active Idle Accesses State
11300   39   28   7   Working
11274   47   28   7   Working
11296   40   29   3   Working
11283   45   30   3   Working
11304   36   31   1   Working
11282   46   32   3   Working
11292   42   33   1   Working
11289   44   34   1   Working
11305   35   35   0   Working
11273   48   36   2   Working
11280   47   39   1   Working
10125   133  40   12  Exiting(communication error)
11294   41   41   1   Exiting(communication error)
11277   47   42   2   Exiting(communication error)
11291   43   43   1   Exiting(communication error)
10187   108  43   10  Exiting(communication error)
10209   95   44   7   Exiting(communication error)
10171   113  44   5   Exiting(communication error)
11275   47   47   1   Exiting(communication error)
10144   125  48   8   Exiting(communication error)
10086   149  48   20  Exiting(communication error)
10212   94   49   5   Exiting(communication error)
10158   118  49   5   Exiting(communication error)
10169   114  50   4   Exiting(communication error)
10105   141  50   16  Exiting(communication error)
10094   146  50   15  Exiting(communication error)
10115   139  51   17  Exiting(communication error)
10213   93   51   9   Exiting(communication error)
10197   103  51   7   Exiting(communication error)
Process: php5 (/usr/local/cpanel/cgi-sys/php5)
Pid Active Idle Accesses State
7983   1079   2    149   Ready
7979   1079   11   151   Ready
Process: php5  (/usr/local/cpanel/cgi-sys/php5)
Pid Active Idle Accesses State
7990   1066   0    57   Ready
8001   1031   64   35   Ready
7999   1032   94   29   Ready
8000   1031   91   36   Ready
8002   1029   34   52   Ready
Process: php5  (/usr/local/cpanel/cgi-sys/php5)
Pid Active Idle Accesses State
7991   1064   29   115   Ready

当它正常工作时,没有“退出(通信错误)”的字样

Active 和 Idle 分别是活动时间和自上次请求以来的时间,以秒为单位。

CPU 是双四核 E5440 Xeon (2.83GHz)。

运行 Linux 2.6.18-028stab099.3,x86_64。

免费的输出:

             total       used       free     shared    buffers     cached
Mem:       8388608     882164    7506444          0          0          0
-/+ buffers/cache:     882164    7506444
Swap:            0          0          0
Total:     8388608     882164    7506444

当前磁盘使用情况:

Filesystem            Size  Used Avail Use% Mounted on
/dev/vzfs             100G   34G   67G  34% /
none

系统详细信息:

运行于:Apache/2.2.22

系统信息:(Unix)mod_ssl/2.2.22 OpenSSL/0.9.8e-fips-rhel5 DAV/2 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 mod_fcgid/2.3.6

答案1

您正在运行 Virtuozzo VM,这是廉价 VPS 托管提供商的首选。问题很可能只是其他人正在对主机进行猛烈攻击,而您却陷入了交火之中。如果性能对您来说很重要,我建议您切换到不会过度竞争主机的提供商。

相关内容