Эффективность горизонтального масштабирования при многократном развертывании одного контейнера на одном хосте - PullRequest
0 голосов
/ 02 июня 2018

Получаем ли мы эффективность с точки зрения обработки нагрузки, когда один и тот же контейнер (в этом случае контейнер имеет сервер Apache и приложение php) развернут 5 или более раз (т.е. развернуто 5 или более контейнеров) на одном хосте?или ВМ?

Здесь эффективность будет означать, сможет ли приложение в такой архитектуре обслуживать больше запросов или обслуживать запросы быстрее?

Насколько мне известно, каждый запрос запускает новый apache-php и если у нас есть 5 контейнеров, обрабатывающих запросы, то это будет неэффективно, так как теперь потоки, запускаемые apache, будут контекстно переключаться чаще?

1 Ответ

0 голосов
/ 02 июня 2018

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

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

Как правило, горизонтальное масштабирование выполняется, потому что один хост использует все некоторые ресурсы, такие как диск io, пропускная способность сети, память или процессор.Если вы обнаружите, что приложение использует все один или несколько из этих ресурсов при большой нагрузке, вам нужно больше хостов, а не больше контейнеров, работающих на одном хосте.

Все это предполагает, что вы не настроилиДокер для ограничения ресурсов на контейнерах.Если вы достигли своей емкости с одним контейнером и настроили ограничения ресурсов, то самый простой способ повысить производительность - это удалить или уменьшить эти ограничения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...