1. 客户端向服务器发送请求2000个
ab -n 2000 -c 2 http://xxx.xxx.xxx.xxx/
2. ab
工具会按照指定的参数向目标服务器发送 HTTP 请求,测试服务器的性能表现,在测试完成后会返回以下内容:
Server Software: # 服务器所使用的 Web 服务器软件
Server Hostname: # 服务器主机名
Server Port: # 服务器端口号
Request Method: # 请求方法
Request URL: # 请求的 URL
Document Path: # 访问的文件路径
Document Length: # 访问的文件长度(字节)
Concurrency Level: # 并发数
Time taken for tests: # 总测试时间
Complete requests: # 完成请求数量
Failed requests: # 失败请求数量
Total transferred: # 总传输数据量
HTML transferred: # HTML 数据量
Requests per second: # 每秒请求数量(QPS)
Time per request: # 平均每个请求消耗的时间
Time per request: # 平均每个请求等待的时间
Transfer rate: # 传输速率
Connection Times (ms): # 不同阶段所花费的时间(单位为毫秒)
min mean[+/-sd] median max
Connect: # 建立连接所花费的时间
Processing: # 处理请求所花费的时间
Waiting: # 等待处理的时间
Total: # 总计
Percentage of the requests served within a certain time (ms): # 在特定时间内完成的请求数量百分比
50% # 50% 请求在指定时间内完成
66% # 66% 请求在指定时间内完成
75% # 75% 请求在指定时间内完成
80% # 80% 请求在指定时间内完成
90% # 90% 请求在指定时间内完成
95% # 95% 请求在指定时间内完成
98% # 98% 请求在指定时间内完成
99% # 99% 请求在指定时间内完成
100% # 所有请求在指定时间内完成
这些内容代表了和服务器进行压力测试时各种参数与结果信息,用于帮助你了解服务器的性能表现,从而进行进一步的优化或调整。
ab -t 3600 -c 1000 http://192.168.0.10/
在60秒内发请求,一次1000个请求。 122.114.180.67
Server Software: Microsoft-HTTPAPI/2.0
Server Port: 80
Document Path: /phpinfo.php
Document Length: 315 bytes HTTP响应数据的正文长度
Concurrency Level: 800 并发数多少,等于-c后面的数值
Time taken for tests: 0.914 seconds 测试总耗时。所有这些请求处理完成所花费的时间
Complete requests: 800 完成请求数
Failed requests: 0 失败请求数
Write errors: 0
Non-2xx responses: 800 表示返回的HTTP status code不是2xx的数目,,如果都是2xx,这个指标不显示在结果里面。
Total transferred: 393600 bytes 网络总传输量
HTML transferred: 252000 bytes HTML内容传输量
Requests per second: 875.22 [#/sec] (mean) 吞吐量-每秒请求数
Time per request: 914.052 [ms] (mean) 服务器收到请求,响应页面要花费的时间
Time per request: 1.143 [ms] (mean, across all concurrent requests) 并发的每个请求平均消耗时间
Transfer rate: 420.52 [Kbytes/sec] received 平均每秒网络上的流量,可以帮助排除是否存在网络流量过大导致响应时间延长的问题
3. 将Failed requests输出到日志文件中
ab -n 2000 -c 2 http://ip/ | grep "Failed requests:" | awk '{print $3}' >>/path/errors.log