容量测试之tcpcopy引流模式
tcpcopy 给用户提供了很多命令参数来修改引流的模式和设置,详细可以查阅手册。在这里把几种常见的引流方式做个归纳小结,以tcpcopy传统架构使用命令举例。
1.分布式引流
用法:Tcpcopy可以通过-x参数实现将多台服务器的请求复制到同一台测试服务器上面去,-x参数常用于分布式引流的场合,可以从多节点进行引流复制。
./tcpcopy -x 8001- 192.168.1.1:8080
./tcpcopy -x 8001- 192.168.1.1:8080 -f 1
./tcpcopy -x 8001- 192.168.1.1 8080 -f 2
适用场景:将线上一个集群的压力复制到测试服务器,适用于线上集群单节点压力小的情况,可以通过这种方式尽量覆盖线上所有的请求,这种方式常被用于容量规划之线上压测方式中的一种。
2.分层引流
对于一个复杂的线上系统,提供多种业务如图片、存储等,各种业务压力是不均衡的,如果在系统的最前端入口进行复制引流到测试环境,那么部分功能模块的压力将会很大,而部分功能模块的压力很小压不到上限,这时候分层引流就可以解决这样的问题,在系统架构每一层进行引流复制压测,尽量覆盖多的节点。
3.离线回放
用法:离线回放模式需要再configure 的时候加上–enable-offline 参数,离线回放还需要安装pcap 库和pcap 开发库(需要用到pcap 库的头文件)另外运行的时候需要指定-i 参数。
./tcpcopy -x 8001- 192.168.1.1:8080 -i ./online.pcap
这里oline.pcap(利用类似于tcpdump 的工具来抓请求数据包,存放到pcap 格式的文件中去)文件作为数据源,把请求转发到测试服务器上。此外增加-a参数对请求数据包的访问进行加速
./tcpcopy -x 8001- 192.168.1.1:8080 -a 2 -i online.pcap
假设online.pcap 文件为在线请求数据包的抓包文件,时间间隔为60 分钟执行此命令后,离线回放加速了2 倍,只需要30 分钟离线回放就能完成,-a 参数设置不宜设置过大,越大丢请求的概率也越大。
适用场景:由于离线方式依赖于抓包工具(如tcpdump),而抓包工具在压力比较大的场合一般丢包非常严重,而且还会严重影响在线IO,因此一般不推荐在高压情况下使用离线回放方式。
4.部分引流
用法:Tcpcopy可以通过-r参数实现在线服务器应用的部分流量复制,参数范围是1~99,其它值都是全流量复制。-r 参数常用于测试服务器配置不如在线服务器的场合。
./tcpcopy -x 8001- 192.168.1.1:8080 -r 20
这里tcpcopy 复制在线服务器8001 端口应用的20%流量给测试服务器,这里的20%是根据session(这里session 是由客户端IP,客户端端口决定)来统计的。
适用场景:部分引流主要适用于线上请求压力很多,而测试环境的处理能力较弱,这时候就只需复制部分线上的请求到测试环境,就可以压到测试环境的极限。
5.放大引流
用法:Tcpcopy可以通过-n参数对在线服务器应用的流量进行复制放到到测试服务器,如果你要进行多重复制,-n参数
./tcpcopy -x 8001- 192.168.1.1:8080 -n 3
表示复制3 倍的在线服务器的8001 端口应用请求流量到192.168.1.1 的8080 端口。
适用场景:放大引流主要用于线上压力较小时,想要通过无限构造压力通过成倍引流达到对测试服务器进行压力测试的目的。
容量测试之tcpcopy引流模式的更多相关文章
- 利用tcpcopy引流过程
tcpcopy是一个tcp流量复制工具,当前还支持udp和mysql流量的复制. 目的: 将机器10.24.110.21的5000端口流量引流到机器10.23.25.11的5000端口. 示例:将10 ...
- 基于TCPCopy的Dubbo服务引流工具-DubboCopy
TCPCopy顾名思义,就是一个可以将tcp流量复制的工具(其实也可以复制UDP).有了这样一个工具,我们就可以真实的复制线上流量,然后将这些流量复制到我们的测试服务器上.这样就可以很容易模拟线上真实 ...
- HTTP引流神器Goreplay详解【官译】
0.背景 校验系统的正确性和可靠性时,仅靠用例场景无法覆盖全生产环境下的所有场景,需要一套引流工具,在系统正式上线前,用线上的请求测试待上线系统,在正常请求下,是否有报错:在数倍请求下,系统的性能瓶颈 ...
- TCP的流模式与UDP的报文模式对比
1 案例背景 在学习TCP-IP协议详解卷一时,读到介绍TCP协议的部分,发现TCP的首部是没有报文总长度字段的,而在UDP中是有的,对这个问题的思考引出了两者之间的区别. 2 案例 ...
- 4天赚4000RMB 引流秘籍 卑鄙无耻之徒
他说:有什么引流秘籍吗? 我说:贴吧.天涯.论坛都不错,只要不明着发广告,每天被动加几十个人轻轻松松的,如果执行力好,几百上千都有可能. 他说:我该怎么操作. 我说:网上找点好的帖子,简单修改一下部分 ...
- 推荐一款简单易用线上引流测试工具:GoReplay
一. 引流测试产生背景 日常大部分的测试工作都是在测试环境下,通过模拟用户的行为来对系统进行验证,包括功能以及性能.在这个过程中,你可能会遇到以下问题: 用户访问行为比较复杂,模拟很难和用户行为一致, ...
- gor实现线上HTTP流量复制压测引流
一.使用背景 gor 是一款go语言实现的简单的http流量复制工具,它的主要目的是使你的生产环境HTTP真实流量在测试环境和预发布环境重现.只需要在 代理例如nginx入口服务器上执行一个进程,就可 ...
- SEM推广引流效果的因素有哪些呢?
决定搜索引擎推广效果的基本就是流量,所引流过来的是有效流量还是无效流量,直接决定了推广的效果!那我们如何才能引流到最精准的流量把流量变现呢? 第一个就是关键词的匹配模式 "民营企业" ...
- Android NDK 直播推流与引流
本篇介绍一下直播技术中推流与引流的简单实现. 1.流媒体服务器测试 首先利用快直播 app (其他支持 RTMP 推流与引流的 app 亦可)和 ffplay.exe 对流媒体服务器进行测试. 快直播 ...
随机推荐
- dom内容区域的滚动overflow,scroll
去掉手机上点击点中的默认高亮效果 -webkit-tap-highlight-color: rgba(0,0,0,0); ios手动启动一下监听touch事件以响应css伪类: document.ad ...
- MFC 按钮
((CButton *)GetDlgItem(IDC_RADIO1))->SetCheck(TRUE);//选上 ((CButton *)GetDlgItem(IDC_RADIO1))-> ...
- 各版本Sql Server下载地址全
SQL Server 2014简体中文企业版 文件名:cn_sql_server_2014_enterprise_edition 32位下载地址:ed2k://|file|cn_sql_server_ ...
- 转 C++中的static关键字
C++中的static关键字 C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static.前者应用于普通变量和函数,不涉及类:后者主要说明static在类中的作 ...
- 查看gcc/g++默认include路径
转自:http://gcc.gnu.org/ml/gcc-help/2007-09/msg00205.html `gcc -print-prog-name=cc1plus` -v `g++ -prin ...
- flask的orm框架(SQLAlchemy)-创建表
# 转载请留言联系 ORM 是什么? ORM,Object-Relation Mapping.意思就是对象-关系映射.ORM 主要实现模型对象到关系数据库数据的映射. 优点 : 只需要面向对象编程, ...
- 设计模式-python实现
设计模式是什么? 设计模式是经过总结.优化的,对我们经常会碰到的一些编程问题的可重用解决方案.一个设计模式并不像一个类或一个库那样能够直接作用于我们的代码.反之,设计模式更为高级,它是一种必须在特定情 ...
- USACO 4.4.2 追查坏牛奶 oj1341 网络流最小割问题
描述 Description 你第一天接手三鹿牛奶公司就发生了一件倒霉的事情:公司不小心发送了一批有三聚氰胺的牛奶.很不幸,你发现这件事的时候,有三聚氰胺的牛奶已经进入了送货网.这个送货网很大,而且关 ...
- bzoj 2843: 极地旅行社
Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 1077 Solved: 645[Submit][Status][Discuss] Descripti ...
- 六. 异常处理8.throws子句
如果一个方法可以导致一个异常但不处理它,它必须指定这种行为以使方法的调用者可以保护它们自己而不发生异常.做到这点你可以在方法声明中包含一个throws子句.一个 throws 子句列举了一个方法可能抛 ...