Я провожу эксперимент между тремя компьютерами, подключенными к 10Gig и имеют RTT 100 микросекунд. Допустим, это машины A, B и C. Машина A обменивается данными с B и C. Машины B и C не взаимодействуют друг с другом.
Я хочу ограничить полосу пропускания так, чтобы машины A и B 5Gпропускная способность и 100 Милливторая задержка. В то время как машины A и C не имеют регулирования полосы пропускания и задержки. Моя цель - имитировать глобальную сеть с большой доступной пропускной способностью.
Я пробовал использовать HTB и prio для ограничения пропускной способности и задержки. Однако максимальная достигнутая пропускная способность составляет около 350 Мбит / с. Тестировал через iperf. Насколько я понимаю, у нас не может быть пропускной способности более 1 Гб при использовании TC.
Есть ли способ или какой-либо инструмент для ограничения пропускной способности выше 1 гигабайта?
Я использую следующие команды 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
У меня была та же проблема, что и у вас. В конце концов я нашел что-то, что работало на скорости 2 Гбит / с, которую мне нужно было снизить. Это сценарий. Измените по своему усмотрению.
#!/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