我正在使用我在互联网上随处可见的“标准”方式(包括 ServerFault)来尝试使用 cgroups 和 tc 来限制进程的带宽。
我在实践中看到的是,我设置的限制tc
在实践中会增加大约 10 倍,请参见此屏幕截图:
我将rate
和设置ceil
为 100kbit(不是 100kbps),所以我希望看到下面的 wget 显示大约每秒 10 KB。相反,我看到 500kBps。
如果我将我的 htp 速率更新为 100 kbps(每秒 100 千字节),我会看到我的速率飙升至 10兆字节/秒,这是 100 倍以上:
tc class change dev ens3 classid 1:1 htb rate 100kbps
# the curl in the other terminal now shoots up to 9.6MB/s
image.iso.1 53%[================> ] 346,72M **9,48MB/s** tps 49s
我不明白为什么这与我的 htb 配置不一致。你知道我做错了什么吗?
使用 tc,您可以控制上传速度。使用 wget,您正在测试下载速度。在您的测试中,您正在塑造您的客户端发送的 TCP ACK,因此我们可以得出结论,在您的情况下,data / ack 的比率为 1:100。
您可以通过使用 tc 将入口流量重定向到 ifb 接口并对其进行整形来调整下载速度。Here你有一个关于如何做的例子。