![在 Linux 中使用 cgroup 和 tc 似乎并不完全符合我的要求:10 倍差异](https://linux22.com/image/785399/%E5%9C%A8%20Linux%20%E4%B8%AD%E4%BD%BF%E7%94%A8%20cgroup%20%E5%92%8C%20tc%20%E4%BC%BC%E4%B9%8E%E5%B9%B6%E4%B8%8D%E5%AE%8C%E5%85%A8%E7%AC%A6%E5%90%88%E6%88%91%E7%9A%84%E8%A6%81%E6%B1%82%EF%BC%9A10%20%E5%80%8D%E5%B7%AE%E5%BC%82.png)
我正在使用在互联网上各处(包括 ServerFault)找到的“标准”方式来尝试限制进程的带宽,使用 cgroups 和 tc。
我在实践中看到,我设定的限制tc
在实践中将会增加大约 10 倍,请看此屏幕截图:
我将 设置rate
为ceil
100kbit(不是 100kbps),因此我期望看到下面的 wget 显示大约 10 千字节每秒。但我看到的却是 500kBps。
如果我将 htp 速率更新为 100每秒(每秒 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 配置不一致。你知道我做错了什么吗?
答案1
使用 tc,您可以调整上传速度。使用 wget,您可以测试下载速度。在您的测试中,您正在调整客户端发送的 TCP ACK,因此我们可以得出结论,在您的案例中,数据/确认比率为 1:100。
您可以使用 tc 将入口流重定向到 ifb 接口并对其进行整形,从而调整下载速度。这里你有一个关于如何做到这一点的例子。