Apache深入优化——ab压测

ab压力测试工具

  • Apache自带压力测试工具ab,简单易,,且可以模拟各种条件对Web服务器发起测试请求

  • ab工具可以直接在Web服务器本地发起测试请求,这对于需要了解服务器的处理性能至关重要,因为它不包括数据的网络传输时间以及用户PC本地的计算时间,从而可以通过观测各种时间指标判断Web服务器的性能,,以便进行参数的优化调整

  • 在进行性能调整优化过程中,可用ab压力测试工具进行优化效果的测试

    • 优化前先使用ab进行压力测试
    • 优化后,重启服务,再使用ab进行压力测试
    • 对比两次测试的结果,看优化效果是否明显
    • 为了能更客观的评价web服务的性能, 一般优化前后都要进行多次测试,取测试结果的平均值进行对比

ab工具使用

命令格式
语法:ab [options] 网站网址
参数说明
  • -n :测试会话中所执行的请求总数,默认时仅执行一个请求
  • -c :并发产生的请求个数。默认是一次一个
  • -t :测试所进行的最大秒数
  • -v :设置显示信息的详细程度
示例

在测试时要根据情况调整求总数与并发用户数

ab -n 2000 -c 800 www.kgc.com/index.html

ab测试结果关键参数说明

参数 描述
Server Software http响应数据的头信息
Server Hostname 请求的url中的主机名称
Server Port web服务器软件的监听端口
Document Path 请求的url根的绝对路径
Document Length http响应数据的正文长度
Concurrency Level 并发的用户数
Time taken for tests 所有这些请求被处理完成所花费的时间总 和
Complete requests 表示总请求数
Failed requests 失败的请求总数
Total transferred 请求的响应数据长度总和
Requests per second 服务器的吞吐率,每秒处理的请求数
Time per request 用户平均请求等待时间
Time per request 每个请求实际运行时间的平均值
Percentage of the request sserved within a certain time (ms) 描述每个请求处理时间的分布情况
ab压测实验:

#首先先关闭防火墙,挂载安装包并进行解压

[root@localhost ~]# systemctl stop firewalld.service 
[root@localhost ~]# setenforce 0
[root@localhost ~]# mkdir /abc
[root@localhost ~]# mount.cifs //192.168.17.1/share /abc
Password for root@//192.168.17.1/share:  
[root@localhost ~]# cd /abc
[root@localhost abc]# ls
apr-1.6.2.tar.gz                  Discuz_X2.5_SC_UTF8.zip    httpd-2.4.2.tar.gz   nz.jpg
apr-util-1.6.0.tar.gz             error.png                  john-1.8.0.tar.gz    php-5.6.11.tar.bz2
awstats-7.6.tar.gz                extundelete-0.2.4.tar.bz2  LAMP.txt
cronolog-1.6.2-14.el7.x86_64.rpm  httpd-2.4.29.tar.bz2       mysql-5.6.26.tar.gz
[root@localhost abc]# tar zxvf apr-util-1.6.0.tar.gz -C /opt
[root@localhost abc]# tar zxvf apr-1.6.2.tar.gz -C /opt
[root@localhost abc]# tar zxvf httpd-2.4.2.tar.gz -C /opt

#安装编译语言

[root@localhost abc]# yum install gcc gcc-c++ pcre* zlib-devel make expat-devel perl -y

#切换至httpd目录下进行安装模块并进行编译安装

[root@localhost abc]# cd /opt
[root@localhost opt]# ls
apr-1.6.2  apr-util-1.6.0  httpd-2.4.2  rh
[root@localhost opt]# mv apr-1.6.2/ httpd-2.4.2/srclib/apr
[root@localhost opt]# mv apr-util-1.6.0/ httpd-2.4.2/srclib/apr-util
[root@localhost opt]# ls
httpd-2.4.2  rh
[root@localhost opt]# cd httpd-2.4.2/
[root@localhost httpd-2.4.2]# ./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi
[root@localhost httpd-2.4.2]# make && make install

#复制启动脚本并进行配置

[root@localhost httpd-2.4.2]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
[root@localhost httpd-2.4.2]# vim /etc/init.d/httpd
#35级别自动运行  第85个启动 第21个关闭
# chkconfig: 35 85 21  
# description: Apache is a World Wide Web server
[root@localhost httpd-2.4.2]# chkconfig --add httpd   //添加系统识别httpd
[root@localhost httpd-2.4.2]# chkconfig --level 35 httpd on   //设置开机自启

#对配置文件路径进行优化并修改主配置文件

[root@localhost httpd-2.4.2]# ln -s /usr/local/httpd/conf/httpd.conf /etc/      //建立配置文件连接便于管理
[root@localhost httpd-2.4.2]# ln -s /usr/local/httpd/bin/* /usr/local/bin/       //将bin目录下的所有连接到/usr/local/bin中以便系统识别
[root@localhost httpd-2.4.2]# vim /etc/httpd.conf 
Listen 192.168.17.142:80
ServerName www.kgc.com:80

#到站点文件中添加图片等信息,用于压测

[root@localhost httpd-2.4.2]# cd /usr/local/httpd/htdocs/
[root@localhost htdocs]# ls
index.html
[root@localhost htdocs]# vim index.html 
<html><body><h1>It works!</h1>
<img src="nz.jpg"/>
<img src="error.png"/>
</body></html>
[root@localhost htdocs]# cp /abc/nz.jpg ./
[root@localhost htdocs]# cp /abc/error.png ./
[root@localhost htdocs]# ls
error.png  index.html  nz.jpg

#测试时需要用到域名,需要做域名解析,可以改hosts文件,添加本地解析地址

[root@localhost httpd-2.4.2]# vim /etc/hosts
192.168.17.142  www.kgc.com
[root@localhost httpd-2.4.2]# service httpd start

#这时我们先不进行压缩优化,直接开启服务进行测试

通过域名可以直接进行访问

在这里插入图片描述

检查ab压测工具并进行压测

[root@localhost htdocs]# which ab
/usr/local/bin/ab
[root@localhost htdocs]# ab -n 2000 -c 800 www.kgc.com/index.html

多压测几次,压缩时间稳定后取平均
在这里插入图片描述

#现在我们到主配置文件中打开压缩模块并进行配置

[root@localhost htdocs]# vim /etc/httpd.conf
LoadModule headers_module modules/mod_headers.so
LoadModule deflate_module modules/mod_deflate.so      //开启模块,去掉#号
LoadModule filter_module modules/mod_filter.so
…………
<IfModule mod_deflate.c>                    //配置文件末尾添加压缩标签
AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript text/jpg text/p
ng
SetOutputFilter DEFLATE
</IfModule>

#配置完成后再次使用压测工具进行检测

[root@localhost htdocs]# ab -n 2000 -c 800 www.kgc.com/index.html

在这里插入图片描述
通过压缩前后比较可以发现,最后参数发生了变化,所以,我们可以根据承载的请求数等,适当的调整参数,使Apache 发挥出最大的优化性能

发布了72 篇原创文章 · 获赞 44 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/ML908/article/details/103602601
今日推荐