No video

Насколько тормозит Docker? Тестируем сетевые режимы

  Рет қаралды 2,399

Ускорение Сайтов :: Метод Лаб

Ускорение Сайтов :: Метод Лаб

Күн бұрын

Решили выяснить, какие накладные расходы добавляет Docker в различных сетевых режимах для сетевого приложения. Для теста мы взяли веб-сервер Angie и запустили его из пакета (в хостовой ОС) и в двух вариантах контейнеров: bridge-сеть и хостовая сеть (host).
Далее провели быстрый тест производительности. Результаты получили очень интересными.
Настоящее ускорение сайтов: www.methodlab....
Администрирование Linux-серверов: www.methodlab....
Профессиональная поддержка сайтов: www.methodlab....
Тестирование скорости сайтов: xn--80aanaoicz...--p1ai/
Сервис оптимизации картинок: www.fotorubka.ru/
Наш второй канал "Поддержка сайтов": / @site_support
Метод Лаб в Telegram: t.me/methodlab_tg
Группа "Ускорение сайтов" в VK: sitespe...
Метод Лаб в VK: methodlab
Метод Лаб в Rutube: rutube.ru/chan...
Метод Лаб в Дзен: dzen.ru/method...

Пікірлер: 38
@davidlakazov9156
@davidlakazov9156 Ай бұрын
Большое спасибо за видео. Хотелось бы видеть от Вас тест производительности mysql также в контейнере и без, может даже в связке с php.
@NickLavlinsky
@NickLavlinsky Ай бұрын
Сделаем.
@sevd404
@sevd404 25 күн бұрын
Спасибо Николай!
@egorkomarov4719
@egorkomarov4719 Ай бұрын
Спасибо, это очень полезный контент
@alexanderbelkin5978
@alexanderbelkin5978 Ай бұрын
Тут еще зависит от того какие настройки сети у вас в KVM? Потому что, по-умолчанию он эмулирует сетевуху rtl8139. И у вас из-за этого могут быть такие потери в производительности. Например, VMWare с сетью VMXNET3, использует маппинг памяти сетевого буфера виртуальной сетевухи между виртуалками и вы ограничены только скоростью обмена с памятью.
@NickLavlinsky
@NickLavlinsky Ай бұрын
В этом тесте в сетевуху виртуалки результаты не упирались. Ну и для всех вариантов настройки виртуалки были одинаковыми, так что они здесь ни при чем.
@cemochkin2246
@cemochkin2246 Ай бұрын
Спасибо, интересно
@ninjasassasin3224
@ninjasassasin3224 Ай бұрын
Было бы интересно посмотреть результат работы Docker-контейнера с использованием режима (драйвера) macvlan.
@snatvb
@snatvb Ай бұрын
очень полезное, такое бы еще для кубера помареть)
@egorgorbachev
@egorgorbachev Ай бұрын
Впринципе что и надо было доказать. Спасибо!
@user-bt1fh7ne7v
@user-bt1fh7ne7v Ай бұрын
Спасибо за тест. Было бы интересно увидеть сравнение так же с docker rootless kit и macvlan-сетью. Вангую рутлес будет худшим.
@mr_hse5364
@mr_hse5364 Ай бұрын
Очень интересно. Тоже не ожидал такого влияния) спасибо за тесты! Интересно, при увеличении количества контейнеров, через которые проходит запрос, задержка растёт линейно в зависимости от кол-ва контейнеров или всё-таки медленнее🤔 или быстрее😱
@NickLavlinsky
@NickLavlinsky Ай бұрын
Имеете в виду фронт-бэк или балансировщик-фронт? Да, интересно. Здесь наверное еще нужно учитывать тип сети между контейнерами.
@mr_hse5364
@mr_hse5364 Ай бұрын
@@NickLavlinsky пожалуй, фронт-бек. Висит у нас, допустим, кучка микросервисов в контейнерах, редис, база и тому подобное. Я бы такое потестировал, прям интересно стало. Да и со схемой балансировщик-фронт тоже история любопытная. Допустим, проходит запрос сначала через балансировщик, а потом через редирект в третий контейнер. Сколько на дорогу тратить придётся.
@NickLavlinsky
@NickLavlinsky Ай бұрын
Да, балансировщик-фронт-бэк-БД. На выходе 1 RPS.
@alsto8298
@alsto8298 Ай бұрын
Спасибо за обзор! К тестам напрашивается один вопрос - а на каком уровне дополнительной нагрузки потери становятся незначительными если это вообще происходит.
@DFX2011
@DFX2011 Ай бұрын
Интересно, что у меня результаты отличаются ровно наоборот, но я использовал go-wrk, надобно еще поэкспериментировать, пока не нашел сильной разницы между сетями
@user-vs7gp7wr8j
@user-vs7gp7wr8j Ай бұрын
Всёж не хватает для сравнения тестов под вирталкой(kvm).... А если касаться только сети, то так же бы не помешало проверить такие вещи как: macvlan, net namespace etc...
@NickLavlinsky
@NickLavlinsky Ай бұрын
Что значит тестов под вирталкой? В этом тесте все работало уже в вируалке kvm.
@user-vs7gp7wr8j
@user-vs7gp7wr8j Ай бұрын
@@NickLavlinsky ну я имел ввиду host vs виртуалка...
@NickLavlinsky
@NickLavlinsky Ай бұрын
Да, это тоже можно протестировать.
@evgenkrupchenko
@evgenkrupchenko Ай бұрын
Это еще что... а когда выносят mysql на отдельный хост или дисковую систему на СХД по сети. Удобно, модно, молодежно... ну да, сайт дико тормозит, что поделать :] Нет ничего быстрее, чем когда все локально, безо всяких KVM и докеров, напрямую работает. И mysql конечно только через сокеты. А еще tmp системную, tmp nginx и mysql можно делать на RAM-диск, можно логи даже писать на RAM-диск (если памяти конечно много имеется). Если сайтов не пара штук, а сотни, то лучше их делить на отдельные процессы apache/php/mysql чтобы всем более-менее равномерно доставалось всех кэшей. А не так (как к примеру обычно на shared хостингах) что одна гигантская mysql на тысячи сайтов и более посещаемые всегда перетягивают одеяло на себя, а менее посещаемые получаются почти всегда с "холодным стартом". С php opcache та же история.
@denisgrin1137
@denisgrin1137 Ай бұрын
Неожиданный результат. Я думал что докер привносит некоторые задержки, ну на 5-10% процентов. Но эти результаты меня удивили. А ведь я недавно спорил со своим коллегой, что докер привносит мизерную задержку. Я получается, был не прав??
@NickLavlinsky
@NickLavlinsky Ай бұрын
Для меня тоже неожиданный. Я думаю здесь дело в типе нагрузки. В этом тесте мы минимально грузили процессор и больше тестировали системные вызовы. Видимо в этом сценарии накладные расходы становятся высокими в процентах.
@Novikovrus
@Novikovrus Ай бұрын
интересно посмотреть на вариант если Коннект делать Unix domain socket (IPC) . В докер и без, это актуально если сервисы как в твоём случае на одной машине.
@NickLavlinsky
@NickLavlinsky Ай бұрын
Unix-сокеты как-то тестировал, они немного быстрее, но не радикально.
@igorseledtsov7345
@igorseledtsov7345 Ай бұрын
да он и без сетевых нехило так тормозит...
@ArtemAleksashkin
@ArtemAleksashkin Ай бұрын
Ежу понятно, что любая дополнительная операция требует процессорного времени. Попробуйте еще кубернетес. Докер и кубер были созданы для удобства - за удобство надо платить. Все логично и понятно
@NickLavlinsky
@NickLavlinsky Ай бұрын
Да, вопрос в том, какого времени требует изоляция в контейнерах. Заявляется, что менее 10%.
@PragmaticPragmatist
@PragmaticPragmatist Ай бұрын
Примитивный тест на статике. Основная часть запросов это запросы к бизнес логике или базе. Какая разница как тормозит сервис по раздаче статики. Если статика это 10% от общего числа запросов. В чем смысл этих тестов? Экономия на спичках? У всего есть накладные расходы. Вопрос в том готов ты их платить или нет. Вы ещё протестируйте оверхед от виртуализации ))) а потом скажете что все лучше ставить на голом железе, только вот докер и кубер другую проблему решали
@NickLavlinsky
@NickLavlinsky Ай бұрын
Конечно на голом железе лучше. Вопрос в том, насколько лучше. В этом и смысл тестов.
@dmitryk101
@dmitryk101 Ай бұрын
У сервисов раздачи статики обычно гораздо больше запросов чем у бизнес логики. Глупо игнорировать потребление этих ресурсов. К тому же скорость загрузки статики влияет на бизнес метрики, например даже самый быстрый сайт не начнет работать пока не загрузится его js скрипты.
@dmitryk101
@dmitryk101 Ай бұрын
Такие "примитивные" тесты как раз и нужны чтобы оценить этот оверхед и понять где экономия на спичках, а где уже серьезный импакт по бизнесу
Тестируем Nginx c HTTP/3 и QUIC с доработками от VK.com
27:00
Ускорение Сайтов :: Метод Лаб
Рет қаралды 3,1 М.
КАК УСТРОЕН TCP/IP?
31:32
Alek OS
Рет қаралды 54 М.
Zombie Boy Saved My Life 💚
00:29
Alan Chikin Chow
Рет қаралды 28 МЛН
Kind Waiter's Gesture to Homeless Boy #shorts
00:32
I migliori trucchetti di Fabiosa
Рет қаралды 15 МЛН
Schoolboy Runaway в реальной жизни🤣@onLI_gAmeS
00:31
МишАня
Рет қаралды 4 МЛН
Docker Для Начинающих за 1 Час | Docker с Нуля
52:43
MySQL 8.0: используем индексы для ускорения запросов
39:41
Ускорение Сайтов :: Метод Лаб
Рет қаралды 7 М.
Подготовка к собесу - Оптимизация запросов
25:12
Структура файлов и каталогов в Linux
20:28
Aleksey Samoilov
Рет қаралды 389 М.
Кто и почему убивает Фронтенд?
20:40
Миша Ларченко
Рет қаралды 21 М.
Zombie Boy Saved My Life 💚
00:29
Alan Chikin Chow
Рет қаралды 28 МЛН