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 端口。

适用场景:放大引流主要用于线上压力较小时,想要通过无限构造压力通过成倍引流达到对测试服务器进行压力测试的目的。

最新文章

  1. Android Studio NDK 开发 问题记录
  2. Windows操作系统优化(Win7版) - 进阶者系列 - 学习者系列文章
  3. haproxy 实现多域名证书https
  4. wget命令详解
  5. UVM的类库
  6. tcpdump 时报ServFail 0/0/1 (97)
  7. 一个快速查看API的汇编和机器码的工具.发布源码
  8. Java设计模式之责任链设计模式
  9. angularjs-ngModel 控制页面的宽度
  10. 三层架构与MVC
  11. Zkui安装
  12. Redis 集群搭建详细指南
  13. STM32W108无线射频模块通用IO接口应用实例
  14. jQuery – AJAX get() 和 post() 方法
  15. REST风格框架实战:从MVC到前后端分离(附完整Demo)
  16. 关于创建String对象过程的内存分配
  17. ACM-ICPC 2017 Asia Xi'an A XOR (线性基+线段树思想)
  18. DFP算法(转载)
  19. WPF DataGrid分组和排序
  20. linux的systemctl 命令用法 转

热门文章

  1. spring in action 学习笔记六:bean在不同情况下的默认id号或者将名字
  2. Heine-Borel定理
  3. FreeFileSync
  4. Http错误大全
  5. python列表里的字典元素去重
  6. HDU RPG的错排 【错排&&组合】
  7. Linux内核实践之tasklet机制【转】
  8. shiro配置参考(二)可以和mybatis的配置放在一个文件中(不建议这样,可以拆分开来,注意相关配置即可)
  9. Python3在Windows安装配置及简单试用
  10. UVA 11149.Power of Matrix-矩阵快速幂倍增