软件名称简介优缺点
webbench

由Lionbridge公司开发,主要测试每秒钟请求数和每秒钟数据传输量,同时支持静态、动态、SSL

 

部署简单,静动态均可测试。适用于小型网站压力测试(单例最多可模拟3万并发)
ab(apache bench)

Apache自带的压力测试工具,主要功能用于测试网站每秒钟处理请求个数

 

多见用于静态压力测试,功能较弱,非专业压力测试工具
tcpcopy基于底层应用请求复制,可转发各种在线请求到测试服务器,具有分布式压力测试功能,所测试数据与实际生产数据较为接近

后起之秀,主要用于中大型压力测试,所有基于 tcp的packets均可测试

loadrunner压力测试界的泰斗,可以创建虚拟用户,可以模拟用户真实访问流程从而录制成脚本,其测试结果也最为逼真模拟最为逼真,并可进行独立的单元测试,但是部署配置较为复杂,需要专业人员才可以。





(1)安装webbench

#wget http://home.tiscali.cz/~cz210552/distfiles/webbench-1.5.tar.gz
#tar zxvf webbench-1.5.tar.gz
#cd webbench-1.5
#make && make install

如果出现缺少xx文件,新建即可



(2)进行压力测试,在另一台server上发起测试,因为很耗内存

并发200时

# webbench -c 200 -t 60 http://10.10.21.134/

参数解释:-c为并发数,-t为时间(秒)

nginx.conf 内 worker_connections  1024;测试的时候必须小于等于这个允许的并发数)

从200往上加,使用  grep 'GET /' /var/log/nginx/access.log | grep '10/Sep/2014'|wc -l   , grep 'GET /' /var/log/apache2/access.log | grep '10/Sep/2014'|wc -l     命令分别统计nginx服务器和两个负载服务器接收到的包


关闭iptables后(centos :service iptables stop   ubtuna:ufw disable

并发600时






查看了/var/log/apache2/error.log有很多无法访问的问题,估计是压力测试量太大了。配置有待优化,在网上看到讲Apache2.conf的优化,apache2ctl -l查看支持哪种模式,我的是prefork.c,则将两个均衡server的apache2.conf文件修改:

<IfModule mpm_prefork_module>
    StartServers          5
    MinSpareServers       5
    MaxSpareServers      6
    ServerLimit         550
    MaxClients          500
  MaxRequestsPerChild   10000
</IfModule>

修改此指令的值必须完全停止服务后再启动才能生效,先停止再启动以restart方式重启动将不会生效。 ServerLimit       必须放在MaxClients上面 且值>=MaxCliens

并发1000测试:




697+627=1324  ,丢了52次请求,比之前好了点

对upstream处理:

使用ip_hash时:


没有起到均衡,因为测试时ip固定

使用RR轮询:



刚开始在upstream内有一个空格,导致均衡效果差,相对于135server,138请求很少:


删除空行后基本均衡,可是空行应该不影响配置文件啊,在网上也没查到结果,是不是在进行压力测试时,在访问量很大的情况下也相当于在配置文件内加入很多空行???