linux tc流量控制
tc流量控制
项目背景
- vintage3.0接口lookupforupdage增加一个策略,当带宽流量tx或rx超过40%,75%随机返回304;超过60%,此接口均返回304
- 为了对测试机器进行流量控制,使用了tc:设置网络传输速率;传输大文件:产生网络流量
生成大文件
dd if=/dev/zero of=test bs=1M count=10000
会生成一个10000M的test文件,文件内容为全0
文件比较大,同机房直接传输也需要几分钟
注意:文件传输需要在同机房,可以打满带宽;如果跨机房的话,无法打满带宽,也就十几兆左右。
tc简介
暂时没弄明白,请参考http://blog.csdn.net/daniel117/article/details/17350243
流量控制目标机器
- 假设eth0是服务器的外网网络接口(可以用ifconfig查一下目标机器使用的外网网络接口)。tc队列添加设备接口root为最上层句柄,标记类型默认使用1的class - tc qdisc add dev eth0 root handle 1: htb default 1
 解释:无论是队列还是class,filter,都有ID之类的标志符,一般都有parent(父,上层的),因为qdisc在顶部,所有parent无,用root字样标识,ID用1: 来标志;default 1表示当某个ip流不满足任何已设定的filter规则时,将自动归入class 1 中
- 在qdisc下建立一个class,来制定eth0控制通过本机到外网的速度 - tc class add dev eth0 parent 1: classid 1:1 htb rate 100mbit ceil 1000mbit
 解释:为eth0下的root队列1:0添加分类并命名为1:1,类型为htb,速度为100mbit,最大可以到1000mbit。
 特别说明:网卡计量用的bit,和我们通常计量的byte换算关系是8:1,所以100mbit的速率是12M,如果想设置流量为25M,rate为200mbit,如下- tc class add dev eth0 parent 1: classid 1:1 htb rate 200mbit ceil 1000mbit
 此处控制的流量是send(发送)即tx,如果想控制rx(接收)流量,需要设置发送流量的机器;比如想设置接收流量25M,那么需要设置发送流量机器tc rate 200mbit
实践
- 基于vintage项目背景,将vintage-server部署在10.13.1.135,启动vintage-server服务
- 模拟tx(send)流量超过40%,如48M - 对10.13.1.135进行流量控制
 - tc qdisc add dev eth0 root handle 1: htb default 1
 tc class add dev eth0 parent 1: classid 1:1 htb rate 400mbit ceil 1000mbit- 10.13.1.135创建一个大文件 dd if=/dev/zero of=test bs=1M count=10000
- 在10.13.1.134接收大文件test,nc -l 1234 >test
- 在10.13.1.135发送大文件test,nc 10.13.1.134 1234
 
- 大文件传输期间就可以进行自己的测试任务 
- 模拟rx(receive)流量超过60%,如72M - 对10.13.1.134进行流量控制
 - tc qdisc add dev eth0 root handle 1: htb default 1
 tc class add dev eth0 parent 1: classid 1:1 htb rate 400mbit ceil 1000mbit
 * 10.13.1.134发送大文件
 * 10.13.1.135接收大文件
自动化工具
待续
linux tc流量控制的更多相关文章
- Linux TC 流量控制介绍
		前段时间在做一些测试的时候接触到了Linux tc,因为需要对数据包添加延迟,用到了tc中的netem.添加简单的延迟非常简单,像这样一条命令就搞定了:$ tc qdisc add dev eth0 ... 
- Linux TC流量控制HOWTO中文版
		<本文摘自Linux的高级路由和流量控制HOWTO中文版 第9章节>网人郭工进行再次编译: 利用队列,我们可以控制数据发送的方式.记住我们只能对发送数据进行控制(或称为整形).其实,我们无 ... 
- Linux TC的ifb原理以及ingress流控-转
		原文:http://www.xuebuyuan.com/2961303.html 首先贴上Linux内核的ifb.c的文件头注释: The purpose of this driver is ... 
- Linux TC (traffic control)
		在着手学习TC采用如下单位来描述带宽: mbps = 1024 kbps = 1024 * 1024 bps => byte/s mbit = 1024 kbit => kilo bit/ ... 
- Linux TC(Traffic Control)框架原理解析
		近日的工作多多少少和Linux的流控有点关系.自打几年前知道有TC这么一个玩意儿而且多多少少理解了它的原理之后,我就没有再动过它,由于我不喜欢TC命令行,实在是太繁琐了.iptables命令行也比較繁 ... 
- Linux网络流量控制工具—Netem
		第一篇:概念篇 Netem 是 Linux 2.6 及以上内核版本提供的一个网络模拟功能模块.该功能模块可以用来在性能良好的局域网中,模拟出复杂的互联网传输性能,诸如低带宽.传输延迟.丢包等等情况.使 ... 
- Linux TC基于CBQ队列的流量管理范例
		参考了TC的很多文档,自己也整理了一篇配置记录.在实际使用过程中效果还不错,在此分享给大家以备参考.环境:局域网规模不是很大40多台机器. NAT共享上网(内网:eth0 外网:eth2)CBQ是通过 ... 
- linux下使用tc(Traffic Control) 流量控制命令模拟网络延迟和丢包
		目录 TC案例 TC常用命令 TC安装 TC原理介绍 TC规则 TC操作原理 TC命名规则 TC单位 TC命令 TC案例 如何使用tc模拟网络延迟和丢包 修改网络延时: sudo tc qdisc ... 
- linux 下使用 tc 模拟网络延迟和丢包(转)
		1 模拟延迟传输简介 netem 与 tc: netem 是 Linux 2.6 及以上内核版本提供的一个网络模拟功能模块.该功能模块可以用来在性能良好的局域网中,模拟出复杂的互联网传输性能,诸如低带 ... 
随机推荐
- 小程序中map的取值和赋值
			1.初始化 resultMap: { "near": [], "join": [], "publish": [] } 2.js中直接取 co ... 
- Hardy-Weinberg laws
			I.3 Diploids with two alleles: Hardy-Weinberg laws 假设子代是Aa,AA,aa的概率分别是PAa,PAA,Paa,A的基因概率是P1,a的基因概率是P ... 
- 记一次关于JDBCUtils工具类的编写
			jdbc.properties数据库配置的属性文件内容如下 jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost/xxxx ... 
- GitHub 代码仓库提示:“We found a potential security vulnerability in one of your dependencies”
			github代码仓库提示:“We found a potential security vulnerability in one of your dependencies” 问题描述: Github上 ... 
- vue_webpack初始化项目
			整体架构:此处npm安装过于缓慢,因此使用的是淘宝的镜像cnpm vue+webpack 初始化项目:1.安装vue: cnpm install vue 检验版本: vue -V2.创建一个vue项目 ... 
- 1059 C语言竞赛 (20 分)
			题目:1059 C语言竞赛 (20 分) C 语言竞赛是浙江大学计算机学院主持的一个欢乐的竞赛.既然竞赛主旨是为了好玩,颁奖规则也就制定得很滑稽: 0.冠军将赢得一份“神秘大奖”(比如很巨大的一本学生 ... 
- 80)PHP,扩展工具类
			啥是扩展工具类:这个问题很深奥,自己慢慢理解吧. 首先 对于session的处理函数是扩展工具类. ②图片处理类 ③验证码生成类 ④算是项目中的一个功能模块. 扩展工具类 放在我们的framew ... 
- vue element 全屏不好用问题
			Chrome71版本使用screenfull.js全屏功能时报参数错误 在生产环境长期使用的一个“全屏”功能突然失效了,查看Console 如下报错: Failed to execute 'req ... 
- Jmeter之压力测试总结
			一.基本概念 1.线程组N:代表一定数量的并发用户,所谓并发就是指同一时刻访问发送请求的用户.线程组就是模拟并发用户访问. 2.Ramp-Up Period(in seconds):建立所有线程的周期 ... 
- HihoCode-1053-居民迁移
			解法: 一开始不会做,看到标签说是贪心加二分忽然就会了,二分是分的是人口最多居住点的人口,检查人口最多的居住点人口为mid是否可行.贪心是如果从左往右循环就尽量把人口往左迁移,如果从右往左循环就尽量把 ... 
