分类: LINUX
2012-03-31 13:22:19
一、功能介绍:
1)分布式压力测试工具,利用在线数据可以测试系统能够承受的压力大小,也可以提前发现bug
2)如果后端的连接是短连接并且请求体不大,可以应用于热备份(据说请求丢失率一般都非常低”1/10万”)
3)普通上线测试,可以发现新系统是否稳定,提前发现上线过程中会出现的诸多问题,让开发者有信心上线
4)对比试验,同样请求,针对不同或不同版本程序,可以做性能对比等试验
5)利用级联tcpcopy或者利用代理进行多份复制,可以构造无限在线压力,满足中小网站压力测试要求
二、测试环境:
XX.XX.28.7: 模拟线上服务器
环境设置 |
IP XX.XX.28.7 |
模拟线上服务器 |
备注 |
硬件环境 |
CPU 4核 |
内存 512M |
|
软件环境 |
LIGHTTPD |
PHP |
|
XX.XX.28.11: 模拟测试服务器
环境设置 |
IP XX.XX.28.11 |
模拟线上服务器 |
备注 |
硬件环境 |
CPU 4核 |
内存 512M |
|
软件环境 |
LIGHTTPD |
PHP |
|
XX.XX.28.11: 压力服务器
环境设置 |
IP XX.XX.28.13 |
压力服务器 |
备注 |
硬件环境 |
CPU 4核 |
内存 512M |
|
软件环境 |
webbench |
|
|
三、软件安装:
在测试机和线上服务器分别安装
找最新的版本,或者稳定的版本,我测试的是tcpcopy-0.3.1.tar.gz
./configure
make
make install
四、软件启动:
测试机:
modprobe ip_queue # 添加 ip_queue 模块,可以使用lsmod检查是否加载
iptables -I OUTPUT -p tcp --sport 'port' -j QUEUE # 昨天折腾很久就是因为这条没执行。Port为需要复制的端口号
./interception #在安装目录执行,/usr/local/bin
线上服务器:
./tcpcopy 本地IP 本地端口 远处服务器IP 远处服务器端口
例如:
/usr/local/bin/tcpcopy xx.xx.28.7 80 xx.xx.28.11 80
就是把xx.xx.28.7 80数据复制至远方xx.xx.28.11 80
参考文档:
五、数据视图
六、 测试结果
测试参数:
webbench -c 4000 -t 20
测试代码
test_1.php
$num= $_GET['num'];
$sum=0;
for ( $i=0 ; $i < $num ; ++$i )
{
$sum += $i ;
}
echo $sum;
?>
通过对比access.log文件条数:
线上服务器 147385
测试服务器 67627 丢失率在54.1%