Die Verkehrssteuerung im Linux-Namespace führt zu einer sehr geringen Bandbreite

2

Ich rechne damit, den eingehenden Datenverkehr veth0im Namespace zu begrenzen ns0.

Was ich tue, gibt die folgenden Befehle aus:

# create netns
ip netns add ns0

# create veth pair
ip link add dev veth0 type veth peer name veth1
ip link set dev veth0 netns ns0
# set them UP ...
ip netns exec ns0 ip addr add ... # add ipv4 addr to veth0

# link veth1 to br0 which is a linux bridge connecting physical interface
# bond1 where testing traffic comes from.
ip link set dev veth1 master br0

# setup traffic control rules
ip netns exec ns0 tc qdisc add dev veth0 handle ffff: ingress
ip netns exec ns0 tc filter add dev veth0 parent ffff: protocol ip prio 1 u32 match ip src 0.0.0.0/0 police rate 100mbit burst 1mbit drop flowid :1

Nach alledem erwarte ich ein Iperf-Ergebnis von etwa 100 Mbit / s, aber tatsächlich erhalte ich nur eine Bandbreite von etwa 14 Mbit / s.

Gibt es eine implizite Einschränkung für tc, die mir nicht bekannt ist?

Dastan
quelle
FWIW, ich muss noch Liniengeschwindigkeiten erreichen, wenn ich tc-shaping mit vernünftigen Grenzen hinzufüge. Um Leitungsgeschwindigkeiten zu erhalten, muss ich die maximalen Raten auf etwa das 10-fache meiner tatsächlichen Leitungsgeschwindigkeiten einstellen. Dieses Problem wurde bei mehreren Algorithmen beobachtet. Die CPU ist nicht in der Nähe der Auslastung, die maximale Auslastung liegt bei 25 MB, die maximale Auslastung bei 31 MB, während der Upload bei 10 MB liegt. Wenn ich die Verkehrskontrolle einschalte, habe ich das Glück, 6-7 hoch und 15-20 MB runter zu kommen.
Astara