欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Apache深入优化----ab压力测试

程序员文章站 2022-06-25 20:25:26
...

一、ab工具

  • ab是apache自带的压力测试工具。ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试。

  • ab的原理:ab命令会创建多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问。

  • ab命令对发出负载的计算机要求很低,不会占用很高CPU和内存,但也能给目标服务器产生巨大的负载,使用的时候要注意,如果一次太多的负载,可能导致主机资源耗尽,严重时可能死机。

  • ab工具是装完Apache服务就自带的,位于 /usr/bin/ab 下

  • 命令格式:

例:ab -n 2000 -c 800 www.test.com/index.html
     //800为并发数,2000为总请求数
参数说明:
-n:测试会话中所执行的请求总数,默认时仅执行一个请求;
-c:并发产生的请求个数,默认是一个一次;
-t:测试所进行的最大秒数;
-v:设置显示信息的详细过程
  • ab测试结果关键参数说明:
    Apache深入优化----ab压力测试

二、优化前压测模拟

  • 手工编译安装Apache

1、挂载共享文件,并解压到 /opt/目录下。

mount.cifs //192.168.56.1/share /mnt   #192.168.56.1是我的宿主机IP地址
#解压
tar -zxvf apr-1.4.6.tar.gz -C /opt/    
tar -zxvf apr-util-1.4.1.tar.gz -C /opt/
tar -zxvf httpd-2.4.2.tar.gz -C /opt/

#安装包优化
cd /opt
mv apr-1.4.6/ httpd-2.4.2/srclib/apr
mv apr-util-1.4.1/ httpd-2.4.2/srclib/apr-util

2、安装编译工具

yum install -y gcc gcc-c++ pcre pcre-devel zlib-devel make

3、在 /opt/httpd-2.4.2 配置

cd httpd-2.4.2/

#有configure的文件,执行以下命令
./configure \
--prefix=/usr/local/httpd \
--enable-deflate \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi

4、make && make install

5、打开Apache的主配置文件

vim /usr/local/httpd/conf/httpd.conf
 
#修改域名和监听地址
ServerName www.test.com:80

Listen 192.168.220.134:80
#Listen 80

6、开启apache服务,关闭防火墙

#开启apache服务
/usr/local/httpd/bin/apachectl start

#关闭防火墙
systemctl stop firewalld
setenforce 0

7、先给网页站点插入图片

cd /mnt/httpd
cp game.jpg /usr/local/httpd/htdocs/

cd /usr/local/httpd/htdocs/
#在index.html中引用图片
vim index.html
<html>
<body>
<h1>It works!</h1>
<img src="game.jpg"/>   #增添这一行,把图片加在网页中
</body>
</html>

8、做域名解析

两个方式:
1、安装bind,做DNS正向解析。
2、指向hosts文件
echo "192.168.220.134 www.test.com">>/etc/hosts

9、优化前进行多次压测,取平均值

#1、查看是否有工具ab
which ab
/usr/bin/ab
#2、查看网络互通
ping www.test.com   //通即可压测
#多次进行
ab -n 2000 -c 800 www.test.com/index.html

三、优化后压测模拟

现在开始进行优化压缩,与优化前的测试结果比对

打开Apache的主配置文件

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

#只更改一处:
LoadModule headers_ module modules/ mod_ headers. so    //默认开启
LoadModule deflate_ module modules/mod_ deflate. so     //去掉前面#开启deflate模块
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
DeflateCompressionLevel 6
SetOutputFilter DEFLATE
</IfModule>

#验证apache的配置文件是否有语法错误
/usr/local/httpd/bin/apachectl -t
Syntax OK  

#启动apache
执行 /usr/local/httpd/bin/apachectl restart   
或者service httpd restart 

优化后再进行压测

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

Apache深入优化----ab压力测试
多次重启服务测试

/usr/local/httpd/bin/apachectl stop   
/usr/local/httpd/bin/apachectl start   

Apache深入优化----ab压力测试

四、模拟总结

  • 通过比较可以发现,结果参数发生了变化,在 现实网络中的生产环境,可以根据承载的请求数等,频繁的调整参数,以使Apache 发挥出最大的优化性能。
  • 在测试中,如果数据不太精准,可能是压测的内容占用太小,可以在网页中多放几张图片增加