You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux下tc-htb中cburst与burst的行为差异及问题排查

HTB burst不生效问题排查与修复

首先看你给出的配置,1:10类的命令里有明显语法错误:burst 100K {cburst 100K} 里的大括号是多余的,tc命令不支持这种写法,这就是burst没生效的直接原因。

先明确HTB里burst和cburst的核心区别:

  • burst:基于rate的突发缓冲区,允许流量短时间内超过rate,但不能超过burst设定的字节数,这个突发受父类的带宽上限约束。
  • cburst:基于ceil的突发缓冲区,允许流量短时间内冲到ceil值(前提是父类有剩余带宽),相当于用父类的闲置带宽做突发。

你的1:10类rate和ceil都是30mbit,所以cburst的作用和burst重叠了,但因为语法错误,burst根本没被正确配置。

修正后的配置

把1:10类的命令改成正确格式,去掉多余的大括号:

tc qdisc add dev ifb0 root handle 1: htb default 12 
tc class add dev ifb0 parent 1: classid 1:1 htb rate 100mbit ceil 100mbit 
tc class add dev ifb0 parent 1:1 classid 1:2 htb rate 40mbit ceil 40mbit 
tc class add dev ifb0 parent 1:1 classid 1:3 htb rate 20mbit ceil 100mbit
tc class add dev ifb0 parent 1:2 classid 1:10 htb rate 30mbit ceil 30mbit burst 100k cburst 100k
tc class add dev ifb0 parent 1:2 classid 1:11 htb rate 8bit ceil 40mbit 
tc class add dev ifb0 parent 1:1 classid 1:12 htb rate 8bit ceil 100mbit

额外检查点

  • 父类带宽验证:1:2的rate是40mbit,1:10占了30mbit,剩下10mbit给1:11,这个分配没问题,但要确保burst的大小符合实际需求——burst的合理值一般是rate * 延迟 / 8,默认延迟取10ms的话,100k是合理的,你可以根据自己网络的实际延迟调整。
  • 生效验证:用tc -s class show dev ifb0查看1:10类的参数,确认burst已经正确加载,再用iperf之类的工具打流量,看是否能观察到突发传输的效果。

内容的提问来源于stack exchange,提问作者Aitor Encinas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 04:19:53