我们有一个 VPS(2GB RAM/2 个 vCPU)。那是服务于 PHP 5.6、Centos 6、Apache 2.2 的 phpBB 论坛。但是有时论坛的响应速度非常慢。使用 Chrome 网络浏览器,我发现 TTFB 有时会达到 30 秒。奇怪的是,缓存项目也有这个问题。(见截图)
我已经尝试过:
- 问题期间服务器的负载不高于 0.20,并且有可用内存。
我 ping 了服务器:大约 10 毫秒
安装 zend opcache (99.9% 点击)
- 安装 memcached (统计)
我安装了 mytop 以查看 MySQL 是否有问题,但据我了解 MySQL 并没有做太多
查询:6.0M qps:26 慢速:4.0 Se/In/Up/De(%):75/02/08/01 qps 现在:2 慢速 qps:0.0 线程:1 ( 1/ 0) 00/00/00/ 00 键效率:99.4% Bps 输入/输出:4.4k/51.1k 现在输入/输出:48.4/7.5k
由于情况并非总是如此,因此复制此问题的唯一方法是向 F5 发送垃圾邮件,尽管我不确定这是否真的复制了问题。我可以在较小的扩展(2s ttfb)中复制它与在 html 中复制的相同页面(删除动态部分)。
http://s21.postimg.org/ql6eywn3b/ttfb.png
我有keepalive(最大100,15秒),maxclients 30。我从这里去哪里?
分析。有各种 PHP 分析工具。我喜欢 blackfire.io - 它可以轻松清晰地查明任何瓶颈,无论是 PHP 代码、MySQL 查询还是两者的组合。如果没有分析,你会在黑暗中随机尝试。
除了 F5ing,您还可以使用 ab、yandex tank、Siege 等工具进行负载测试。
验证此问题是否真实的另一件事是在webpagetest.org 中进行测试并多次重复测试(高级设置、运行次数)。或者通过他们的 API。
这个问题是一个综合问题:
VPS换了一个更好的IO,防火墙没有设置那么严格,问题就解决了。我还禁用了 memcached,因为 MySQL 显然不是瓶颈)