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来限制仅允许指定网段的主机查看此页面。

时间: 2024-12-19 19:25:32

ab压力测试及Xcache的相关文章

安装Xcache缓存加速php及ab压力测试结果

XCache 是一个又快又稳定的 PHP opcode 缓存器. 经过良好的测试并在大流量/高负载的生产机器上稳定运行. 经过(在 linux 上)测试并支持所有现行 PHP 分支的最新发布版本, 如 PHP_5_1 PHP_5_2 PHP_5_3 PHP_5_4. 并完美支持线程安全/Windows. 与同类 opcode 缓存器相比更胜一筹, 比如能够快速跟进 PHP 版本. 我的php为5.6.6版本,所以需要安装xcache3.2.0    官网下载:http://xcache.ligh

php-xcache编译安装,及ab压力测试

[[email protected] local]# tar -xf xcache-3.2.0.tar.bz2 [[email protected] xcache-3.2.0]# man -M /usr/local/php/php/man phpize 查看帮助文档 [[email protected] xcache-3.2.0]# /usr/local/php/bin/phpize [[email protected] xcache-3.2.0]# man -M /usr/local/php/

apache ab压力测试报错apr_socket_recv

apache ab压力测试报错(apr_socket_recv: Connection reset by peer (104)) apache 自带的ab工具测试,当并发量达到1000多的时候报错如下: [[email protected] ~]# ab -n 100000 -c 1000 http://192.168.2.170/index.htmlThis is ApacheBench, Version 2.3 <$Revision: 655654 $>Copyright 1996 Ada

AB压力测试(Windows)

1.Apache服务器安装 链接: http://jingyan.baidu.com/article/29697b912f6539ab20de3cf8.html 2.AB压力测试帮助 http://wangshuaibo.iteye.com/blog/935454 3.帮助文档 ① Apache报ServerRoot must be a valid directory 解决方法:http://jingyan.baidu.com/article/915fc41491c68751384b2040.h

在执行ab压力测试时出现socket: Too many open files (24)的解决方法

当入行压力测试时出现下列错误 [[email protected] ~]# ab -n 3000 -c 3000 http://192.168.0.2/This is ApacheBench, Version 2.3 <$Revision: 655654 $>Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/Licensed to The Apache Software Foundation, htt

apache ab压力测试报错(apr_socket_recv: Connection reset by peer (104))

apache ab压力测试报错(apr_socket_recv: Connection reset by peer (104)) 今天用apache 自带的ab工具测试,当并发量达到1000多的时候报错如下: [[email protected]~]# This is ApacheBench, Version 2.3 <$Revision: 655654 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech

4分钟apache自带ab压力测试工具使用: 2015.10.4

2015.10.44分钟apache自带ab压力测试工具使用:win8.1 wampserver2.5 -Apache-2.4.9-Mysql-5.6.17-php5.5.12-64b 可以参考一下部分讲解有图,我就是打开cmd窗口,进入apache的安装目录(ab一般是apache自带测试工具,所以然后就可以执行需要测试的命令就好了),我的在F:\wamp\bin\apach\apache2.4.9\bin目录下:两种执行方式,1.进入上面说的目录后执行以下命令,如 .\ab -n5000 -

ASP.NET 页面缓存OutputCache用法实例(附ab压力测试对比图)

本文主要介绍Web窗体页面中的使用方法,MVC中使用方法,大家自行百度. 一.简单一行指令即可实现 <%@ OutputCache VaryByParam="none" Duration="300" %> 这样整个页面就被缓存了,由于我是首页进行的缓存,没有任何参数所以VaryByParam值设置为none,如果希望通过指定的参数来缓存内容可以设置"id;classid"这种形式,或者干脆就用"*",通过所有参数来

超级web服务器yum 安装apache+源码编译tomcat+awstat+phpmadin+mysql+php+AB压力测试

实验环境: 两台机器:Centos6.4 机器一: 192.168.56.10  安装httpd  php   等整合 机器二: 192.168.56.11 安装 mysql ======================================================================================== (iptables -t nat -I PREROUTING -d 外IP -p tcp -m tcp --dport 端口 -j DNAT --