使用 ab 对网站进行压力测试

本文介绍了ApacheBench,一个Apache自带的网站压力测试工具。文章详细解释了如何在Ubuntu和CentOS上安装该工具,并提供了常用参数说明及示例,帮助读者理解如何设置并发用户数和总请求数等关键参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

这是 Apache 自带的一个网站压力测试工具,是 ApacheBench 的缩写,我们可以使用这个工具来对我们的网站进行压力测试。

安装

在 Ubuntu 上要安装下面这个包

sudo apt-get install apache2-utils

在 CentOS 下是下面这个包

sudo yum install httpd-tools -y

使用

可以直接输入 ab 来看参数和使用方法:

  > ab

  ab: wrong number of arguments

  Usage: ab [options] [http[s]://]hostname[:port]/path

  Options are:

      -n requests     Number of requests to perform

      -c concurrency  Number of multiple requests to make at a time

      -t timelimit    Seconds to max. to spend on benchmarking

                      This implies -n 50000

      -s timeout      Seconds to max. wait for each response

                      Default is 30 seconds

      -b windowsize   Size of TCP send/receive buffer, in bytes

      -B address      Address to bind to when making outgoing connections

      -p postfile     File containing data to POST. Remember also to set -T

      -u putfile      File containing data to PUT. Remember also to set -T

      -T content-type Content-type header to use for POST/PUT data, eg.

                      'application/x-www-form-urlencoded'

                      Default is 'text/plain'

      -v verbosity    How much troubleshooting info to print

      -w              Print out results in HTML tables

      -i              Use HEAD instead of GET

      -x attributes   String to insert as table attributes

      -y attributes   String to insert as tr attributes

      -z attributes   String to insert as td or th attributes

      -C attribute    Add cookie, eg. 'Apache=1234'. (repeatable)

      -H attribute    Add Arbitrary header line, eg. 'Accept-Encoding: gzip'

                      Inserted after all normal header lines. (repeatable)

      -A attribute    Add Basic WWW Authentication, the attributes

                      are a colon separated username and password.

      -P attribute    Add Basic Proxy Authentication, the attributes

                      are a colon separated username and password.

      -X proxy:port   Proxyserver and port number to use

      -V              Print version number and exit

      -k              Use HTTP KeepAlive feature

      -d              Do not show percentiles served table.

      -S              Do not show confidence estimators and warnings.

      -q              Do not show progress when doing more than 150 requests

      -l              Accept variable document length (use this for dynamic pages)

      -g filename     Output collected data to gnuplot format file.

      -e filename     Output CSV file with percentages served

      -r              Don't exit on socket receive errors.

      -m method       Method name

      -h              Display usage information (this message)

      -Z ciphersuite  Specify SSL/TLS cipher suite (See openssl ciphers)

      -f protocol     Specify SSL/TLS protocol

                      (TLS1, TLS1.1, TLS1.2 or ALL) 
下面介绍一个最常用的使用方法:
ab -c 10 -n 100 http://www.example.com/

上面的意思是模仿 10 个用户对网站进行 1000 次请求。

下面是输出:

 

  > ab -c 10 -n 100 http://www.linux.cn/ 

  This is ApacheBench, Version 2.3 <$Revision: 1706008 $>

  Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/

  Licensed to The Apache Software Foundation, http://www.apache.org/

  Benchmarking www.linux.cn (be patient).....done

  Server Software:        nginx

  Server Hostname:        www.linux.cn

  Server Port:            80

  Document Path:          /

  Document Length:        178 bytes

  Concurrency Level:      10

  Time taken for tests:   0.861 seconds

  Complete requests:      100

  Failed requests:        0

  Non-2xx responses:      100

  Total transferred:      35800 bytes

  HTML transferred:       17800 bytes

  Requests per second:    116.09 #/sec

  Time per request:       86.142 ms

  Time per request:       8.614 ms

  Transfer rate:          40.59 [Kbytes/sec] received

  Connection Times (ms)

                min  mean[+/-sd] median   max

  Connect:       32   41   7.3     37      53

  Processing:    33   42   7.4     38      55

  Waiting:       33   42   7.4     38      55

  Total:         65   83  14.7     75     108

  Percentage of the requests served within a certain time (ms)

    50%     75

    66%     78

    75%    102

    80%    103

    90%    105

    95%    106

    98%    107

    99%    108

   100%    108 (longest request) 
其实最主要看的输出参数是下面这几个:

Server Software 服务器软件

Server Hostname 主机名

Server Port 服务器端口

Time taken for tests 测试时间

Complete requests 完成的请求

Failed requests 失败的请求

Time per request 每次请求的时间

Transfer rate 传输速度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值