LINUX.ORG.RU
ФорумAdmin

LXC производительность сети

 , ,


0

1

Какие у LXC/Docker накладные разсходы на сеть ? Тоесть вот есть у меня приложение которое обрабатывает довольно большой UDP траффик, при этом сама логика (userspace) довольно простая как результат имеем 100% CPU usage но при этом 50%-60% это сетевой стек ядра (system + irq). Если я помещу приложение внутрь LXC конейнера и буду роутить пакеты в между реальными и виртуальными интерфейсами на сколько нагрузка вырастит ?

★★★★

Последнее исправление: zaz (всего исправлений: 1)

Ответ на: комментарий от post-factum

Это потомучто по энтеру форма сабмитится - раздражает иногда. А на моем Lenovо энтер маленький и со всех сторон окружен другими кнопками - вечно под руку лезет ...

zaz ★★★★
() автор топика

Какие у LXC/Docker накладные разсходы на сеть ?

ab -n100 -c10 на статический файл через nginx с локалхоста и через lxc:

Requests per second: 11583.46 [#/sec] (mean)
Time per request: 8.633 [ms] (mean)

Requests per second: 3725.78 [#/sec] (mean)
Time per request: 26.840 [ms] (mean)

Поскольку реальная нагрузка на контейнер редко превышает сотни запросов в секунду, то накладные расходы, большие в относительных значениях, в абсолютных — пренебрежимые.

KRoN73 ★★★★★
()

буду роутить пакеты в между реальными и виртуальными интерфейсами

Как можно роутить «в между» ? Хорошо хоть не «в на».

стоимость форвардинга пакетов внутри машины через veth мизерная ( если только у тебя не 100500 маршрутов или безумные правила фильтрации)

С другой стороны, если в контейнер отдать vlan или целиком сетевой интерфейс, то надобность в форвардинге отпадет (вместе с накладными расходами)

Запусти iperf между контейнером и хостом чтобы понять будет ли это узким горлышком.

vel ★★★★★
()

Могу за докер сказать.

По моим наблюдениям. Оверхеда по CPU нет. В режиме host сеть чувствует себя хорошо, latency почти не растет, throughput просаживается в худщем случае процентов на 10. В режиме nat, latency может увеличиться до двух раз, throughput падает процентов на 30.

Но эти данные могли устареть, и могут зависеть от железа. И вообще лучше загугли какие-нибудь авторитетные бенчмарки :)

staseg ★★★★★
()
Ответ на: комментарий от staseg

Macvlan нужно пробовать- заметных потерь производительности быть не должно.

Shtsh ★★★★
()
Ответ на: комментарий от KRoN73

спасибо большое за цифры.

Поскольку реальная нагрузка на контейнер редко превышает сотни запросов в секунду, то накладные расходы, большие в относительных значениях, в абсолютных — пренебрежимые.

Есть идея засунуть в контейнер ПО которое сейчас обрабатывает порядка 30000 запросов в секунду, такчто накладные расходы могут быть существенны ...

zaz ★★★★
() автор топика
Ответ на: комментарий от zaz

Проверил в docker 1.10 на nginx из fedora 24:

localhost:
Requests per second: 23435.67 [#/sec] (mean)

docker:
Requests per second: 5301.66 [#/sec] (mean)

docker --net host:
Requests per second: 21781.75 [#/sec] (mean)

vrutkovs ★★
()
Ответ на: комментарий от vrutkovs

Че-то херня какая-то с докером - почему так проседает...

menangen ★★★★★
()
Ответ на: комментарий от menangen

Ага, docker-proxy тормозит. Можно попробовать без него или дождаться 1.12

vrutkovs ★★
()
7 февраля 2017 г.
Ответ на: комментарий от KRoN73

ab -n100 -c10 на статический файл через nginx с локалхоста и через lxc

Забавно, но в Ubuntu сейчас, по сравнению с 14.04 скорость LXC упала, а скорость Docker выросла. Раньше LXC-контейнер отдавал статику и PHP-скрипты с такой же скоростью, как и хост, а Docker — раз в 5 медленнее. Сейчас, не знаю, что повлияло больше, ядро системы или соответствующие версии софта, но для простого `echo 2*2` на php7 скорость отдачи у меня:

- На хосте: 20-22 krps
- В LXC-контенере: 8-10 krps
- В Docker-контейнере: 9-15 krps

При чём у LXC более быстрый вариант php-fpm, с сокетом, а в Doker — с сетевым интерфейсом.

KRoN73 ★★★★★
()
Последнее исправление: KRoN73 (всего исправлений: 1)
Ответ на: комментарий от vel

А остальное что ? veth + bridge

Видимо, так. У Docker ещё дисковая система, вроде, тормозит из-за aufs, но в таком примитивном примере она, как раз, не сказывается, всё должно сидеть в кеше.

KRoN73 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.