Linux下的带宽控制心得体会

来源:爱站网时间:2021-09-01编辑:网友分享
Linux下的带宽控制心得体会,Linux下的带宽控制通过队列实现,原理有通过延时和令牌的。而且广泛使用的是cbq队列。可笑的是这个恰恰是最复杂最难搞的一种队列,而且文档比较难懂。现在有一种新的htq队列相对配置比较简单,但是需要手工编译内核才能支持。那具体要怎么操作呢,跟着爱站小编一起来了解一下吧。

  Linux下的带宽控制通过队列实现,原理有通过延时和令牌的。而且广泛使用的是cbq队列。可笑的是这个恰恰是最复杂最难搞的一种队列,而且文档比较难懂。现在有一种新的htq队列相对配置比较简单,但是需要手工编译内核才能支持。

  其实cbq如果有中文的文档,或许会比较好懂一点。:o

  cbq基本使用步骤为:
  1) 针对网络物理设备(如以太网卡eth0)绑定一个CBQ队列

  2) 在该队列上建立分类

  3) 为每一分类建立一个过滤器

  给出偶的配置和注释,大家可能就会清楚了。偶的网络是用adsl拨号上网的,单网卡。

  tc qdisc del dev eth0 root#删除从前的队列

  tc qdisc add dev eth0 root handle 100: cbq bandwidth 10Mbit avpkt 1000

  #在eth0上绑一个队列,物理带宽为10Mbit

  tc class add dev eth0 parent 100:0 classid 100:1 cbq bandwidth 10Mbit rate 10Mbit allot 1514 weight 2Kbit prio 8 maxburst 8 avpkt 1000 bounded

  #建立根类,根类不限速,所以偶没有指明adsl的实际速度,而是用网卡的速度来代替

  tc class add dev eth0 parent 100:1 classid 100:2 cbq bandwidth 10Mbit rate 10Mbit allot 1513 weight 1Mbit prio 5 maxburst 8 avpkt 1000 bounded

  #第一个子类,是为那些要全速的ip建立,比方偶:p

  tc class add dev eth0 parent 100:1 classid 100:3 cbq bandwidth 10Mbit rate 1000Kbit allot 1513 weight 100Kbit prio 6 maxburst 8 avpkt 1000 bounded

  #第二个子类,给网段中其他的人用

  tc qdisc add dev eth0 parent 100:2 sfq quantum 1514b perturb 15
  tc qdisc add dev eth0 parent 100:3 sfq quantum 1514b perturb 15 linux  #sfq是另外一种队列,这两句的意思是让经过100:2和100:3两个子类的数据包的顺序是#随机的,而不是默认的fifo,实际效果比如你先下载,后打开ie,ie的页面显示不会在下#载完再显示出来。

  tc filter add dev eth0 parent 100:0 protocol ip prio 25 u32 match ip dst 192.168.202.219/32 flowid 100:2
  tc filter add dev eth0 parent 100:0 protocol ip prio 25 u32 match ip dst 192.168.202.245/32 flowid 100:2
  tc filter add dev eth0 parent 100:0 protocol ip prio 25 u32 match ip dst 192.168.202.216/32 flowid 100:2
  tc filter add dev eth0 parent 100:0 protocol ip prio 25 u32 match ip dst 192.168.202.218/32 flowid 100:2
  tc filter add dev eth0 parent 100:0 protocol ip prio 25 u32 match ip dst 192.168.202.0/24 flowid 100:3

  #针对分类建立过滤器,按目的ip建立。

  在linux下,要控制带宽,你只能控制发出的包,而不能控制接收包。因为别人发包给你的速度是不能由你控制的。所以偶要限制adsl的下载速度,不是在ppp0接口上,而是在eth0的接口上,即内网数据发送接口上。

  令偶有点困惑的是,rate的标识速度并不是准确。当偶设到10Kbps或10Kbit时,下载速度是维持在10kb/s左右,按理说,应该是10kbit/8/1024 kb/s的。所以偶干脆用带宽指数来确定rate。

  重要的参数是bounded,表明限制此类带宽。如果没有,则线路空闲时,那个分类会占所有的带宽。

  除了bounded,你还可以设borrow,Isolated,sharing。borrow可以借用其他分类的带宽,Isolated划定某一部分带宽给指定的分类,即使那个分类没有数据传送,这部分带宽也不会分给别人。sharing和Isolated正好相反。linux

以上内容就是爱站技术频道小编为大家分享的Linux下的带宽控制心得体会,看完以上分享之后,大家应该都知道怎么操作Linux下的带宽控制了吧。

上一篇:Linux下的ftp客户端使用笔记

下一篇:什么是UBUNTU Linux下VMware的端口映射

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载