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

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

程序员文章站 2022-03-15 23:46:12
...

前言:

  • Apache的默认配置可以保证基本运行服务,但是在生产环境中,有时候需要把服务器性能发挥到最大,此时,需要我们进行深入优化

  • 深入优化包括对服务器进行压力测试,然后对相应数据进行优化,以便充分发挥服务器的作用

一、ab压力概述

1.1 ab压力测试工具简介
  • ab是apachebench命令的缩写。
  • ab的原理ab命令会创建多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问。它的测试目标是基于URL的,因此,它既可以用来测试apache的负载压力,也可以测试nginx、lighthttp、tomcat、IIS等其它Web服务器的压力。
  • Apache自带压力测试工具ab,简单易用,它对发出负载的计算机要求很低,它既不会占用很高的CPU,也不会占用很多的内存,但也能给目标服务器产生巨大的负载,使用的时候要注意,如果一次太多的负载,可能导致主机资源耗尽,严重时可能死机。
1.2 ab压测工具命令、参数
  • ab工具使用的命令格式

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

参数说明

-n:测试会话所执行的请求总数,默认时仅执行一个请求;

-c :并发产生的请求个数,默认时一个一次;

-t :测试所进行的最大描述

-v :设置显示信息的详细过程

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

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

二、ab压测实验

此项实验我们将分别在优化前后进行压测,对比前后结果

虚拟机环境:Centos 7 操作系统

2.1 手工编译安装Apache
  • 挂载共享文件、解压到/opt/目录中
[@localhost ~]# mount.cifs //192.168.181.1/LAMP-C7 /mnt
Password for aaa@qq.com//192.168.181.1/LAMP-C7:  
[@localhost ~]# cd /mnt
[aaa@qq.com mnt]# ls
amoeba-mysql-binary-2.2.0.tar.gz  Discuz_X2.5_SC_UTF8.zip  mha.rar
apr-1.6.2.tar.gz                  httpd-2.4.29.tar.bz2     mysql-5.6.26.tar.gz
apr-util-1.6.0.tar.gz             LNMP-C7                  php-5.6.11.tar.bz2
awstats-7.6.tar.gz                LNMP-C7.rar
cronolog-1.6.2-14.el7.x86_64.rpm  mha
  • 解压跨平台组件包和源码包
[aaa@qq.com mnt]# tar zxvf apr-1.6.2.tar.gz -C /opt
[aaa@qq.com mnt]# tar zxvf apr-util-1.6.0.tar.gz -C /opt
...............省略部分内容
[aaa@qq.com mnt]# tar jxvf httpd-2.4.29.tar.bz2 -C /opt
...............省略部分内容
[aaa@qq.com mnt]# cp dog.jpg /usr/local/httpd/htdocs/
[aaa@qq.com mnt]# cd /opt
[aaa@qq.com opt]# ls
apr-1.6.2  apr-util-1.6.0  httpd-2.4.29  rh
[aaa@qq.com opt]# mv apr-1.6.2/ httpd-2.4.29/srclib/apr
[aaa@qq.com opt]# mv apr-util-1.6.0/ httpd-2.4.29/srclib/apr-util
  • 安装编译工具及环境包
[aaa@qq.com opt]# yum -y install \
> gcc \
> gcc-c++ \
> make \
> pcre-devel \
> zlib-devel \
> expat-devel \
> pcre \
> perl
...........省略部分内容
  • 配置编译
[aaa@qq.com opt]# cd /opt/httpd-2.4.29/
[aaa@qq.com httpd-2.4.29]#./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-deflate \
--enable-expires \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi
........省略部分内容
[aaa@qq.com httpd-2.4.29]# make   #生产可执行的二进制文件
........省略部分内容
[aaa@qq.com httpd-2.4.29]# make install   #复制二进制文件到系统,配置应用环境
........省略部分内容
  • 创建软链接便于管理
[aaa@qq.com httpd-2.4.29]# ln -s /usr/local/httpd/conf/httpd.conf /etc/httpd.conf  
[aaa@qq.com httpd-2.4.29]# ln -s /usr/local/httpd/bin/ab /usr/sbin   #创建软链接,让httpd的ab命令便于系统管理
2.2 网站部署及ab压力测试
2.2.1 配置apache
  • 修改域名和监听地址
[aaa@qq.com bin]# vim /etc/httpd.conf 
Listen 192.168.181.129:80	  #将监听地址修改为本机地址
#Listen 80				 	  #关闭ipv6监听地址
ServerName www.cats.com:80	  #修改域名
---------》wq
  • 关闭防火墙、开启Apache服务
[aaa@qq.com bin]# systemctl stop firewalld
[aaa@qq.com bin]# setenforce 0
[aaa@qq.com bin]# ./apachectl start
  • 配置网页站点
[aaa@qq.com bin]# cd ..
[aaa@qq.com httpd]# cd htdocs/
[aaa@qq.com htdocs]# ls
index.html
[aaa@qq.com htdocs]# vim index.html 
<html><body><h1>It works!</h1>
<img src="cat.jpg"/>
</body></html>
--------->wq
[aaa@qq.com htdocs]# cd /mnt
[aaa@qq.com mnt]# cp cat.jpg /usr/local/httpd/htdocs/
[aaa@qq.com htdocs]# ls
cat.jpg  index.html
2.2.2 设置域名解析

方式一:安装bind,做正向解析

方式二:指向hosts文件

示例

[aaa@qq.com htdocs]# echo "192.168.181.129 www.cats.com" >> /etc/hosts
  • 使用win10-1 虚拟机测试网页
    Apache深入优化----ab压力测试
2.3 进行ab压测测试
  • 优化前进行多次压测、取均值

示例

[aaa@qq.com htdocs]# ab -n 2000 -c 800 www.cats.com/index.html

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

进行测试5次、平均时间为:22秒

2.4 优化后压测对比
  • 修改配置文件
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/png
DeflateCompressionLevel 9
SetOutputFilter DEFLATE
</IfModule>
  • 验证语法、重启服务
[aaa@qq.com bin]# ./apachectl -t
Syntax OK
[aaa@qq.com bin]# ./apachectl stop
[aaa@qq.com bin]# ./apachectl start
2.4.1 优化后压测实验
[aaa@qq.com htdocs]# ab -n 2000 -c 800 www.cats.com/index.html

示例

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

进行测试5次、平均时间为:20秒

总结:

因为是临时创建的简易网站、站点中图片资源较少,优化前后的对比不明显,现网环境中,可以使用apache自带的ab测试工具进行测试、检验
后文将介绍apache的三种工作模式及目录属性

相关标签: Apache