ab 压测 --apache服务(理论加实验)

一、ab的原理

1.1 ab是apachebench命令的缩写。

ab的原理:ab命令会创建多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问。它的测试目标是基于URL的,因此,它既可以用来测试apache的负载压力,也可以测试nginx、lighthttp、tomcat、IIS等其它Web服务器的压力。

ab命令对发出负载的计算机要求很低,它既不会占用很高CPU,也不会占用很多内存。但却会给目标服务器造成巨大的负载,其原理类似CC攻击。自己测试使用也需要注意,否则一次上太多的负载。可能造成目标服务器资源耗完,严重时甚至导致死机。

1.2ab测试结果关键参数说明

-n :总共的请求执行数,缺省是1-c: 并发数,缺省是1-t:测试所进行的总时间,秒为单位,缺省50000s

-p:POST时的数据文件

-w: 以HTML表的格式输出结果
[root@ shanan bin]# ./ab -n 3000 -c 1000 www.hello.com/index.html
This is ApacheBench, Version 2.3 <$Revision: 1807734 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking www.hello.com (be patient)
Completed 300 requests
Completed 600 requests
Completed 900 requests
Completed 1200 requests
Completed 1500 requests
Completed 1800 requests
Completed 2100 requests
Completed 2400 requests
Completed 2700 requests
Completed 3000 requests
Finished 3000 requests


Server Software:        Apache/2.4.29
Server Hostname:        www.hello.com     #请求的URL主机名
Server Port:            80     #请求端口

Document Path:          /index.html     #请求路径
Document Length:        66 bytes         #HTTP响应数据的正文长度

Concurrency Level:      1000               #并发用户数,这是我们设置的参数之一
Time taken for tests:   0.481 seconds           #所有这些请求被处理完成所花费的总时间 单位秒
Complete requests:      3000              #总请求数量,这是我们设置的参数之一
Failed requests:        0                  #表示失败的请求数量
Total transferred:      930000 bytes      #所有请求的响应数据长度总和。包括每个HTTP响应数据的头信息和正文数据的长度
HTML transferred:       198000 bytes     #所有请求的响应数据中正文数据的总和,也就是减去了Total transferred中HTTP响应数据中的头信息的长度
Requests per second:    6233.05 [#/sec] (mean)     #吞吐量,计算公式:Complete requests/Time taken for tests  总请求数/处理完成这些请求数所花费的时间
Time per request:       160.435 [ms] (mean)      #用户平均请求等待时间,计算公式:Time token for tests/(Complete requests/Concurrency Level)。处理完成所有请求数所花费的时间/(总请求数/并发用户数)     
Time per request:       0.160 [ms] (mean, across all concurrent requests)    #服务器平均请求等待时间,计算公式:Time taken for tests/Complete requests,正好是吞吐率的倒数。也可以这么统计:Time per request/Concurrency Level
Transfer rate:          1886.96 [Kbytes/sec] received      表示这些请求在单位时间内从服务器获取的数据长度,计算公式:Total trnasferred/ Time taken for tests,这个统计很好的说明服务器的处理能力达到极限时,其出口宽带的需求量。


Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        1    8   5.0      6      23
Processing:     2   32  86.4      8     458
Waiting:        1   30  86.8      7     458
Total:          9   40  90.2     14     479

Percentage of the requests served within a certain time (ms)
  50%     14    #50%的请求在14ms内返回
  66%     15
  75%     16
  80%     17
  90%     26
  95%    224
  98%    476
  99%    477    #98%的请求在477ms内返回
 100%    479 (longest request)

二. 实验步骤

2.1 源码编译安装HTTPD

编译安装httpd,开启压缩模块 --enable-deflate
安装环境

yum -y install \
gcc \
gcc-c++ \
make \
pcre-devel \
expat-devel \
perl
编译安装
[root@ shanan httpd-2.4.29]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi --enable-deflate

[root@ shanan httpd-2.4.29]# make && make install

将服务交给service 管理
[root@ shanan httpd-2.4.29]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
[root@ shanan httpd-2.4.29]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd^C
[root@ shanan httpd-2.4.29]# vi /etc/init.d/httpd
在这里插入图片描述
[root@ shanan httpd-2.4.29]# chkconfig --add httpd
[root@ shanan httpd-2.4.29]# ln -s /usr/local/httpd/conf/httpd.conf /etc/
[root@ shanan httpd-2.4.29]# ln -s /usr/local/httpd/bin/* /usr/local/bin/

2.2 安装DNS服务并配置参数

[root@ shanan /]# yum install -y bind bind-util
[root@ shanan named]# vi /etc/named.rfc1912.zones

在这里插入图片描述

[root@ shanan named]# cp -p named.localhost hello.com.zone
[root@ shanan named]# ls
data     hello.com.zone  named.empty      named.loopback
dynamic  named.ca        named.localhost  slaves
[root@ shanan named]#
[root@ shanan named]# vi hello.com.zone

在这里插入图片描述

2.3 修改httpd 主页参数,添加图片

[root@ shanan bin]# cd /usr/local/httpd/
[root@ shanan httpd]# ls
bin    cgi-bin  error   icons    lib   man     modules
build  conf     htdocs  include  logs  manual
[root@ shanan httpd]# cd htdocs/
[root@ shanan htdocs]# ls
123.jpg  index.html
[root@ shanan htdocs]# vi index.html

在这里插入图片描述
在这里插入图片描述

2.4 用httpd 软件自带的ab 工具进行压测

[root@ shanan bin]# ./ab -n 3000 -c 1000 www.hello.com/index.html
Time taken for tests:   0.438 seconds

[root@ shanan bin]# ./ab -n 3000 -c 1000 www.hello.com/index.html

Time taken for tests:   0.455 seconds

[root@ shanan bin]# ./ab -n 3000 -c 1000 www.hello.com/index.html

Time taken for tests:   0.455 seconds

2.5 开启压缩功能测试

vi /etc/httpd.conf
在这里插入图片描述在行位添加配置参数:

<IfModule mod_deflate.c>
      AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascrip text/jpg text/png
      DeflateCompressionLevel 9
    SetOutputFilter DEFLATE
    </IfModule>

继续ab 测试

./ab -n 3000 -c 1000 www.hello.com/index.html
Time taken for tests:   0.478 seconds

./ab -n 3000 -c 1000 www.hello.com/index.html
Time taken for tests:   0.448 seconds

./ab -n 3000 -c 1000 www.hello.com/index.html

Time taken for tests:   0.427 seconds

2.6 实验总结

由于图片较小,响应时间不明显,正常来讲,压缩后访问速度会变快

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值