Linux如何去设置TC参数

使用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

tc qdisc add dev eth2 root handle 1:  htb default 11   #设置通道11为默认通道

tc class add dev eth2 parent 1: classid 1:11 htb rate 100mbit ceil 100mbit burst 1600b cburst 1600b   #限速通道11为100Mbps

这里burst为突发流量大小,建议不配置,使用htb算法默认会算出burst值,使用默认值就好。

tc qdisc ls dev eth0 #查看etho口qdisc

tc class ls dev eth0  #查看eth0口带宽设置

tc -s -d class show dev eth0 #查看详细信息

3.设置带宽同时设置25ms延时

tc qdisc add dev eth2 parent 1:11  handle 10: netem delay 25ms limit 312500  #与第二点的流控通道对应





你可能感兴趣的:(网络知识,测试经验杂谈,linux)