使用tcpcopy拷贝线上流量压测测试环境

tcpcopy项目地址:https://github.com/session-replay-tools/tcpcopy

作者地址:http://blog.csdn.net/wangbin579

1:环境描述

架设三台服务器

10.53.132.52

10.53.132.55

10.53.132.101

101我们认为是线上服务器,52和55是测试环境。我们在101上运行tcpcopy把线上流量拷贝到55,在55上我们通过路由将应答转向52,在52上把应答丢弃。

分别在101和55上部署apache,端口是8090

2:步骤

101上部署tcpcopy

tcpcopy -x 8090-10.53.132.55:8090 -s 10.53.132.52 -c 192.168.100.x -n 5

将本机8090上的流量复制到55的8090端口。

-s指定intercept进程所在的服务器。(丢包服务器)

-c修改请求的host地址为192.168.100.x,以便在55上设置路由(设置路由是为了将应答转向52【丢包服务器】)

-n流量放大倍数

55上设置路由

route add -net 192.168.100.0 netmask 255.255.255.0 gw 10.53.132.52

52上运行intercept

intercept -i eth1 -F tcp and src port 8090 -d

参考地址

http://blog.csdn.net/wangbin579/article/details/8950282

http://blog.csdn.net/wangbin579/article/details/7476413

时间: 2024-10-09 10:13:10

使用tcpcopy拷贝线上流量压测测试环境的相关文章

【原创】MySQL Replay线上流量压测工具

一. 背景 去年做过一次mysql trace 重放的测试,由于performance schema本身采集样本的长度等限制,实际回放的成功率比较低. 最近找到一款开源的工具,基于TCPCopy实现了线上流量的仿真测试,这款开源工具是网易的王斌开发,后面很多公司的模拟在线测试都是基于TCPCopy实现. https://github.com/session-replay-tools/mysql-replay-module 1.实现原理 生产服务器上部署TCPCopy, 包捕获是在数据链路层增加一

使用tcpcopy复制线上流量进行测试

使用tcpcopy复制线上流量进行测试 online server 线上服务所在机器 10.136.11.4 部署tcpcopy sudo /usr/local/tcpcopy/sbin/tcpcopy -x ONLINE_PORT@ONLINE_SERVER_MAC_ADDR-10.136.11.5:TEST_PORT@TEST_SERVER_MAC_ADDR -s 10.136.11.3 -o eth4 -i eth4 -c 10.136.100.x -d -l ./tcpcopy.log

使用tcpcopy导入线上流量进行功能和压力测试

- 假设我们要上线一个两年内不会宕机的先进架构.在上线前,免不了单元测试,功能测试,还有使用ab,webbench等等进行压力测试. 但这些步骤非生产环境下正式用户的行为.或许你会想到灰度上线,但毕竟可能会影响到部分用户,这怎么对得起我们两年内不宕机的承诺呢? 好在网易的 王斌 开发了tcpcopy, 可以导入线上流量进行功能和压力测试. tcpcopy介绍 tcpcopy是一种请求复制工具.可以将线上流量拷贝到测试机器,实时的模拟线上环境.在不影响线上用户的情况下,使用线上流量进行测试,以尽早

tcpcopy复制线上流量

简介 TCPCOPY 是一个 tcp 流量的实时复制工具,其1.0版本由网易工程师 @tcpcopy 开发和维护.一般用来将生产环境的线上流量实时复制到测试环境进行测试.例如新系统上线前,如果我们希望进行一些基本的压力测试,那么我们可以直接利用 tcpcopy 来复制线上的流量过来对系统进行测试,这样的好处是测试数据接近真实水平,且实施起来相对简单.下面我们将通过一个真实的使用案例,来简单介绍 tcpcopy 的基本使用方法.我们假定读者对 tcp 以及路由相关基本知识有一定了解. 搭建流程 接

centos Ddos防范开源软件使用及apache ab压测 测试

1,检索特定字符的相同行,用于过滤点一些命令行的头说明 Advanced Policy Firewall (APF) 2,D(dos) deflate http://deflate.medialayer.com/ Installation wget http://www.inetbase.com/scripts/ddos/install.sh chmod 0700 install.sh ./install.sh Uninstallation wget http://www.inetbase.co

tcpcopy实战之拷贝生产服务器流量做压力测试

tcpcopy安装使用 一.下载安装首先,tcpcopy官方网址下载相关代码和文档:https://github.com/wangbin579/tcpcopy/downloads我使用的是比较新的0.6.5版本,上面的地址中也有文档可以下载.如果英语好的,可以自行去上面的地址下载使用.接下来就是安装了,在线上和目标服务器都要安装,#./configure#make#make install 二.配置使用2.1在测试机上配置:#modprobe ip_queue#modprobe -l | gre

JMeter在linux上分布式压测步骤(二)

哈喽,我又来了~ 前提:三台linux虚拟机,一台作为master,另外两台作为slave. 一.server端 1.修改1099端口,client和server通信的端口,可以不修改,默认就是1099 2.启动jmeter-server (这里启动的时候可以看到ip后面的端口不是1099,这里不用管,1099是client和server的通信端口,和这个没有关系) 二.client端:配置master和slave 1.进入到jmeter的bin目录下,打开jmeter.properties c

vue-cli 里如何让线上地址适配线下测试

1.在vue-cli里面的static里的文件是可以通过网址来访问的,而其他的文件是不能够被访问的 2.但是为能不在线下线上环境中频繁的切换ajax请求的地址可以配置线下设置,那么项目上线后就无须切换地址,例如线下测试地址是axios.get('/static/data/index.json'),但是线上的地址是axios.get('/app/v1/get-data') 3.如何配置 a.打开项目下的config->index.js的文件 b.在dev下面的proxyTable配置项中进行配置

JMeter在linux上分布式压测遇到的坑(三)

master和slave机要在同一网段内,才能做分布式(Jmeter要配环境变量,这样不用手动起server) 分布式不成功,解决方案: 1.master端和slave端要ping通 2.ping通后,telnet ip port (Linux端),看一下1099端口是否被占用 3.防火墙 4.jmeter的log,如果请求发过去,但是没有返回结果,看看网段的问题 主要步骤: master端修改: 1.修改remote_hosts=ip:port:改成要启动的Linux机的ip以及端口 slav