
我正在使用我在互聯網上隨處可見的“標準”方式(包括 ServerFault)來嘗試使用 cgroups 和 tc 來限制進程的頻寬。
我在實踐中看到的是,我設置的限制tc
實際上會增加大約 10 倍,請參見此螢幕截圖:
我將rate
和設定ceil
為 100kbit(不是 100kbps),因此我希望看到下面的 wget 顯示每秒大約 10 KB。相反,我看到的是 500kBps。
如果我將 htp 速率更新為 100千比特/秒(每秒 100 KB)我看到我的速率飆升至 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 進行整形,因此我們可以得出結論,在您的情況下,資料/ACK 的比率為 1:100。
您可以透過使用 tc 將入口流重定向到 ifb 介面並對其進行整形來調整下載速度。這裡你有一個關於如何做到這一點的例子。