@dlakazov

Сайт на docker медленно работает?

Мне показалось что приложение на хосте развернутое шустрее работает,чем приложение на контейнерной основе docker. Это так? Или крестится надо когда кажется?
  • Вопрос задан
  • 4029 просмотров
Решения вопроса 3
@metajiji
Есть такое да, если делаете паблишинг портов, то на голом докере по умолчанию это произойдет через docker-proxy у которого катастрофически низкая производительность + огромный аппетит к Cpu, выход крайне простой - при создании контейнеров, которые будут взаимодействовать с внешним миром используйте --net host. Например у вас есть php-fpm, nginx и любая бд, в таком случае делаете --net host для nginx, остальные могут оставаться в сети docker, конечно же вам понадобится icc(inter container communication) и для этого нужно создать так называемую user-defined network. Для упрощения жизни создавайте контейнеры через docker-compose.
Ответ написан
@FruTb
Комменты правильные. Правда надо понимать что контейнеризацая в докере происходит за счёт cgroups и разделяемого ядра. Те в некоторых ситуациях докер будет давать лучшие результаты по сравнению с полной виртуализацией сервера, а есть когда обратно. Базовое правило такое - если мы cpu-intensive то мы можем жить в докере. Если это io bound (много срем в сеть/диск) - могут появляться "артефакты" (причём, как показывает опыт) диагностировать их приходится отладкой ядра. Но это при нагрузках 10к+ запросов в подсистемы ваода-вывода. Если у вас "полтора колеки" сидят на сайте - тогда это скорее всего проблема инфраструктуры
Ответ написан
Комментировать
Если вы берете VDS, и на него ставите докер, естественно нагрузка на него будет выше чем от чистого приложения, ведь у вас на машине работают ещё и сервисы докера.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ky0
@ky0
Миллиардер, филантроп, патологический лгун
Любая контейнеризация - это оверхед. Насколько он большой, зависит от конкретных условий - технологии, верности настройки, особенности приложения. Те же данные СУБД, например, внутри докера располагать не стоит.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы