tcpcopy,模拟在线压力测试的好帮手

标签: tcpcopy 模拟 在线 | 发表时间:2011-10-22 11:05 | 作者:yejr kissingwolf
出处:http://imysql.cn

主要信息来自:http://code.google.com/p/tcpcopy/

tcpcopy是一个基于底层的应用请求复制(所有基于tcp的packets)开源项目,可用于替代ab做在线模拟压力测试,可转发各种在线请求到测试服务器上,进行较为详尽的近乎实际的测试,从而避免了新业务、系统上线带来的潜在问题。

tcpcopy的四大功能:

1)分布式压力测试,将多个前段请求集中到某个后端进行压力测试
2)上线前测试,检验新系统可靠性,提前发现潜在问题
3)对比测试,同样请求,针对不同或不同版本程序,可以做性能对比等试验
4)应用热备份,对于后端的短连接,请求丢失率非常低(1/10万)

tcpcopy具有以下几个特点:

1)实时转发
2)近乎真实效果
3)对在线系统影响很小
4)操作简单
5)分布式
6)意义非凡

使用tcpcopy非常简单,下载源码,编译,按照说明,几个步骤很快就能使用。

关于tcpcopy使用的一些注意事项有:

1)Linux平台,内核2.6+
2)TCPCOPY类似于UDP,所以会丢包,进而丢失请求
3)本系统不支持域名,只支持ip地址
4)Local Requests,请设置lo MTU不超过1500,并且在配置文件中不要设置127.0.0.1地址,
要设置内网或者外网地址
5)TCPCOPY server有可能会成为性能瓶颈
6)丢失请求率跟网络状况有关,最好在内网内复制请求
7)TCPCOPY中的tcpcopy和interception程序运行需要root权限
8)TCPCOPY只与ip、tcp层的数据有关,如果请求验证与tcp层以上的协议有关,则系统不能正常运行。
例如:mysql连接协议,由于权限认证与tcp层上面的mysql协议有关,所以复制过去的请求会被目
标测试服务器认为非法请求,这个时候需要针对mysql协议作具体针对性的处理,tcpcopy程序才能正常运行
9)程序更新非常快,所以最新版本在svn上面
svn checkout http://tcpcopy.googlecode.com/svn/trunk/ tcpcopy
10)目前追求的是功能,性能优化和代码重构会在稳定以后进行
11)长response目前支持不是很好,将在下一个版本改进
12)如果有问题,请注意error.log文件提示的错误信息 (email: 163.beijing@gmail.com)
13)源代码已经转到github

除了这些,下面是我在用tcpcopy测试mysql时的一些小结:
1) 测试MySQL时,测试机需要开启 skip-grant-tables,否则无法正常进行,因为MySQL需要进行认证;在线服务器无需调整
2) 测试过程中不能执行flush privileges,否则上述选项会失效
3) 每次启用tcpcopy时,都需要重启mysqld,不能在线直接应用,否则不能转发包(最新版本已经解决这个问题)
4) 用sysbench进行测试过程中,prepare时,在线服务器能创建测试表,测试机无法创建新表
5) 需适当调大内核参数:ip_queue_maxlen,否则会出现大量的queue dropped
6) 无法完全保证在线服务器和测试机的数据一致性,只能做为模拟线上压力,提前进行bug测试等用途

相关 [tcpcopy 模拟 在线] 推荐:

tcpcopy,模拟在线压力测试的好帮手

- kissingwolf - MySQL 中文网 -
主要信息来自:http://code.google.com/p/tcpcopy/. tcpcopy是一个基于底层的应用请求复制(所有基于tcp的packets)开源项目,可用于替代ab做在线模拟压力测试,可转发各种在线请求到测试服务器上,进行较为详尽的近乎实际的测试,从而避免了新业务、系统上线带来的潜在问题.

分布式TCP压力测试工具 tcpcopy

- - haohtml's blog
tcpcopy是一种应用请求复制(基于tcp的packets)工具,其应用领域较广,我们曾经应用于网易的广告投放系统,urs系统,nginx hmux协议开发等系统,避免了上线带来的很多问题. 总体说来,tcpcopy主要有如下功能:. 1)分布式压力测试工具,利用在线数据,可以测试系统能够承受的压力大小(远比ab压力测试工具真实地多),也可以提前发现一些bug.

基于TCPCopy的Dubbo服务引流工具-DubboCopy

- - zzm
TCPCopy顾名思义,就是一个可以将tcp流量复制的工具(其实也可以复制UDP). 有了这样一个工具,我们就可以真实的复制线上流量,然后将这些流量复制到我们的测试服务器上. 这样就可以很容易模拟线上真实用户的访问,做一些功能上的,性能上的测试. 而且经过实际测试发现TCPCopy对线上机器的资源消耗也是极低的.

在线相机模拟器让你快速掌握摄影基本功

- Gang - nPhoto新摄影在线杂志
相信大多数初学者刚刚拿到单反相机后,都会对快门、光圈、感光度、焦距这些摄影基本功感到一头雾水吧. 即使看过几遍说明书,好像也还没有深刻领悟这些参数,更别提灵活运用了. 要想快速掌握这些基本操作,最好的也是唯一的办法就是大量练习. 不过虽然数码相机拍摄成本几乎为0,对心急的用户来说还是显得太“耽误”时间了.

Workor(蜗壳)推出轻量级在线视频沟通工具,想为远程工作团队模拟真实办公环境并提高沟通效率

- - 36氪 | 关注互联网创业
对远程办公团队而言,沟通和协作不像是直接走到桌边开聊那样方便,对于沟通和协作工具的要求可能是越快唤起越好. 最近上线的 Workor(蜗壳)就是一款轻量级的在线视频沟通协作工具,想为远程工作团队模拟真实办公环境并提高沟通效率. Workor是免安装的在线视频工具,目前视频通话仅支持Chrome浏览器.

JavaScript PC 模拟器

- kira - LinuxTOY
很难想象竟然用了这么久,Linux 才可以运行在浏览器的 JavaScript 引擎里面,要知道2008 年就可以在土豆上运行了~. 作者 Fabrice Bellard 使用 JavaScript 编写了一个简单的 PC 模拟器,包含32位 x86 兼容 CPU、8259 可编程中断控制器、8254 可编程中断计时器.

JavaScript Gameboy Color模拟器

- ashuai - Solidot
程序员Grant Galitz发布了一个用HTML5/JavaScript编写的GameBoy Color模拟器(源代码),可以运行储存在本地的ROM镜像,游戏运行速度正常. 也有其他开发者用JavaScript编写出了启动Linux的X86模拟器.

地形模拟演示Demo

- kongshanzhanglao - 博客园-首页原创精华区
地形渲染的首先是创建一个三角网络平面,然后调整平面顶点的y高度值,模拟地面的山丘和山谷,最后再绘制贴图效果. 本文首先介绍如何生成三角网络平面. 然后介绍如何通过高度图调整平面高度. 以及使用BlendMap和3种材质绘制贴图效果的方法. 最后演示如何调整摄像机位置和移动速度,在地面上行走. 一个m*n个顶点的平面由2*(m-1)*(n-1)个三角形组成.

模拟银河系的演化

- Yan - Solidot
加州大学Santa Cruz分校和瑞士苏黎世理论物理研究院科的科学家利用NASA的Pleiades超级计算机,历时9个月时间的运算,模拟了星系的起源和演化. 预印本发表在arXiv.org上. 他们所模拟的星系称为Eris. 研究小组首先从低分辨率开始,模拟最初的暗物质演化成一个类银河星系的控制中心,然后放大中心光环区,引入气体粒子并大幅度提高分辨率,再追踪粒子间的相互作用的演化.