目前较为常见的网站压力测试工具有webbench、ab(apache bench)、tcpcopy、loadrunner
webbench由Lionbridge公司开发,主要测试每秒钟请求数和每秒钟数据传输量,同时支持静态、动态、SSL,部署简单,静动态均可测试。适用于小型网站压力测试(单例最多可模拟3万并发) 。
ab(apache bench)Apache自带的压力测试工具,主要功能用于测试网站每秒钟处理请求个数,多见用于静态压力测试,功能较弱,非专业压力测试工具。
tcpcopy基于底层应用请求复制,可转发各种在线请求到测试服务器,具有分布式压力测试功能,所测试数据与实际生产数据较为接近后起之秀,主要用于中大型压力测试,所有基于tcp的packets均可测试。
loadrunner压力测试界的泰斗,可以创建虚拟用户,可以模拟用户真实访问流程从而录制成脚本,其测试结果也最为逼真模拟最为逼真,并可进行独立的单元测试,但是部署配置较为复杂,需要专业人员才可以。
我在测试我们的Nginx 服务器压力时,自己用java多线程程序模拟并发访问,测试时发现会出现nginx服务突然阻塞,测试代码出现Socket:Read timed out错误,
使用webbench,排除了当压力过大nginx服务器本身的问题,初步认为是由于访问mysql 导致阻塞。下面介绍安装和使用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
进行压力测试,并发10000:
webbench -c 10000 -t 60 http://10.11.192.209:8080/loadchannel?type=0