您现在的位置是:主页 > news > 广西南宁网站建设/站长工具站长之家
广西南宁网站建设/站长工具站长之家
admin2025/4/27 22:20:30【news】
简介广西南宁网站建设,站长工具站长之家,做阿里网站卖东西赚钱,手机网站制作步骤在Apache服务器的套件中,有一个叫做 ab (ApacheBench) 的工具。 ApacheBench 主要是用来测试Apache服务器执行效率用的 ApacheBench 可以针对某个特定的 URL 仿真出连续的联机请求 同时还可以仿真出同时间点数个相同的联机请求,因此利用 ApacheBench 可帮助我们在网…
广西南宁网站建设,站长工具站长之家,做阿里网站卖东西赚钱,手机网站制作步骤在Apache服务器的套件中,有一个叫做 ab (ApacheBench) 的工具。 ApacheBench 主要是用来测试Apache服务器执行效率用的 ApacheBench 可以针对某个特定的 URL 仿真出连续的联机请求 同时还可以仿真出同时间点数个相同的联机请求,因此利用 ApacheBench 可帮助我们在网… 参数说明
举个栗子
具体分析
在Apache服务器的套件中,有一个叫做 ab (ApacheBench) 的工具。
ApacheBench 主要是用来测试Apache服务器执行效率用的
ApacheBench 可以针对某个特定的 URL 仿真出连续的联机请求
同时还可以仿真出同时间点数个相同的联机请求,因此利用 ApacheBench 可帮助我们在网站开发期间仿真实际上线可能的情况,利用仿真出来的数据做为调整服务器设定或程序的依据。
参数说明
01 | bixiaopeng@172-13-3-157 ~$ ab -h |
02 | Usage: ab [options] [http[s]: // ] hostname [:port] /path |
03 | Options are: |
04 |
//-n 在测试会话中所执行的请求个数。默认时,仅执行一个请求 |
05 | -n requests Number of requests to perform |
06 | //-c 一次产生的请求个数。默认是一次一个。 |
07 | -c concurrency Number of multiple requests to make |
08 | //-t 测试所进行的最大秒数。其内部隐含值是-n 50000。它可以使对服务器的测试限制在一个固定的总时间以内。默认时,没有时间限制。 |
09 | -t timelimit Seconds to max. wait for responses |
10 |
11 | -b windowsize Size of TCP send /receive buffer, in bytes |
12 | //-p 包含了需要POST的数据的文件. |
13 | -p postfile File containing data to POST. Remember also to set -T |
14 |
15 | -u putfile File containing data to PUT. Remember also to set -T |
16 | //-T POST数据所使用的Content- type 头信息。 |
17 | -T content- type Content- type header for POSTing, eg. |
18 | 'application/x-www-form-urlencoded' |
19 | Default is 'text/plain' |
20 | //-v 设置显示信息的详细程度 - 4或更大值会显示头信息, 3或更大值可以显示响应代码(404, 200等), 2或更大值可以显示警告和其他信息。 -V 显示版本号并退出。 |
21 | - v verbosity How much troubleshooting info to print |
22 | //-w 以HTML表的格式输出结果。默认时,它是白色背景的两列宽度的一张表。 |
23 | -w Print out results in HTML tables |
24 | //-i 执行HEAD请求,而不是GET。 |
25 | -i Use HEAD instead of GET |
26 | -x attributes String to insert as table attributes |
27 | -y attributes String to insert as tr attributes |
28 | -z attributes String to insert as td or th attributes |
29 | //-C cookie-name=value 对请求附加一个Cookie:行。 其典型形式是name=value的一个参数对。此参数可以重复。 |
30 | -C attribute Add cookie, eg. 'Apache=1234. (repeatable) |
31 | -H attribute Add Arbitrary header line, eg. 'Accept-Encoding: gzip' |
32 | Inserted after all normal header lines. (repeatable) |
33 | -A attribute Add Basic WWW Authentication, the attributes |
34 | are a colon separated username and password. |
35 | //-P proxy-auth-username:password 对一个中转代理提供BASIC认证信任。用户名和密码由一个:隔开,并以base64编码形式发送。无论服务器是否需要(即, 是否发送了401认证需求代码),此字符串都会被发送。 |
36 | -P attribute Add Basic Proxy Authentication, the attributes |
37 | are a colon separated username and password. |
38 | -X proxy:port Proxyserver and port number to use |
39 | -V Print version number and exit |
40 | -k Use HTTP KeepAlive feature |
41 | -d Do not show percentiles served table. |
42 | -S Do not show confidence estimators and warnings. |
43 | -g filename Output collected data to gnuplot format file . |
44 | -e filename Output CSV file with percentages served |
45 | -r Don't exit on socket receive errors. |
46 | -h Display usage information (this message) |
47 | -Z ciphersuite Specify SSL /TLS cipher suite (See openssl ciphers) |
48 | -f protocol Specify SSL /TLS protocol (SSL2, SSL3, TLS1, or ALL) |
49 |
50 | //-attributes 设置 属性的字符串. 缺陷程序中有各种静态声明的固定长度的缓冲区。另外,对命令行参数、服务器的响应头和其他外部输入的解析也很简单,这可能会有不良后果。它没有完整地实现 HTTP /1 .x; 仅接受某些 '预想' 的响应格式。 strstr(3)的频繁使用可能会带来性能问题,即, 你可能是在测试ab而不是服务器的性能。 |
举个栗子
参数很多,一般我们用 -c 和 -n 参数就可以了. 例如:
01 | bixiaopeng@bixiaopengtekiMacBook-Pro ~$ ab -c 10 -n 1000 http: //www .wirelessqa.com/?p=143 |
02 | This is ApacheBench, Version 2.3 <$Revision: 655654 $> |
03 | Copyright 1996 Adam Twiss, Zeus Technology Ltd, http: //www .zeustech.net/ |
04 | Licensed to The Apache Software Foundation, http: //www .apache.org/ |
05 |
06 |
07 | Benchmarking www.wirelessqa.com (be patient) |
08 | Completed 100 requests |
09 | Completed 200 requests |
10 | Completed 300 requests |
11 | Completed 400 requests |
12 | Completed 500 requests |
13 | Completed 600 requests |
14 | Completed 700 requests |
15 | Completed 800 requests |
16 | Completed 900 requests |
17 | Completed 1000 requests |
18 | Finished 1000 requests |
19 |
20 |
21 |
22 |
23 | Server Software: IIS |
24 | Server Hostname: www.wirelessqa.com |
25 | Server Port: 80 |
26 |
27 |
28 | Document Path: /?p=143 |
29 | Document Length: 40865 bytes |
30 |
31 |
32 | Concurrency Level: 10 |
33 | Time taken for tests: 349.234 seconds |
34 | Complete requests: 1000 |
35 | Failed requests: 674 |
36 | (Connect: 0, Receive: 0, Length: 674, Exceptions: 0) |
37 | Write errors: 0 |
38 | Total transferred: 41114189 bytes |
39 | HTML transferred: 40889965 bytes |
40 | Requests per second: 2.86 [ #/sec] (mean) |
41 | Time per request: 3492.343 [ms] (mean) |
42 | Time per request: 349.234 [ms] (mean, across all concurrent requests) |
43 | Transfer rate: 114.97 [Kbytes /sec ] received |
44 |
45 |
46 | Connection Times (ms) |
47 | min mean[+ /-sd ] median max |
48 | Connect: 35 161 401.6 59 3394 |
49 | Processing: 571 3282 2723.1 2648 28374 |
50 | Waiting: 309 654 767.3 538 21420 |
51 | Total: 610 3443 2777.4 2826 28514 |
52 |
53 |
54 | Percentage of the requests served within a certain time (ms) |
55 | 50% 2826 |
56 | 66% 3636 |
57 | 75% 4364 |
58 | 80% 4799 |
59 | 90% 6239 |
60 | 95% 7744 |
61 | 98% 11263 |
62 | 99% 14251 |
63 |
100% 28514 (longest request) |
结果:在同一时间有10个访问请求的情况下,完成1000次请求,失败674次,共花时间349.234秒,这个页面每秒平均处理2.86个请求
具体分析
01 | //-c 每次发送10个,-n 共发送1000次请求 |
02 |
03 | bixiaopeng@bixiaopengtekiMacBook-Pro ~$ ab -c 10 -n 1000 http: //www .wirelessqa.com/?p=143 |
04 | This is ApacheBench, Version 2.3 <$Revision: 655654 $> |
05 | Copyright 1996 Adam Twiss, Zeus Technology Ltd, http: //www .zeustech.net/ |
06 | Licensed to The Apache Software Foundation, http: //www .apache.org/ |
07 |
08 | Benchmarking www.wirelessqa.com (be patient) |
09 | Completed 100 requests |
10 | Completed 200 requests |
11 | Completed 300 requests |
12 | Completed 400 requests |
13 | Completed 500 requests |
14 | Completed 600 requests |
15 | Completed 700 requests |
16 | Completed 800 requests |
17 | Completed 900 requests |
18 | Completed 1000 requests |
19 | Finished 1000 requests |
20 |
21 | // 服务器软件IIS |
22 | Server Software: IIS |
23 | // 服务器域名 |
24 | Server Hostname: www.wirelessqa.com |
25 | // 服务器端口 |
26 | Server Port: 80 |
27 |
28 | // 文档路径 |
29 | Document Path: /?p=143 |
30 | // 文档的长度,不包括响应头 |
31 | Document Length: 40865 bytes |
32 |
33 | // 并发数 |
34 | Concurrency Level: 10 |
35 | // 整个测试持续时间 |
36 | Time taken for tests: 349.234 seconds |
37 | // 完成请求数量 |
38 | Complete requests: 1000 |
39 | // 失败请求数量674 |
40 | //Failed requests给出了失败原因统计: |
41 | //Connect :无法送出请求,目标主机连接失败,要求过程中连线被中断 |
42 | //Length :回应的内容长度不一致,以content-Length头文件为判断依据 |
43 | //Exception :发生了无法预期的错误 |
44 | // 备注1:这里分析一下为何失败了674次,从下面的统计数据我们可以看出,失败请求都落在Length上面,原因是被测网页是动态内容,当第一次发出HTTP request与后面发出的HTTP request所响应的html Length是不同大小的(即每次响应的Content-Length大小不一致),所以才会引起Length失败,这里Length是以第一次取得的Content-Length为主,以后得到的Content-Length跟第一次的不一致,就会报Length错误,所以这类Length大小不一的失败在测试动态面面的压力测试中是合理的,可以不用管它。 |
45 | Failed requests: 674 |
46 | (Connect: 0, Receive: 0, Length: 674, Exceptions: 0) |
47 | Write errors: 0 |
48 |
49 | // 整个场景中的网络传输量 |
50 | Total transferred: 41114189 bytes |
51 | // 整个场景中的HTML内容传输量 |
52 | // 备注2:单个html文件的大小为40865,共发出1000次请求,40865000跟40889965差不多,所以1000次请求应该已经正确送出,没什么问题 |
53 | HTML transferred: 40889965 bytes |
54 | // 关键指标之一,相当于 LR 中的 每秒事务数 ,后面括号中的 mean 表示这是一个平均值 |
55 | Requests per second: 2.86 [ #/sec] (mean) |
56 | // 关键指标之二,相当于 LR 中的 平均事务响应时间 ,后面括号中的 mean 表示这是一个平均值 |
57 | Time per request: 3492.343 [ms] (mean) |
58 | // 每个请求实际运行时间的平均值,就是上面的时间 除以并发数 |
59 | Time per request: 349.234 [ms] (mean, across all concurrent requests) |
60 |
61 |
62 | // 平均每秒网络上的流量,可以帮助排除是否存在网络流量过大导致响应时间延长的问题 |
63 | Transfer rate: 114.97 [Kbytes /sec ] received |
64 |
65 | // 网络上消耗的时间的分解 |
66 | Connection Times (ms) |
67 | min mean[+ /-sd ] median max |
68 | Connect: 35 161 401.6 59 3394 |
69 | Processing: 571 3282 2723.1 2648 28374 |
70 | Waiting: 309 654 767.3 538 21420 |
71 | Total: 610 3443 2777.4 2826 28514 |
72 |
73 | // 整个场景中所有请求的响应情况。在场景中每个请求都有一个响应时间,其中50%的用户响应时间小于2826 毫秒,66% 的用户响应时间小于3636 毫秒,最大的响应时间小于28514毫秒 |
74 | Percentage of the requests served within a certain time (ms) |
75 | 50% 2826 // 就是有50%的请求都是在2826ms内完成的 |
76 | 66% 3636 |
77 | 75% 4364 |
78 | 80% 4799 |
79 | 90% 6239 |
80 | 95% 7744 |
81 | 98% 11263 |
82 | 99% 14251 |
83 |
100% 28514 (longest request) |