Linux下的带宽控制心得体会

  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

相关推荐