概述
使用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如何去设置TC参数的全部内容,希望文章能够帮你解决Linux如何去设置TC参数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复