设为首页 收藏本站
查看: 731|回复: 0

[经验分享] Apache实现网站性能压力测试

[复制链接]

尚未签到

发表于 2018-11-17 09:32:29 | 显示全部楼层 |阅读模式
简介
  压力测试是性能调优过程中必不可少的一环。只有让服务器处在高压情况下才能真正体现出各种设置所暴露的问题。
  性能测试工具目前最常见的有以下几种:ab、http_load、webbench、siege。
ab的原理
    ab命令会创建多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问。它的测试目标是基于URL的,因此,它既可以用来测试apache的负载压力,也可以测试nginx、、tomcat、IIS等其它Web服务器的压力。
    ab命令对发出负载的计算机要求很低,它既不会占用很高CPU,也不会占用很多内存。但却会给目标服务器造成巨大的负载,其原理类似CC×××。自己测试使用也需要注意,否则一次上太多的负载。可能造成目标服务器资源耗完,严重时甚至导致死机。
实验环境

  • 系统环境:centos6.5
  • 服务器IP地址:192.168.100.103
  • yum挂载目录:/mnt/sr0
  • 相关源码包下载地址:百度云下载   密码:pko3
搭建步骤
一、准备工作
1、关闭防火墙及selinux
  [root@Init5 ~]# chkconfig iptables off #随开机关闭iptables
  [root@Init5 ~]# vim /etc/sysconfig/selinux
DSC0000.jpg

  [root@Init5 ~]# reboot #重启生效
2、卸载以RPM方式安装httpd相关包
  [root@Init5 ~]# rpm -qa | grep "httpd"
DSC0001.jpg

  [root@Init5 ~]# yum remove httpd #卸载httpd相关包
3、搭建DNS服务器
  如果没有搭建以上两个服务的朋友,请查看我的其他帖子有详细介绍
  http://blog.51cto.com/11905606/2156944
二、搭建httpd服务
1、安装gcc、gcc-c++、make、arp、arp-util、pcre等工具包
  [root@localhost ~]# yum -y install gcc gcc-c++ make zlib-devel #安装C语言编译器以及make
  [root@localhost ~]# tar -zxvf apr-1.4.6.tar.gz -C /usr/src/
  [root@localhost ~]# cd /usr/src/apr-1.4.6/
  [root@localhost apr-1.4.6]# ./configure prefix=/usr/local/apr && make && make install
  [root@localhost ~]# tar -zxvf apr-util-1.4.1.tar.gz -C /usr/src/
  [root@localhost ~]# cd /usr/src/apr-util-1.4.1/
  [root@localhost apr-util-1.4.1]# ./configure prefix=/usr/local/apr-util --with-apr=/usr/local/apr && make && make install
  [root@localhost ~]# tar -zxvf pcre-8.10.tar.gz -C /usr/src #支持正则
  [root@localhost ~]# cd /usr/src/pcre-8.10/
  [root@localhost pcre-8.10]# ./configure prefix=/usr/local/pcre && make && make install
2、配置编译安装apache
  [root@Init5 ~]# tar zxvf httpd-2.4.2.tar.gz -C /usr/src/
  [root@Init5 ~]# cd /usr/src/httpd-2.4.2/
  [root@Init5 httpd-2.4.2]# ./configure \
  --prefix=/usr/local/httpd \
  --with-apr=/usr/local/apr \
  --with-pcre=/usr/local/pcre \
  --enable-deflate \
  --enable-so \
  --enable-rewrite \
  --enable-charset-lite \
  --enable-cgi
参数解析:
  prefix:指定安装目录
  enable-deflate:启用mod_deflate模块
  enable-so:启用动态加载模块支持,需要什么功能可以动态加载
  enable-rewrite:启用网页地址重写功能,实现伪静态
  enable-charset-lite:默认字符集
  enable-cgid:启用CGID
  [root@Init5 httpd-2.4.2]# make && make install #编译及编译安装
3、添加系统服务
  [root@Init5 ~]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
  [root@Init5 ~]# vim /etc/init.d/httpd
第2、3两行添加以下参数:
  # chkconfig:2345 85 15
  # description:Apache is a World Wide Web server.
  [root@Init5 init.d]# chmod +x /etc/init.d/httpd
  [root@Init5 init.d]# chkconfig --add httpd
4、建立软链接,方便管理
  [root@Init5 ~]# mkdir -p /etc/httpd
  [root@Init5 ~]# ln -s /usr/local/httpd/conf/ /etc/httpd/     #优化配置文件路径
  [root@Init5 ~]# ln -s /usr/local/httpd/bin/* /usr/local/bin/ #优化命令路径
5、修改配置文件
  [root@Init5 ~]# vim /etc/httpd/conf/httpd.conf
修改以下参数:
  ServerName www.bt.com:80 #填写完全主机名
  Listen 192.168.100.103:80 #监听本地IP
6、启动httpd服务
  [root@Init5 ~]# service httpd start
  [root@Init5 ~]# netstat -anpt | grep ':80'
DSC0002.jpg

二、配置Apache实现网页压缩
1、编辑默认首页
  [root@Init5 ~]# cp qingzi.jpg /usr/local/httpd/htdocs/ #将图片拷贝到站点目录中
  [root@Init5 ~]# cd /usr/local/httpd/htdocs/
  [root@Init5 htdocs]# vim index.html
  
    
      It works!
       #首页添加图片
    
  
2、修改主配置文件
  [root@Init5 ~]# vim /etc/httpd/conf/httpd.conf
102行左右,开启deflate模块
  LoadModule deflate_module modules/mod_deflate.so
最末尾添加如下参数:
  
  AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript #对html、css等内容启用gzip压缩
  DeflateCompressionLevel 9 #压缩级别是9,高级别压缩,级别越高,压缩越小
  SetoutputFilter DEFLATE   #启用deflate模块对本站点的输出进行gzip压缩
  
3、检查是否安装了mod_deflate模块
  [root@Init5 ~]# apachectl -t -D DUMP_MODULES | grep 'deflate'
DSC0003.jpg

  [root@Init5 ~]# /etc/init.d/httpd restart #重启httpd服务
4、使用fiddler抓包查看
DSC0004.jpg

三、使用ab工具进行压力测试
  [root@Init5 ~]# cd /usr/local/httpd/bin/
  [root@Init5 bin]# ll
DSC0005.jpg

1、进行压力测试
  [root@Init5 ~]# ab -n3000 -c1000 www.bt.com/index.html
  -n:请求数总和,也就是request请求的总数,访问数量
  -c:并发用户数,并发链接数量
DSC0006.jpg

2、关闭网页压缩功能
  [root@Init5 ~]# vim /etc/httpd/conf/httpd.conf
DSC0007.jpg

  [root@Init5 ~]# /etc/init.d/httpd restart #重新启动服务
3、再次进行压力测试
  [root@Init5 ~]# ab -n3000 -c1000 www.bt.com/index.html
DSC0008.jpg



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-636064-1-1.html 上篇帖子: apache系列(域名防欺诈) 下篇帖子: apache2-zhangyuhe2的博客
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表