📜  Apache Bench教程(1)

📅  最后修改于: 2023-12-03 15:13:25.449000             🧑  作者: Mango

Apache Bench教程

简介

Apache Bench是Apache自带的压力测试工具,可以测试一个Web服务器的吞吐量和性能,通常用于测试负载均衡,web服务器,反向代理,缓存等。

安装

Apache Bench通常会在安装了Apache Web服务器的操作系统上自带,如果你没有安装Apache Web服务器,你可以在Linux系统上使用以下命令进行安装:

Ubuntu/Debian
sudo apt-get update
sudo apt-get install apache2-utils
CentOS/RHEL
sudo yum install httpd-tools
使用

Apache Bench的基本语法:

ab [选项] [URL]
选项
  • -n:要执行的请求数量
  • -c:并发请求数量
  • -t:测试的最大时间(秒)
  • -p:POST请求要发送的文件
  • -T:POST请求的content-type头
  • -v:显示详细信息
  • -k:使用HTTP KeepAlive特性
  • -e:生成HTML格式的测试报告
  • -A:设置要发送的HTTP头部信息。
示例

对http://example.com进行1000次请求并发数为10的压力测试:

ab -n 1000 -c 10 http://example.com/

对http://example.com进行最大时间为60秒的压力测试,此时并发数为默认的1:

ab -t 60 http://example.com/
结果解释

执行完Apache Bench测试后,你会收到以下信息:

Server Software:        nginx/1.1.19
Server Hostname:        example.com
Server Port:            80

Document Path:          /index.php
Document Length:        5000 bytes

Concurrency Level:      10
Time taken for tests:   21.468 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
Total transferred:      5101786 bytes
HTML transferred:       5001786 bytes
Requests per second:    46.60 [#/sec] (mean)
Time per request:       214.678 [ms] (mean)
Time per request:       21.468 [ms] (mean, across all concurrent requests)
Transfer rate:          232.23 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    2   1.0      2      10
Processing:    40  212  17.5    213     253
Waiting:       38  204  17.7    204     248
Total:         40  214  18.9    215     253

Percentage of the requests served within a certain time (ms)
  50%    215
  66%    217
  75%    219
  80%    220
  90%    223
  95%    225
  98%    234
  99%    241
 100%    253 (longest request)

这些数据中最常用的是:

  • Time taken for tests:测试的时间
  • Complete requests:完成请求数
  • Failed requests:失败请求数
  • Requests per second:每秒请求数
  • Time per request:每个请求的处理时间
  • Transfer rate:传输速率
总结

Apache Bench是一个非常强大的工具,它可以帮助你测试web服务器的性能和吞吐量。这个工具的使用方法非常简单,只需要掌握好基本语法就可以开始使用了。如果你想进一步了解Apache Bench的高级特性,可以查看官方文档。