- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * LPF linux packet filter * * * * * * * * * * * * * * * * * * * * * * * TCPCOPY 王斌 2011-09-22 声明 偶中文很差,敬请谅解 文中中英文混杂,敬请谅解 如有不对,敬请谅解 内容 基础知识 TCPCOPY详细介绍 实战 注意事项 总结 基础知识 TCP/IP protocol Linux Kernel Raw Socket Netlink 基础知识---TCP/IP协议 基础知识---Linux Kernel 基础知识---Raw Socket 基础知识---Netlink Linux Netlink, which is used in Linux both as an intra-kernel messaging system as well as between kernel and user space. 一般而言,防火墙都是嵌入在Linux内核协议栈的处理过程中,运行在内核地址空间。这就要求开发者深入理 解和掌握内核,以及内核协议栈的代码。对于普通开发者来说,此要求显然过于苛刻。为此,Linux内核在Netfilter框架的基础上提供了IP Queue机制,使得基于用户态(User Mode)的防火墙开发成为可能。 NetLink是Linux系统特有的、基于Socket编程接口的通信机制。 NetLink Netlink Filter TCPCOPY详细介绍 定义 架构 Request Packets特点 实现策略 功能 应用领域 意义 使用方法 TCPCOPY定义 请求复制工具 TCPCOPY是基于底层的请求复制工具 TCPCOPY是不可靠的,类似于UDP 类似于数据镜像 TCPCOPY---Architecture TCPCOPY---client TCPCOPY---server TCPCOPY---Request Packets特点 Client packets(客户端过来的packets) Local packets(本地包) Nonlocal inter-server packets Keepalive connection Short connection TCPCOPY---实现策略 解决包复制转发的策略 简单策略(原王波版本) 自动机(新版本) TCPCOPY---功能 分布式压力测试工具,利用在线数据,可以测试系统能够承受的压力大小(远比ab压力测试工具真实地多),找出系统瓶颈所在 高压下提前发现潜在bug 普通上线测试,可以发现新系统是否稳定,提前发现上线过程中会出现的诸多问题,让开发者有信心上线 对于后端的短连接,请求丢失率非常低(1/10万),可以应用于热备份 TCPCOPY---应用领域 什么时候要用这个? 上线没有信心 单元测试不够充分 对新系统不够有把握(例如membase取代memcached) 对系统能够承受的压力没有把握(例如新机器上线) 哪些场合? 需要找出系统性能瓶颈的场合 可以丢请求的场合,并且是tcp应用 例如:Web服务,tcp socket通信,nginx取代apache的场合,membase取代memcached的场合 TCPCOPY---意义 零失误,领导高兴,你也高兴 对你的系统更加了解 了解底层是如何工作的 TCPCOPY---使用方法 TCPCOPY server 1)启动内核模块ip_queue (modprobe ip_queue) 2)设置要截获的端口,并且设置对output截获 iptables -I OUTPUT -p tcp --sport port -j QUEUE 3)./interception 注意(如果已经启动ip_queue和已经设置iptables,只需要运行第3项) TCPCOPY client ./tcpcopy 本地ip地址1|本地ip地址2|… 本地port 远程ip地址 远程port 实战 广告投放系统(分单机器和多机器请求复制) adclient请求复制 adserver请求复制 userserver请求复制 开源nginx hmux协议 Memcached 复制请求到membase中去 实战---广告投放系统特点 实战--- adclient 特点 客户端请求packets比较复杂 特点 请求复制丢失率在0.5%以下 多机器测试,发现能够承受4000次每秒的请求,ab压力测试能够承受20000次每秒的请求,说明ab不真实 实战--- adserver 特点 连接是keepalive的 有些连接很长时间不会被调用 连接会服务大量请求 一般很少出现丢包 效果 单机器请求
原创力文档


文档评论(0)