如何构造具有在线效果的无限压力(试验采用的tcpcopy为0.5以下的老版本)
来源:互联网 发布:caffe dropout 编辑:程序博客网 时间:2024/05/01 14:13
我们做一个实验,在这个实验中,我们有四台机器,208,217,148,161,其中208和217在北京,148和161在杭州。
我们在208中利用压力测试工具发起压力请求到217中去,在217上利用tcpcopy把请求复制到148中去,再在148复制请求到161中去。
我们先准备准备:
161上,我们设置如下:
[root@bgp176_161 bin]# iptables -I OUTPUT -p tcp --sport 8080 -j QUEUE (ip queue模块之前已经启动)
[root@bgp176_161 bin]# ./interception
148上,我们设置如下:
[root@bgp176-148 ~]# iptables -I OUTPUT -p tcp --sport 8080 -j QUEUE
[root@bgp176-148 bin]# ./interception
[root@bgp176-148 bin]# ./tcpcopy xxx.xxx.xxx.148 8080 xxx.xxx.xxx.161 8080
I am booted
217上,我们设置如下:
[root@tuan tcpcopy]# ./tcpcopy xxx.xxx.xxx.217 18081 xxx.xxx.xxx.148 8080
I am booted
(217 resin开启18081端口)
208运行命令如下:
[wangbin@yz250-208 tmp]$ ./httpsender -c 1 -n 3000 -r 0 -H "Connection:Close" -H "Host:test.163.com" http://xxx.xxx.xxx.217:18081/xxx.jsp
217,148,161启动resin服务器,各台服务器都会访问同一台数据库,我们的目的就是构造无限在线请求压力测试db(这里机器有限,所以请求也是有限)
运行后效果如下:
148上面的resin日志
[wangbin@bgp176-148 logs]$ wc -l access.log
3000 access.log
161上面的resin日志:
[wangbin@bgp176_161 logs]$ wc -l access.log
3000 access.log
从上面我们可以看出,从217复制的请求都到148上面去了,148上面的请求也同样被复制到161上面去了.
由于请求都到了相应的resin服务器,这些请求都会访问db,造成db的压力增加到原来的3倍,效果会和实际效果差不太多,唯一缺陷是同一个请求会被调用三次,这点不是很真实,但这是从不同的服务器过来的,总比ab等压力测试工具真实地多.
我们对某系统实战一下
141是在线服务器,真实的
[root@bgp176-141 work]# ./tcpcopy xxx.xxx.xxx.137:xxx.xxx.xxx.140 80 xxx.xxx.xxx.148 18080
I am booted
复制请求到148中去
[root@bgp176-148 bin]# ./interception
[root@bgp176-148 bin]# ./tcpcopy xxx.xxx.xxx.148 18080 xxx.xxx.xxx.161 18080
I am booted
复制请求到161中去
[root@bgp176_161 bin]# ./interception
其中148和161的nginx服务器会随着情况访问148后面的应用服务器
[wangbin@bgp176-141 logs]$ ps aux|grep tcpcopy
root 28094 36.8 0.6 39136 26208 pts/0 Sl+ 10:11 1:08 ./tcpcopy xxx.xxx.xxx.137:xxx.xxx.xxx.140 80 xxx.xxx.xxx.148 18080
wangbin 28205 0.0 0.0 61188 732 pts/1 S+ 10:14 0:00 grep tcpcopy
148上面nginx的日志情况如下:
[wangbin@bgp176-148 logs]$ tail -n 1000000 access.log |grep '11/Nov/2011:10:15'|wc -l
117586
148上面的应用服务器压力如下:
[wangbin@bgp176-148 logs]$ grep 'Fri 10:15:' access_1111_10.log |wc -l
41837
我们复制148的请求到161中去
[wangbin@bgp176-148 logs]$ ps aux|grep tcpcopy
root 9667 41.0 1.1 36500 23560 pts/1 Rl+ 10:18 0:20 ./tcpcopy xxx.xxx.xxx.148 18080 xxx.xxx.xxx.161 18080
wangbin 9670 0.0 0.0 4000 692 pts/2 S+ 10:19 0:00 grep tcpcopy
我们可以看到10:18分开始从测试服务器148复制请求到测试服务器161上面去的.
10:21分
在线服务器141上面的nginx负载如下:
[wangbin@bgp176-141 logs]$ tail -n 1200000 access.log |grep '2011:10:21' |wc -l
115295
测试服务器148上面的nginx负载如下:
[wangbin@bgp176-148 logs]$ tail -n 1000000 access.log |grep '11/Nov/2011:10:21'|wc -l
115237
测试服务器161上面的nginx负载如下:
[wangbin@bgp176_161 logs]$ tail -n 1000000 access.log |grep '11/Nov/2011:10:21'|wc -l
114535
测试服务器148上面的应用服务器负载如下:
[wangbin@bgp176-148 logs]$ grep 'Fri 10:21:' access_1111_10.log |wc -l
81269
我们可以看出148上面的应用服务器负载比之前增加了一倍左右.
如果你想增加压力,利用级联tcpcopy,会是一个不错的选择
- 如何构造具有在线效果的无限压力(试验采用的tcpcopy为0.5以下的老版本)
- mysqlcopy 版本初步试验结果 (非skip, 采用的tcpcopy为 0.5以下的版本)
- 如何利用tcpcopy来试验nginx hmux模块(以下所涉及到的tcpcopy,均是采用的是0.5以下的版本)
- tcpcopy分布式压力测试,效果堪比真实压力,远胜ab(注意采用的工具是tcpcopy 0.5以下的版本)
- 利用tcpcopy,对nginx进行压力测试,效果见正文(注意用的是tcpcopy 0.5以下的版本)
- tcpcopy长期运行展示(采用的是tcpcopy 0.5以下版本)
- (转)tcpcopy,模拟在线压力测试的好帮手
- tcpcopy,mysql模拟在线压力测试的好帮手
- 注意,tcpcopy 0.5版本和tcpcopy 0.4版本用法有很大的差别,而tcpcopy 1.0和tcpcopy 0.9差别也非常大
- easyui 老版本(1.31版本及以下的版本怎么添加多重验证)
- 如何无限增大在线压力?
- 如何无限增大在线压力?
- tcpcopy测试mysql的初步效果展示
- 分布式TCP压力测试工具 tcpcopy-有感兴趣的没?
- tcpcopy---从IP层来截取请求,转发给目标测试服务器,达到在线压力甚至极限压力测试的目的
- 如何制作具有立体效果的地图
- 利用tcpcopy,如何复制在线请求到lvs的子系统中去?
- 网络地址为172.16.0.0,采用子网掩码255.255.224.0 .以下说法正确的是()
- Cursor not returned from query
- JAVA线程的interrupt
- 即将上市的79美金Kindle连成本都赚不回来
- Data Access Application Block
- SD卡详讲
- 如何构造具有在线效果的无限压力(试验采用的tcpcopy为0.5以下的老版本)
- VSS Admin 密码的破解方法
- SQL_DML语句基础知识(二)
- Linux 桌面举步维艰的根源在于没有足够的生产力
- Skyline开发入门(C#)
- 一个百度一样的分页
- Git跨平台中文乱码临时解决方案
- jstl标签的用法(一)
- WebKit加载网页流程