首页 > 代码库 > ab压力测试及Xcache
ab压力测试及Xcache
使用ab进行对页面压力测试
ab是apache自带的一个很好用的压力测试工具,当安装完apache的时候,就可以在bin下面找到ab
我们可以模拟100个并发用户,对一个页面发送1000个请求
#ab -c 100 -n 1000 http://192.168.0.2/phpmyadmin 请求总数1000次,每次并发100
##首先是apache的版本信息 This is ApacheBench, Version 2.3 <$Revision: 1554214 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking 192.168.0.2 (be patient) Server Software: Apache/2.4.9 //版本号 Server Hostname: 192.168.0.2 //请求的主机 Server Port: 80 //访问的端口 Document Path: /phpmyadmin //网站的存放的路径 Document Length: 208 bytes //页面长度 Concurrency Level: 100 //并发100 Time taken for tests: 0.543 seconds //使用的的时间 Complete requests: 1000 //请求的总数 Failed requests: 0 //失败请求 Non-2xx responses: 1000 Total transferred: 396000 bytes //总共传输字节数,包含http的头信息等 HTML transferred: 208000 bytes //html字节数,实际的页面传递字节数 Requests per second: 1842.10 [#/sec] (mean) //每秒多少请求,这个是非常重要的参数数值,服务器的吞吐量 Time per request: 54.286 [ms] (mean) //用户平均请求等待时间 Time per request: 0.543 [ms] (mean, across all concurrent requests) //服务器平均处理时间,也就是服务器吞吐量的倒数 Transfer rate: 712.37 [Kbytes/sec] received //每秒获取的数据长度 Connection Times (ms) min mean[+/-sd] median max Connect: 4 18 11.4 13 68 Processing: 3 35 73.8 14 449 Waiting: 0 31 73.9 11 446 Total: 15 53 77.0 27 466 Percentage of the requests served within a certain time (ms) 50% 27 //50%的请求在27ms内返回 66% 40 75% 45 80% 53 90% 80 95% 183 98% 357 99% 463 100% 466 (longest request)
这里我配置了一个httpd+php+mysql的环境,装了一个phpmyadmin,然后对网页进行压力测试,如果大家要是测试的话就要从小的并发量开始测,我就是闲着没事干,弄了个总量5000,并发500的,结果就悲剧了,服务器直接卡死,网页刷新刷不出来,被迫关机。造成这种局面的根本所在就是,服务器的配置无法对大量的并发请求及时响应,如果有很多人访问这个网站,那么打开的速度就很慢,对客户的感官造成了影响。
PHP加速器
为了提高服务器的访问量我们可以配置php加速器Xcache,用缓存来提高页面的访问速度
Xcache是开源的opcode和var的缓存器,它可以加速PHP的原因就是Xcache通过缓存用户已经请求的PHP编译结果,将PHP编译缓存保存在服务器的内存中以便用户再次请求同样PHP解析时不再用PHP再次编译直接从Xcache缓存结果中读取。避免PHP再次编译给服务器带来过大的负载。
编译Xcache
编译安装的时候,xcache是作为php的模块来使用的,编译的时候要指明php config的路径
# /usr/local/php/bin/phpize在编译之前,要用这个命令来生成configure文件,因为,解压之后的文件里没有configure文件,所以,要用这个命令来生成configure文件。再执行编译
来看一下phpize的帮助文档
#man -M /usr/local/php/php/man/ phpize
因为上一次编译php的时候没有加入man手册,所以在这里必须使用man –M,提示说准备一个php扩展来实现编译
#tar xf xcache-3.1.0.tar.gz #cd xcache-3.1.0 #/usr/local/php/bin/phpize
#./configure --enable-xcache --with-phpconfig=/usr/local/php/bin/php-config #make && make install
创建一个目录,把xcache.ini复制到新建的目录中
#mkdir /etc/php.d #cp xcache.ini /etc/php.d
接下来编辑/etc/php.d/xcache.ini,找到extension开头的行,修改为如下行:
extension = /usr/local/php/lib/php/extensions/no-debug-zts-20100525/xcache.so
查看php显示界面里是否有xcache
这就说明Xcache已经添加进php中了
现在再来测试一下,看看访问速度有何改变
看着这个结果可以跟上面测试的对比一下,可以明显体验到php加速器的重要性。
服务器状态
mod_status模块可以让管理员查看服务器的执行状态,它通过一个HTML页面展示了当前服务器的统计数据。这些数据通常包括但不限于:
1.处于工作状态的worker进程数;
2.空闲状态的worker进程数;
3.每个worker的状态,包括此worker已经响应的请求数,及由此worker发送的内容的字节数;
4.当前服务器总共发送的字节数;
5.服务器自上次启动或重启以来至当前的时长;
6.平均每秒钟响应的请求数、平均每秒钟发送的字节数、平均每个请求所请求内容的字节数;
启用状态页面的方法很简单,只需要在主配置文件中添加如下内容即可:
<Location /status>
SetHandler server-status
Require all granted
</Location>
需要提醒的是,这里的状态信息不应该被所有人随意访问,因此,应该限制仅允许某些特定地址的客户端查看。比如使用Require ip 192.168.0.3/24来限制仅允许指定网段的主机查看此页面。
本文出自 “鱼儿” 博客,请务必保留此出处http://kyfish.blog.51cto.com/1570421/1544959
ab压力测试及Xcache