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

392
dastan

Я ожидаю ограничить входящий трафик 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, о которых я не знаю?

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

0 ответов на вопрос