在使用HTB的时候,有时会碰到htb quantum of class 10001 is big. consider r2q change的警告,而quantum是HTB子类借父类频宽时的计算依据。如果该引数设定不好,可能会碰到意想不到的结果。
HTB manual建议quantum取值要尽量小,且要大于mtu。这样,quantum的最佳值就是等于mtu。如果不设定该引数,预设quantum=rate/r2q,而预设r2q=10,预设mtu=1500,也就是说使用预设引数只适合rate=15kbps的情况。当实际频宽不同时,需要手动设定r2q引数:
r2q=rate/mtu,实际r2q最好比计算出的值小一点,以保证quantum>mtu。
默认 r2q 是 10, 根据实际情况修改
[root@localhost tc]# tc qdisc add dev em4 root handle 998: htb r2q 24 [root@localhost tc]# tc -s qdisc show dev em4 | more qdisc htb 998: root refcnt 9 r2q 24 default 9999 direct_packets_stat 8434558 direct_qlen 1000 Sent 4880571848 bytes 12138509 pkt (dropped 5560, overlimits 2229659 requeues 1504) backlog 0b 0p requeues 1504
注:mtu的检视方法
使用netstat -i 来检视MTU的值
[root@asterisk ~]# netstat -i
Kernel Interface table
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 0 60041 0 0 0 48841 0 0 0 BMRU
lo 16436 0 63 0 0 0 63 0 0 0 LRU
评论前必须登录!
注册