我是靠谱客的博主 无心烧鹅,最近开发中收集的这篇文章主要介绍ab压力测试(了解ab工具,实验对网页进行测试)使用ab工具对Apache网页进行压力测试实验步骤,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

  • 使用ab工具对Apache网页进行压力测试
    • 应用场景
  • 实验步骤
    • 配置DNS服务
    • 配置apaches
    • 执行以下命令开始压力测试

使用ab工具对Apache网页进行压力测试

应用场景

做测试或者服务端开发的同学经常想要知道我们的后台服务能同时承载多少用户量,通过模拟实际应用的软硬件环境及用户使用过程的系统负荷,长时间或超大负荷地运行测试软件,来测试被测系统的性能、可靠性、稳定性等。压力测试需要确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大的服务级别。通俗地讲,压力测试是为了发现在什么条件下您的应用程序的性能会变得不可接受。

了解ab工具

  • 这是就需要用到一些压测工具来对服务器进行并发压力测试。常见的压力测试工具有Jmeter,LoadRunner,ab等等,
  • 一般来说做压力测试,建议使用Jmeter或者LoadRunner,但是简单场景的压测使用ab就很方便快捷,还可以在linux服务器上进行,可以与其他压测工具做下对比。
  • ab是apachebench命令的缩写,ab命令会创建多个并发访问线程,模拟多个访问者同时对某一HTTP URL地址进行访问。
  • ab命令对发出负载的计算机要求很低,它既不会占用很高CPU,也不会占用很多内存。但却会给目标服务器造成巨大的负载,其原理类似CC攻击。自己测试使用也需要注意,否则一次上太多的负载。可能造成目标服务器资源耗完,严重时甚至导致死机。

实验步骤

关闭防火墙及核心防护:

 systemctl stop firewalld
 setenforce 0
 iptables -F

配置DNS服务



[root@localhost ~]# vim /etc/named.conf
options {
        listen-on port 53 { any; };
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { any; };
 [root@localhost ~]# vim /etc/named.rfc1912.zones         
        zone "zxc.com" IN {
        type master;
        file "zxc.com.zone";
        allow-update { none; };
[root@localhost named]# vim text.com.zone 
        www    IN   A    192.168.136.88
  [root@localhost ~]# systemctl restart named

image-20200815172116611

配置apaches

解压软件包

 zxvf apr-1.6.2.tar.gz 
 tar zxvf apr-util-1.6.0.tar.gz 
 tar jxvf httpd-2.4.29.tar.bz2 
 mv apr-1.6.2 httpd-2.4.29/srclib/apr
 mv apr-util-1.6.0 httpd-2.4.29/srclib//apr-util

安装Apache服务必须的依赖包

cd httpd-2.4.29/
 yum -y install 
gcc 
gcc-c++ 
make 
pcre-devel 
expat-devel 
perl 
zlib-devel

进入httpd软件目录进行编译安装前配置

cd /opt/httpd-2.4.29/
yum -y install zlib-devel
进入目录后执行以下命令:

./configure 
--prefix=/usr/local/httpd 
--enable-so 
--enable-rewrite 
--enable-charset-lite 
--enable-cgi 
--enable-deflate    ## 必须要有!
make  && make install

建立软链接

ln -s /usr/local/httpd/bin/ab /usr/sbin/

编辑http配置文件,将这三个模块开启

vim /usr/local/httpd/conf/httpd.conf

确保以下三个模块前面无注释符号#,如果有就删去:

LoadModule headers_module modules/mod_headers.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule filter_module modules/mod_filter.so

建一个站点页面,在其中添加图片

cd /usr/local/httpd/htdocs/    ## 进入站点目录添加图片

vim index.html    ## 编辑站点页面文件

<img src="cat.jpg"/>

验证语法并开启服务

[root@localhost bin]# cd /usr/local/httpd/bin/
[root@localhost bin]# /usr/local/httpd/bin/httpd -t
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
Syntax OK
如果返回值为:Syntax OK 就没有问题

[root@localhost bin]# ./apachectl start

httpd (pid 40395) already running

image-20200815173117264

执行以下命令开始压力测试

[root@localhost bin]# ab -r -n 3000 -c 1000 www.zxc.com/index.html(以每秒1000个请求的速度对此接口进行访问,知道请求数达到3000个为止,忽略接口返回的错误信息)
Benchmarking www.zxc.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:        Microsoft-IIS/7.5
Server Hostname:        www.zxc.com
Server Port:            80

Document Path:          /index.html
Document Length:        5066 bytes

Concurrency Level:      1000
Time taken for tests:   84.126 seconds
Complete requests:      3000
Failed requests:        2928
   (Connect: 0, Receive: 976, Length: 976, Exceptions: 976)
Non-2xx responses:      2266
Total transferred:      11198916 bytes
HTML transferred:       10704928 bytes
Requests per second:    35.66 [#/sec] (mean)
Time per request:       28041.847 [ms] (mean)
Time per request:       28.042 [ms] (mean, across all concurrent requests)
Transfer rate:          130.00 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0  319 925.7    106    9152
Processing:   194 10147 10462.1   3785   38210
Waiting:        0 3007 6934.1    398   34605
Total:        294 10466 10417.9   4869   41376

Percentage of the requests served within a certain time (ms)
  50%   4869
  66%  21001
  75%  21003
  80%  21004
  90%  21005
  95%  25171
  98%  35187
  99%  36438
 100%  41376 (longest request)

第一次 84.126

第二次 73.478

第三次 80.835

image-20200815174354210

现在模拟对网站进行优化,开启gzip压缩功能

vim /usr/local/httpd/conf/httpd.conf   ## 编辑http配置文件

在文件末尾追加写入以下内容开启gzip压缩:

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

要重启Apache服务

./apachectl stop   ## 停止服务
./apachectl start  ## 开启服务

第一次 71.492

第二次 72.865

第三次 70.078

在这里插入图片描述

对比这3次测试结果,可以较明显看出开始gzip页面压缩后,测试时间明显减少了**

最后

以上就是无心烧鹅为你收集整理的ab压力测试(了解ab工具,实验对网页进行测试)使用ab工具对Apache网页进行压力测试实验步骤的全部内容,希望文章能够帮你解决ab压力测试(了解ab工具,实验对网页进行测试)使用ab工具对Apache网页进行压力测试实验步骤所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部