gpt4 book ai didi

linux - Traffic Shaping tc-htb,burst没有效果

转载 作者:太空宇宙 更新时间:2023-11-04 12:20:49 34 4
gpt4 key购买 nike

我正在做一些测试来尝试理解 tc-htb 参数。我使用 VmWare Player(2.0.5 版),Windows 7 作为主机,Ubuntu(4.4.0-93 版)作为 guest 。

我的计划是使用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 流标识 1:1

Wireshark 中的 I/O 图表显示带宽从 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 水平)的窥视。 change命令无效,电平在50mbit。我还测试了更大的突发值,没有效果。我做错了什么?

最佳答案

'ceil' 指定如果对等类有空闲带宽可用,流量类可以从父类借用多少带宽。但是,当应用于根 qdisc 时,没有父级可以借用 - 因此指定与 rate 不同的 ceil 对于根 qdisc 上的类是没有意义的。

'burst' 指定在停止为另一类服务之前从一个类发送(以全链路速度)的数据包数量,以及通过随时间平均突发而实现的速率整形。如果应用于没有子类的根,它只会影响平均(平滑)的准确性,而不会对真实的平均率有任何影响。

尝试添加子类:

tc qdisc add dev lo root handle 1: htb
tc class add dev lo parent 1: classid 1:1 htb rate 100mbit
tc class add dev lo parent 1:1: classid 1:10 htb rate 50mbit ceil 100mbit
tc class add dev lo parent 1:1: classid 1:20 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:10
tc filter add dev lo protocol ip parent 1: prio 1 u 32 match ip dport 54321 0xffff flowid 1:20

到端口 12345 的 iperf session 应该达到 100mbps,然后在启动到 54321 的 iperf session 时下降到 50mbps。将 iperf 停止到端口 12345,然后到 54321 的流量应该达到 75mbps。

关于linux - Traffic Shaping tc-htb,burst没有效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46049140/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com