我正在使用`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秒 .
What could be the cause and how can I optimize the concurrency performance to an acceptable level?
(我使用的是Ubuntu Linux Server附带的默认配置 . )