使用ApacheBench测试百度网站的疑惑。


我使用ApacheBench来测试一下百度网站。模拟了1000个用户:

C:\xampp\apache\bin>ab -n 1000 http://www.baidu.com/
This is ApacheBench, Version 2.3
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking www.baidu.com (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests

Server Software: BWS/1.1
Server Hostname: www.baidu.com
Server Port: 80

Document Path: /
Document Length: 73745 bytes

Concurrency Level: 1
Time taken for tests: 142.153 seconds
Complete requests: 1000
Failed requests: 881
(Connect: 0, Receive: 0, Length: 881, Exceptions: 0)
Write errors: 0
Total transferred: 74712613 bytes
HTML transferred: 74123610 bytes
Requests per second: 7.03 [#/sec] (mean)
Time per request: 142.153 [ms] (mean)
Time per request: 142.153 [ms] (mean, across all concurrent requests)
Transfer rate: 513.26 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 19 22 4.4 21 100
Processing: 104 120 15.8 115 262
Waiting: 21 24 4.8 23 105
Total: 126 142 17.6 136 306

Percentage of the requests served within a certain time (ms)
50% 136
66% 141
75% 144
80% 148
90% 160
95% 175
98% 200
99% 218
100% 306 (longest request)

得到的结果是这样的。其中有些不太明白:
Requests per second: 7.03 [#/sec] (mean)
指的是每秒可以处理7.03个请求。这里指的是百度服务器中的一个并发每秒可以处理7.03个请求吗?(然后百度服务器可能有一千万个并发,每秒就能处理7千万个请求了)。
也就是我想知道每秒的请求数是一个并发或者说服务器中一个线程的请求数还是说整个web服务器只能处理这么多啊!
而且我感觉这个压力测试工具好像没啥用,这个压力测试工具应该只能测试单台服务器吧,像百度这样的服务器集群,咋搞压力测试呢?

apachebentch apache php

黄金背锅侠 10 years, 8 months ago

我在本地用30个进程来模仿,结果数据又发生了很大的变化。怎么下满那一行百分比还发生了非常大的变化呢?而且数字还变大了好多
note
对比,正常情况下对比和高并发下对比。
受限于网络环境,所以要对比。最好直接在服务器上测。
应该是整个web服务器的,不是单个线程

请输入图片描述

fishman answered 10 years, 8 months ago

Your Answer