Requests per second:每秒处理的请求数(RPS)。这是衡量服务器吞吐量的重要指标。
Time per request (mean):每个请求的平均处理时间(以毫秒为单位)。
Time per request (across all concurrent requests):每个请求的平均处理时间(考虑所有并发请求),计算公式为总时间除以请求数。
成功与失败
Percentage of the requests served within a certain time (ms):不同时间范围内成功处理的请求百分比。例如,90% 的请求在 200ms 内完成。
传输速率
Transfer rate:数据传输速率,通常以 KB/s 或 MB/s 表示。
错误统计
Failed requests:失败的请求数。
Non-2xx responses:非 2xx 状态码的响应数。
示例输出
Server Software: Apache/2.4.41
Server Hostname: example.com
Server Port: 80
Document Path: /
Document Length: 1270 bytes
Concurrency Level: 20
Time taken for tests: 10.000 seconds
Complete requests: 250
Failed requests: 0
Non-2xx responses: 0
Total transferred: 322500 bytes
HTML transferred: 317500 bytes
Requests per second: 25.00 [#/sec] (mean)
Time per request: 800.000 [ms] (mean)
Time per request: 40.000 [ms] (mean, across all concurrent requests)
Transfer rate: 31.25 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 1 0.5 1 5
Processing: 50 750 100.0 740 900
Waiting: 50 750 100.0 740 900
Total: 50 751 100.0 741 905
解读示例输出
Requests per second:每秒处理 25 个请求。
Time per request (mean):每个请求的平均处理时间为 800ms。
Failed requests:没有失败的请求。
Transfer rate:传输速率为 31.25 KB/s。
通过这些指标,你可以评估服务器的性能,并找出潜在的瓶颈。例如,如果 Time per request 过高,可能需要优化服务器代码或增加服务器资源。
ab
(Apache Bench)是一个常用的命令行工具,用于对 HTTP 服务器进行性能测试。ab -k -c 20 -n 250
是一个具体的命令,下面是对每个参数和整体命令含义的解释:命令参数解释
-k
:启用 HTTP Keep-Alive 功能。Keep-Alive 允许在同一个 TCP 连接上发送多个请求,减少连接建立和关闭的开销。-c 20
:指定并发请求的数量为 20。这意味着ab
将同时发起 20 个请求。-n 250
:指定总共要执行的请求数量为 250。这意味着ab
将总共发送 250 个请求。整体命令含义
ab -k -c 20 -n 250
的含义是:输出结果解释
执行上述命令后,
ab
会输出一系列性能指标,以下是一些关键指标及其含义:总体统计
成功与失败
传输速率
错误统计
示例输出
解读示例输出
通过这些指标,你可以评估服务器的性能,并找出潜在的瓶颈。例如,如果
Time per request
过高,可能需要优化服务器代码或增加服务器资源。