我在 CentOS 6 64 位 VPS 4GB RAM 上运行小型本地新闻 Wordpress 博客。最近,网站的每日访问量从 5K 增长到 10K-15K。
网站开始崩溃504 Gateway Timeout
。
错误日志显示request failed: error reading the headers
错误。
这就是热门节目
Tasks: 65 total, 1 running, 64 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.1%us, 0.4%sy, 0.0%ni, 99.5%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 4194304k total, 217440k used, 3976864k free, 0k buffers
Swap: 4194304k total, 0k used, 4194304k free, 119688k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
850 root 20 0 461m 9984 7272 S 1.7 0.2 0:04.51 ispmgr
822 apache 20 0 97384 4560 1932 S 0.3 0.1 0:00.89 nginx
1 root 20 0 19236 1452 1216 S 0.0 0.0 0:00.02 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd/767
3 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khelper/767
129 root 16 -4 10644 568 296 S 0.0 0.0 0:00.00 udevd
495 root 20 0 181m 1464 1048 S 0.0 0.0 0:00.00 rsyslogd
508 named 20 0 315m 12m 2556 S 0.0 0.3 0:00.02 named
524 opendkim 20 0 87792 2256 1100 S 0.0 0.1 0:00.00 opendkim
537 root 20 0 66612 1228 512 S 0.0 0.0 0:00.00 sshd
544 root 20 0 22184 936 704 S 0.0 0.0 0:00.00 xinetd
578 root 20 0 11308 1476 1220 S 0.0 0.0 0:00.02 mysqld_safe
701 mysql 20 0 424m 19m 5968 S 0.0 0.5 0:00.23 mysqld
743 postgres 20 0 108m 6112 5028 S 0.0 0.1 0:00.69 postmaster
745 postgres 20 0 82444 1488 404 S 0.0 0.0 0:00.00 postmaster
747 postgres 20 0 108m 1888 804 S 0.0 0.0 0:00.05 postmaster
748 postgres 20 0 108m 1672 588 S 0.0 0.0 0:00.04 postmaster
749 postgres 20 0 108m 1936 752 S 0.0 0.0 0:00.00 postmaster
750 postgres 20 0 82584 1680 544 S 0.0 0.0 0:00.01 postmaster
759 root 20 0 19268 780 524 S 0.0 0.0 0:00.00 dovecot
我认为那是网络服务器的问题,但我不知道应该从哪里开始查找以及什么样的配置比较好?
UPD。VPS 使用 nginx 作为 apache 2.2 的前端代理。Php 作为 cgi 运行。最大执行时间为 80 秒。
网站正常运行时,top显示httpd进程很少。
答案1
摆脱 Apache 可以大大提高性能。使用 PHP-FPM 处理 PHP,并将 nginx 的上游直接放入 PHP FPM。您应该尝试启用操作码缓存的 PHP 5.5,并使用一些 WP 缓存插件,例如 WP Super Cache。