我正在做一些测试以尝试理解 tc-htb 参数。我正在使用 VmWare Player(2.0.5 版),Windows 7 作为主机,Ubuntu(4.4.0-93 版)作为来宾。
我的计划是使用 iperf 通过 localhost 生成已知数据流(udp 100Mbits/sec),然后使用 tc-htb 限制带宽。使用 Wireshark 监控结果。
Iperf 设置:
- 服务器:
iperf –s –u –p 12345
- 客户:
perf –c 127.0.0.1 –u –p 12345 –t 30 –b 100m
测试率参数:
我启动 Wireshark 并开始使用 iperf 发送数据,10 秒后我使用 tc 命令执行脚本:
tc qdisc add dev lo root handle 1: htb
tc class add dev lo parent 1: classid 1:1 htb rate 50mbit ceil 75mbit
tc filter add dev lo protocol ip parent 1: prio 1 u 32 match ip dport 12345
0xffff flowid 1:1
Wireshark 中的 I/O Graph 显示带宽从 100 Mbit/s 下降到 50 Mbit/s。好的。
测试突发参数:
我从与上面相同的带宽限制开始,再过 10 秒后,我使用以下命令运行脚本:
tc class change dev lo parent 1: classid 1:1 htb rate 50mbit ceil 75mbit burst 15k
在 I/O 图表中,我期望从 50mbit(速率级别)到 75mbit(ceil 级别)进行查看。更改命令无效,电平为 50mbit。我还测试了更大的突发值,没有效果。我究竟做错了什么?