我正在使用apache基准测试php应用程序。我的本地机器上有服务器。我运行以下内容:
ab -n 100 -c 10 http://my-domain.local/
得到这个:
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 3 3.7 2 8
Processing: 311 734 276.1 756 1333
Waiting: 310 722 273.6 750 1330
Total: 311 737 278.9 764 1341
但是,如果我在页面http://my-domain.local/上刷新浏览器,我发现加载页面需要花费的时间超过737毫秒(ab报告的平均值)(大约3000-4000毫秒)。我可以重复多次,在浏览器中加载页面至少需要3000毫秒。
我测试了另一个更重的页面(浏览器中的页面加载需要8-10秒)。我使用1的并发来模拟一个用户加载页面:
ab -n 100 -c 1 http://my-domain.local/heavy-page/
结果在这里:
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.1 0 1
Processing: 17 20 4.7 18 46
Waiting: 16 20 4.6 18 46
Total: 17 20 4.7 18 46
那么ab结果的总线实际上是什么呢?显然,这不是浏览器加载网页的毫秒数。浏览器加载页面所需的毫秒数(X)是否与报告的总平均毫秒数(Y)成线性关系?所以,如果我能减少Y的一半,我是否也减少了一半的X?
(我也不确定处理,等待和总计的意思)。
我会重新打开这个问题,因为我再次遇到这个问题。 最近我安装了Varnish。 我像这样跑: ab -n 100 http://my-domain.local/ Apache工作台报告响应时间非常快:
Requests per second: 462.92 [#/sec] (mean)
Time per request: 2.160 [ms] (mean)
Time per request: 2.160 [ms] (mean, across all concurrent requests)
Transfer rate: 6131.37 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.0 0 0
Processing: 1 2 2.3 1 13
Waiting: 0 1 2.0 1 12
Total: 1 2 2.3 1 13
因此每个请求的时间约为2.2毫秒。当我浏览网站(作为匿名用户)时,页面加载时间约为1.5秒。
这是来自Firebug net标签的图片。正如您所看到的,我的浏览器正在等待1.68秒以便我的网站做出响应。为什么这个数字比请求时间ab报告大得多?
答案 0 :(得分:0)
您是否在服务器上运行ab
?不要忘记您的浏览器是远程网络链接上的本地浏览器。在Web服务器上运行ab
将几乎没有网络开销,并且基本上报告了Apache提供页面所需的时间。根据基本的页面服务开销,您的家庭浏览器链接将添加许多毫秒的网络传输时间。
答案 1 :(得分:0)
好的..我想我知道这是什么问题。虽然我一直在测量浏览器中的页面加载时间,但我已经登录了。所以没有重要的事情发生。浏览器中匿名用户的页面加载时间更接近ab报告的内容。