управление трафиком в пространстве имен linux приводит к очень низкой пропускной способности

2

Я ожидаю ограничить входящий трафик veth0 в пространстве имен ns0,

Я выполняю следующие команды:

# 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

После всего этого я ожидаю, что результат iperf будет около 100 Мбит / с, но на самом деле я получаю только около 14 Мбит / с.

Есть ли какие-то неявные ограничения на tc, о которых я не знаю?

dastan
источник
Кстати, мне еще предстоит получить линейную скорость при добавлении любого tc-формирования с разумными ограничениями. Чтобы получить скорости линии, я должен установить максимальные скорости примерно в 10 раз выше моей реальной скорости линии - я видел эту проблему в нескольких алгоритмах. Процессор не близок к использованию, Max down указан в 25 МБ, но ближе к 31 МБ, в то время как загрузка превышает 10 МБ. Если я включу управление движением, мне повезет, если я увеличу 6-7 и 15-20 Мб (я ввожу более быстрые измеренные скорости, чтобы начать с BTW. Если я что-нибудь найду, постараюсь не забыть опубликовать здесь ...
Astara