在 Linux 中使用 cgroup 和 tc 似乎並不完全適用我的費率:10 倍差異

在 Linux 中使用 cgroup 和 tc 似乎並不完全適用我的費率:10 倍差異

我正在使用我在互聯網上隨處可見的“標準”方式(包括 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 介面並對其進行整形來調整下載速度。這裡你有一個關於如何做到這一點的例子。

相關內容