Traffic-Shaping
針對大頻寬(超過 1Gig)的 Linux 流量整形
我正在三台連接10G ig 介面且 RTT 為100 微秒的電腦之間進行實驗。假設這些是機器 A、B 和 C。機器 A 正在與 B 和 C 通信。機器 B 和 C 不相互通信。
我想限制頻寬,使機器 A 和 B 具有5G bps 頻寬和 100毫秒延遲。而機器 A 和 C 沒有任何頻寬和延遲限制。我的目標是模擬具有大頻寬可用的廣域網。
我嘗試使用 HTB 和 prio 來限制頻寬和延遲。但是,達到的最大頻寬約為 350 Mbps。我通過iperf進行了測試。我的理解是,我們使用 TC 的頻寬不能超過 1Gig。
有什麼方法或工具可以將頻寬限制在 1Gig 以上?
我正在使用以下 TC 命令:
sudo tc qdisc del dev p4p1 root sudo tc qdisc add dev p4p1 handle 1: root htb r2q 1000 sudo tc class add dev p4p1 parent 1: classid 1:3 htb rate 1000Mbps sudo tc qdisc add dev p4p1 parent 1:3 handle 23: netem delay 50ms limit 100000000 sudo tc filter add dev p4p1 protocol ip prio 9 u32 match ip dst 10.96.0.1 flowid 1:3
我遇到了和你一樣的麻煩。最終,我發現了一些可以在我需要節流的 2Gbps 下工作的東西。這是腳本。根據需要進行修改。
#!/bin/sh # # Incoming traffic control # DEV=eth0 RATE="2000mbit" tc qdisc del dev $DEV root tc qdisc add dev $DEV root handle 1: htb default 10 tc class add dev $DEV parent 1: classid 1:1 htb rate ${RATE} burst 15k tc class add dev $DEV parent 1:1 classid 1:10 htb rate ${RATE} ceil ${RATE} burst 15k tc qdisc add dev $DEV parent 1:10 handle 10: sfq perturb 10 echo;echo "tc configuration for $DEV:" tc qdisc show dev $DEV tc class show dev $DEV # # Outgoing traffic control # DEV=eth2 tc qdisc del dev $DEV root tc qdisc add dev $DEV root handle 1: htb default 10 tc class add dev $DEV parent 1: classid 1:1 htb rate ${RATE} burst 15k tc class add dev $DEV parent 1:1 classid 1:10 htb rate ${RATE} ceil ${RATE} burst 15k tc qdisc add dev $DEV parent 1:10 handle 10: sfq perturb 10 echo;echo "tc configuration for $DEV:" tc qdisc show dev $DEV tc class show dev $DEV