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

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

程序员文章站 2022-03-15 23:38:02
...

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

一:ab压力测试

1、ab工具的概述

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

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

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

  • ab工具位于 /usr/local/httpd/bin/ab 下

2、命令格式

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

3、ab测试结果关键参数

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

4、Apache工作模式

  • Apache作为现今web服务器用的最广泛也是最稳定的开源服务器软件
  • 其工作模式有许多种,源码包安装httpd时可查看httpd-mpm.conf文件,该文件位于extra/conf目录中
  • 目前主要有三种模式
    • event模式
    • prefork模式
    • worker模式
[aaa@qq.com bin]#./httpd -|	 '查看Apache当前的工作模式'
Compiled in modules:
core.c
mod SO.C
http_ core.c
event.c

二:ab测试实验

1、实验目的

使用apache自带ab工具,测试压缩模块优化前后的时间差距

2、实验过程

(1)首先先挂载,再把挂载文件解压到/opt/目录下,再安装编译工具
[aaa@qq.com ~]# mkdir /abc    ‘创建目录 /abc’
[aaa@qq.com ~]# mount.cifs //192.168.10.29/share /abc   ‘192.168.10.29是自己的宿主机IP地址’

‘解压’
[aaa@qq.com abc]#tar -zxvf apr-1.4.6.tar.gz -C /opt/   
[aaa@qq.com abc]#tar -zxvf apr-util-1.4.1.tar.gz -C /opt/
[aaa@qq.com abc]#tar -zxvf httpd-2.4.2.tar.gz -C /opt/

‘安装包优化’
[aaa@qq.com opt]# mv apr-1.4.6/ httpd-2.4.2/srclib/apr
[aaa@qq.com opt]# mv apr-util-1.4.1/ httpd-2.4.2/srclib/apr-util

‘安装编译工具’
[aaa@qq.com opt]# yum install  gcc gcc-c++ pcre pcre-devel zlib-devel make expat-devel -y
(2) 手工编译安装
[aaa@qq.com opt]# cd /opt/httpd-2.4.2/
#有configure的文件,执行以下命令
[aaa@qq.com httpd-2.4.2]# ./configure \
--prefix=/usr/local/httpd \
--enable-deflate \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi
[aaa@qq.com httpd-2.4.2]# make && make install
(3) 进入apache 主配置文件修改
[aaa@qq.com init.d]# ln -s /usr/local/httpd/conf/httpd.conf /etc/httpd.conf     ‘建立软连接’
[aaa@qq.com init.d]# vim /etc/httpd.conf 
ServerName www.kg.com:80    ‘修改域名,前面#号去掉’

Listen 192.168.34.147:80        ‘修改监听地址 (自己虚拟主机地址)’
#Listen 80       ‘注释’
[aaa@qq.com init.d]# service httpd start     ‘开启httpd服务’
(4)先给网页站点插入图片
[aaa@qq.com abc]# cp dog.jpg /usr/local/httpd/htdocs/    ‘图片放在共享的文件中’
[aaa@qq.com abc]# cd /usr/local/httpd/htdocs/
[aaa@qq.com htdocs]# ls
dog.jpg  index.html
[aaa@qq.com htdocs]# vim index.htm
<html><body><h1>It works!</h1>
<img src="dog.jpg"/>     ‘添加这一行,把图片加在网页中’
</body></html>
(5)在/bin/目录下启动脚本,关闭防火墙
[aaa@qq.com httpd]# cd bin/
[aaa@qq.com bin]# ls
ab            apu-1-config  dbmmanage    fcgistarter   htdigest  httxt2dbm
apachectl     apxs          envvars      htcacheclean  htpasswd  logresolve
apr-1-config  checkgid      envvars-std  htdbm         httpd     rotatelogs
[aaa@qq.com bin]# systemctl stop firewalld     ‘关闭防火墙’
[aaa@qq.com bin]# setenforce 0
[aaa@qq.com bin]# ./apachectl start
到win10客户机中 测试

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

(6)建立一条软连接,便于系统识别
[aaa@qq.com init.d]# cd /usr/local/httpd/
[aaa@qq.com httpd]# ls
bin    cgi-bin  error   icons    lib   man     modules
build  conf     htdocs  include  logs  manual
[aaa@qq.com httpd]# cd /bin
[aaa@qq.com bin]# ls
[                                     mkhybrid
a2p                                   mkinitrd
ab   ‘可以看到ab压测工具’                mkisofs
...省略内容
[aaa@qq.com bin]# ln -s /usr/local/httpd/bin/* /usr/local/bin/    ‘建立的软连接’
[aaa@qq.com bin]# which ab     ‘查看是否有ab压测工具’
/usr/local/bin/ab
(7)对apache进行多次压测,取平均值
[aaa@qq.com bin]# ab -n 2000 -c 800 www.kg.com/index.html
Concurrency Level:    800
Time taken for tests:    21.031 seconds    '看这行数据'  '压缩时间'
CompLete requests:    2000
Failed requests:   235

(8)进行优化,与优化前的测试结果对比
[aaa@qq.com bin]# vim /usr/local/httpd/conf/httpd.conf    ‘进入apache主配置文件’
LoadModule filter_module modules/mod_filter.so     ‘默认已经开启的’
LoadModule deflate_module modules/mod_deflate.so    ‘去掉前面#号,开启deflate’

‘在末尾处添加 , 关闭压缩模块功能’ 
<IfModule mod_deflate.c>
  AddOutputFilterBytype DEFLATE text/html text/plain text/css text/xml text/javascript text/jpg text/png
  DeflateCompressionLevel 6
  SetOutputFilter DEFLATE
</IfModule>

[aaa@qq.com bin]# /usr/local/httpd/bin/apachectl -t      ‘验证apache配置文件是否有语法错误’
Syntax OK
[aaa@qq.com bin]# service httpd restart    ‘开启服务’
(9)优化后再次使用ab工具进行压测
[aaa@qq.com bin]#./apachectl stop
[aaa@qq.com bin]#./apachectl start   '重启服务'
[aaa@qq.com bin]#ab -n 2000 -c 800 www.kg.com/index.html
实验总结:

​ 从上面压测的两个数据比较来看,优化过后,处理高并发的能力更强 。 通过比较可以发现,结果参数发生了变化,在现网中的生产环境,可以根据承载的请求数等,频繁的调整参数,以使Apache 发挥出最大的优化性能 。

相关标签: Apache