使用 Blitz.io 进行测试时,NGINX 占用了 100% 的服务器 CPU

使用 Blitz.io 进行测试时,NGINX 占用了 100% 的服务器 CPU

我在这里遇到一个问题,经过四天的寻找,我决定在这里寻求一些帮助,毕竟一百万人比一个人想得更清楚。

我有一个 Ubuntu 14.04 服务器,其中安装了 NGINX、HHVM、PHP5-FPM(作为备份)、Percona MySQL、Memcached(将由 Redis 替换)。我为 WordPress 设置了 fastcgi_cache,并通过 memcached 完成了对象缓存。理论上这些都很酷,但实际上并非如此。

这是 RamNode OpenVZ SSD VPS,配备 2GB RAM 和双核 Intel Xeon E5。

在其上运行 Blitz.io 时,服务器被两个 NGINX 工作进程完全搞垮了,根据 top 和 htop 的数据,每个进程都使用了 100% 的 CPU。我通常按照以下模式运行:

--pattern 999-1000:60 https://www.geeksune.com/blog/hello-world/

这会让 CPU 负载飙升,根据 Blitz.io 的说法,其结果如下:

135 次命中,57,734 次失误和 234 次暂停

显然这并不好。RAM 使用率始终保持在 250MB 以下,似乎所有来自 Blitz.io 的请求都击中了缓存,如下所示:

54.232.204.19 - HIT [23/Nov/2014:19:06:32 -0200] "GET / HTTP/1.1" 200 7632 "-" "blitz.io;[电子邮件保护]

注意开头的 HIT。我设置了一个新的日志格式,并向其中添加了 $upstream_cache_status。

在同一台机器上进行类似的设置,Blitz.io 也能正常工作,因此我的 NGINX 设置肯定有问题,而且似乎与 fastcgi_cache 有关。即使只使用带有 Zend 的 PHP5-FPM,每次得到的结果都一样。

有人知道发生了什么吗?我的配置文件如下所示:

提前致谢。

:)

相关内容