Linux环境使用TC进行服务器流量控制方法
来源:Asp之家 发布时间:2010-08-17 18:47:00
公司目前有一台服务器,网络环境太高,那台服务器和源服务器连接下载,就跑到400M-500M,为了控制一下,所以研究了一下TC,来做流量控制。给他控制到小点,不要让这一台占了所有的网络。TC很强大,很多所谓的硬件路由器,都是基于这个做的。
一、Linux下使用TC进行服务器流量控制方法
1)假设eth0位是服务器的外网网络接口,首先在eth0的qdiscA,qdiscA控制通过本机到外网的速度,因此可用来控制服务器对外数据传输速度。
#tc qdisc add dev eth1 root handle 1:htb default 1
添加 设置接口 最上层 句柄(做标记用) 标记 默认使用1的class
解释如下:无论是队列,还是class和filter都有ID之类的标志符,一般都有parent(父,上层的),注意ID具有接口本地性,不同的网络接口可以有相同的ID.对于这里因为qdisc在顶部,所以parent无,用‘root’字样来标识,ID用1:来标志
‘default 91′表示当某个ip流不满足任何已设定的filter规则时,将自动归入class 1中。更详细的指令规则说明请参考手册。
2)然后在qdisc下建立两个class,来指定eth0控制通过本机到外网的速度
#tc class add dev eth0 parent 1:0 classid1:30 htb rate 2mbit ceil 4mbit prio 2
注:以上就是我们控制输出服务器的速度,为2M,最大可以到4M
rate: 是一个类保证得到的带宽值。如果有不只一个类,请保证所有子类总和是小于或等于父类。
prio:用来指示借用带宽时的竞争力,prio越小,优先级越高,竞争力越强。
ceil: ceil是一个类最大能得到的带宽值。
3)接着针对不同的应用在各root class下设置不同的类,示例如下。(如果只有一个类,这个就没有必要了)
#tc class add dev eth0 parent 1:30 classid 1:31 htbrate 0.5mbit ceil 2mbit prio 3
同时为了不使一个会话永占带宽,在节点(即本文的各应用结点)添加随即公平队列sfq.(多IP)
#tc qdisc add dev eth0 parent 1:31 handle 31:sfq perturb 10
4)接着添加过滤器。
#tc filter add dev eth0 parent 1: protocol ipprio 31 handle 31 fw flowid 1:31
5)用iptable打标,也可以使用u32之类
#iptables -t mangle -I FORWARD -i !eth1 -p tcp –sport 80 -s xxx.xxx.xxx.xxx –j MARK –set-mark 31
二、TC对最对高速度的控制 Rate ceiling 速率限度
参数ceil指定了一个类可以用的最大带宽, 用来限制类可以借用多少带宽。缺省的ceil是和速率一样,这个特性对于ISP是很有用的, 因为他们一般限制被服务的用户的总量即使其他用户没有请求服务。(ISPS 很想用户付更多的钱得到更好的服务) ,注根类是不允许被借用的, 所以没有指定ceil。
(注: ceil的数值应该至少和它所在的类的速率一样高, 也就是说ceil应该至少和它的任何一个子类一样高。)
Burst 突发
网络硬件只能在一个时间发送一个包这仅仅取决于一个硬件的速率。 链路共享软件可以利用这个能力动态产生多个连接运行在不同的速度。所以速率和ceil不是一个即时度量只是一个在一个时间里发送包的平均值。实际的情况是怎样使一个流量很小的类在某个时间类以最大的速率提供给其他类。 burst 和cburst 参数控制多少数据可以以硬件最大的速度不费力的发送给需要的其他类。
如果cburst 小于一个理论上的数据包他形成的突发不会超过ceil 速率, 同样的方法TBF的最高速率也是这样。
你可能会问, 为什么需要bursts . 因为它可以很容易的提高向应速度在一个很拥挤的链路上。 比如WWW 流量是突发的。 你访问主页。 突发的获得并阅读。 在空闲的时间burst将再”charge”一次。
(注: burst 和cburst至少要和其子类的值一样大。)


猜你喜欢
- 北京时间10月29日消息,据国外媒体报道,美国Brower Piven律师事务所日前宣布,已经代表在2006年11月15日到2009年7月1
- 10月15日,第一视频(0082.HK)董事局主席张力军表示,第一视频斥资1.68亿人民币收购中国品牌手机游戏开发服务商Dragon Joy
- 视频分享网站们是时候好好思考什么才是真正有效的商业模式了——现金流永远都是最硬的道理,而不能仅仅盯在人气与流量上。三年前,当Google以1
- LAMP(Linux-Apache-MySQL-PHP)网站架构是目前国际流行的Web框架,该框架包括:Linux操作系统,Apache网络
- 由中国财经报联合中国政府采购杂志社、中国政府采购网共同举办的“中国政府采购高峰论坛”,将于 2009
- 1.首先将你的网站提交到dmoz.org 目录下。它可能需要一段时间,如果被收录它至少会将你的网站PR值和反向链接提高一半。2. 经常到一些
- DoS即Denial Of Service,拒绝服务的缩写。DoS是指故意攻击网络协议实现的缺陷,或直接通过野蛮手段耗尽被攻击对象的资源,目
- 博客评论投票是一个常见的功能,如果对某网友的评论比较认同,那么可以对其进行“支持”投票。如果感觉评论内容不好,不同意其观点,可以对其投“反对
- 1、用户至上无论什么时候,一定要牢记在心:用户至上。没有用户光顾,网站意义何在?更不要谈什么访问量了。2、浏览模式必需考虑网友的浏览器软件,
- 编者按/由中国社科院工业经济研究所所长、中国经营报社社长金碚带领的竞争力研究团队,在《竞争力经济学》的理论基础上,与《中国经营报》共同研发了
- 本文讲述在VMware Workstation Pro下安装Win10纯净版操作系统的步骤,提供各步骤的详细解说,对本次安装做一个记录。1.
- 2008年1月8日消息:“2007年度中国互联网市场数据发布会”今天在北京举行。在会上刚刚揭晓的《Netguide2008中国互联网调查报告
- 多人共同协作的群体博客,需要一个明确的协作规范,虽然目前月光博客还不是多人更新的博客,但也有一些写作规范,这里进行了一些总结,以便未来的某些
- Tcp_Wrappers是一个用来分析TCP/IP封包的软件,类似的IP封包软件还有iptables,linux默认都安装了此软件,作为一个
- input输入子系统框架linux输入子系统(linux input subsystem)从上到下由三层实现,分别为:输入子系统事件处理层(
- 个人都喜欢好用的技巧,对吗?这里有55个用于搜索引擎优化的小技巧,甚至你的老妈用起来都易如反掌。哦,不是我的老妈,但你明白我的意思。这意味着
- 前言在安装了虚拟机之后,当我们想将文件从主机拷到虚拟机当中时,因为不能直接将文件从主机拖到虚拟机中,所以只能借助U盘,但是频繁的插拔U盘非常
- 在此介绍一下我在RedHat Linux 7.2下装Apache与Tomcat4整合的过程,重点讲述mod_webapp.so的制作方法,
- 1.创建一个站点文件夹 首先你要创建一个独立于你的主站点的新的站点文件夹(若站点是建立在同一个服务器上面的话),这样你下面要做的改动才不会影
- 核心提示:一个真正有生命力的网站不一定依赖搜索引擎。为什么我坚信淘宝比阿里巴巴更有价值? 一个理由就够了:淘宝现在能做到不理睬百度们,而阿里