使用linuxTC进行流量控制时,会发现若一些参数设置不当会导致流控数据效果很差(如limit,burst等值),这里分三种情况分别讲解怎么设置TC。注意TC控制的是发包(也就是设置的是单向的,若需要控制来回,则两个方向均要配置TC)。
1.只设置延时,丢包率
千兆网卡(带宽)设置25ms延时,1%丢包:
tc qdisc add dev eth2 root handle 1:0 netem delay 25ms loss 1% limit 3125000
这里limit值是怎么算出来的?
limit为缓冲区大小,默认单位是字节,最大1000Mbps时25ms发送数据需要缓冲多少字节:(1000Mbps*(25ms/1000ms))/8=3.125MB=3125000B
2.只设置限制带宽
流控限制带宽的算法有很多种,这里选用比较通过的HTB算法,设置线路最大带宽为100Mbps
这里burst为突发流量大小,建议不配置,使用htb算法默认会算出burst值,使用默认值就好。
tc qdisc ls dev eth0 #查看etho口qdisc
tc -s -d class show dev eth0 #查看详细信息
3.设置带宽同时设置25ms延时
文章来源: Linux如何去设置TC参数