tcpcopy线上部署以及github提交的一个issue
来源:互联网 发布:网络做饭卖用啥软件 编辑:程序博客网 时间:2024/06/11 14:40
给自己留存一个美好的回忆
github提交的issue
● 发现tcpcopy在开启单个进程多倍流量转发时会出现cpu单核心使用率过高导致rst包的现象,后来通过抓包排查等多钟方法以外发现是单进程tcpcopy的cpu无法响应造成的,后来启动6个tcpcopy进程同时一倍流量没有啥问题。
● Online Server(OS):上面要部署 TCPCopy,从数据链路层(pcap 接口)抓请求数据包,发包是从IP层发出去;
● Test Server(TS):最新的架构调整把 intercept 的工作从 TS 中 offload 出来。TS 设置路由信息,把 被测应用 的需要被捕获的响应数据包信息路由到 AS;
● Assistant Server(AS):这是一台独立的辅助服务器,原则上一定要用同网段的一台闲置服务器来充当辅助服务器。AS 在数据链路层截获到响应包,从中抽取出有用的信息,再返回给相应的 OS 上的 tcpcopy 进程。
请配合下图1理解:
10.116.95.87 target server10.116.95.81 intercept/usr/local/intercept/sbin/intercept -i eth1 -F 'tcp and src port 9999' -l /data/intercept.log -d10.116.95.82线上/usr/local/tcpcopy/sbin/tcpcopy -x 80-10.116.95.87:9999 -s 10.116.95.81 -m 20480 -c 192.168.2.x -n 1 -l /data/tcpcopy.log -d
线上服务器10.116.95.82## 部署cd /usr/local/src && rsync -avzP bigdata.vxlan.net::wVioz35SWO9zywesmagfOrP9XjigoF8j/tcpcopy/* .cd /usr/local/src/tcpcopy && ./configure --prefix=/usr/local/tcpcopy/ && make -j 10 && make installtarget server10.116.95.81yum install -y libpcap-develmkdir /usr/local/src/interceptcd /usr/local/src/intercept && rsync -avzP bigdata.vxlan.net::wVioz35SWO9zywesmagfOrP9XjigoF8j/tcpcopy/intercept/* .cd /usr/local/src/intercept && ./configure --prefix=/usr/local/intercept/ && make -j 10 && make install使用第一步10.116.95.87route add -net 192.168.2.0/24 gw 10.116.95.81#route del -net 192.168.2.0/24 gw 10.116.95.8210.116.95.81/usr/local/intercept/sbin/intercept -i eth1 -F 'tcp and src port 9999' -l /data/intercept.log -d第二步10.116.95.82/usr/local/tcpcopy/sbin/tcpcopy -x 80-10.116.95.87:9999 -s 10.116.95.81 -m 20480 -c 192.168.2.x -n 1 -l /data/tcpcopy.log -d/usr/local/tcpcopy/sbin/tcpcopy -x 80-10.116.95.87:9999 -s 10.116.95.81 -m 20480 -c 192.168.2.x -n 1 -l /data/tcpcopy.log -d
内核调一调
内核参数调整一下kernel.sysrq = 1kernel.core_uses_pid = 1kernel.msgmnb = 65536kernel.msgmax = 65536kernel.shmmax = 68719476736kernel.shmall = 4294967296net.ipv4.ip_forward = 0net.ipv4.conf.default.accept_source_route = 0net.ipv4.tcp_syncookies = 1#############################net.ipv4.conf.default.rp_filter = 0net.ipv4.conf.all.rp_filter = 0net.ipv4.conf.all.arp_announce = 2##net.nf_conntrack_max= 2031616##net.netfilter.nf_conntrack_checksum = 0##net.netfilter.nf_conntrack_tcp_timeout_established= 38############ bigdata define ###########net.core.somaxconn = 20480net.ipv4.ip_local_reserved_ports = 8000-9000,28000-29000net.ipv6.conf.all.disable_ipv6 = 1net.core.netdev_max_backlog = 20480net.ipv4.tcp_max_tw_buckets = 800000net.ipv4.tcp_max_syn_backlog = 20480net.ipv4.tcp_keepalive_time=30net.ipv4.tcp_keepalive_intvl=1net.ipv4.tcp_keepalive_probes=3##net.netfilter.nf_conntrack_max = 4096000
如果采用的是IP Queue模块来截获响应包,则intercept程序密切跟ip queue内核模块相关,所以当压力很大的时候请求丢失率很高,需要优化sysctl系统参数才能达到好的效果(通过cat /proc/net/ip_queue,查看ip queue运行情况,如果Queue dropped的数值不断增大,则需要修改ip_queue_maxlen参数,比如echo 4096 > /proc/sys/net/ipv4/ip_queue_maxlen;如果Netlink dropped的数值不断增大,修改net.core.rmem_max和net.core.wmem_max参数,比如sysctl -w net.core.rmem_max=16777216和sysctl -w net.core.wmem_max=16777216)从给的少量log来看,存在着ip_queue内核模块丢响应包的可能性。先从ip queue入手,调大后,看是否还有此问题pf_ring安装yum -y install subversion flex bison ethtool
阅读全文
0 0
- tcpcopy线上部署以及github提交的一个issue
- [Github] 把自己做完的代码提交(commit以及push)到线上公共项目中
- TCPCopy 线上流量复制工具
- GitHub issue
- vue-cli的线上部署
- 当 App 崩溃的时,把崩溃信息保存到本地的同时,自动给 GitHub 提交崩溃 issue。
- 使用 tcpcopy 线上导流及回放
- iOS ,不提交审核,修复某些线上bug以及线上更新
- 线上环境部署MongoDB的官方建议
- vue-cli的线上部署 run build
- Team Foundation Server 2010 安装、部署与配置(七):创建 Team Project 时的一个 Issue:TF218027
- Team Foundation Server 2010 安装、部署与配置(七):创建 Team Project 时的一个 Issue:TF218027 .
- Linux shell提交github安装以及使用
- 超简单玩转 GitHub 的问题单(issue)
- 超简单玩转 GitHub 的问题单(issue)
- 超简单玩转 GitHub 的问题单(issue)
- 超简单玩转 GitHub 的问题单(issue)
- TCPCOPY的使用
- 用JS改变html样式
- input那些事
- HDU3966 Aragorn’s Story
- OpenGL蓝宝书源码学习(十九)第六章——LitTexture.cpp
- 正则
- tcpcopy线上部署以及github提交的一个issue
- 索引提高sql查询效率速成宝典
- Wireshark之认识分析数据包
- 关于Java多线程------(1,认识多线程)
- h5 canvas 鼠标绘画
- Flask 局域网内访问
- webpack踩坑记
- C++ 之独立编译打印输出
- POJ3237 Tree