我正在使用“ab”工具测试我的 Apache 和 PHP 设置(Ubuntu 上的默认配置)。通过 2 个并发连接,我得到了相当令人满意的结果:
ab -k -n 1000 -c 2 http://localserver/page.php
Requests per second: 184.81 [#/sec] (mean)
Time per request: 10.822 [ms] (mean)
Time per request: 5.411 [ms] (mean, across all concurrent requests)
鉴于它是一个内存不足的虚拟机,没关系。现在我想测试一个更现实的场景:请求分布在同时连接的 100 个用户(阅读:连接)中:
ab -k -n 1000 -c 100 http://localserver/page.php
Requests per second: 60.22 [#/sec] (mean)
Time per request: 1660.678 [ms] (mean)
Time per request: 16.607 [ms] (mean, across all concurrent requests)
这要糟糕得多。虽然每秒请求的总数没有显着下降(184 到 60 #/秒),但从用户角度来看,每个请求的时间急剧上升(平均从 10 毫秒到超过 1.6 秒)。最长的请求花费了 8 秒以上,在测试期间使用 Web 浏览器手动连接到本地服务器花费了将近 10 秒。
可能是什么原因以及如何将并发性能优化到可接受的水平?
(我使用的是 Ubuntu Linux Server 附带的默认配置。)