Выбор вычислительных ресурсов узлов в кластере с горизонтальным масштабированием - PullRequest
0 голосов
/ 29 августа 2018

Горизонтальное масштабирование означает, что мы масштабируем, добавляя больше машин в пул ресурсов. Тем не менее, существует выбор того, сколько энергии (ЦП, ОЗУ) будет иметь каждый узел в кластере.

Когда кластер управляется с помощью Kubernetes, чрезвычайно легко установить любой предел ЦП и памяти для модулей. Как выбрать оптимальный процессор и объем памяти для узлов кластера (или модулей в Kubernetes)?

Например, в кластере есть 3 узла с 1 vCPU и 1 ГБ ОЗУ каждый. Для большей нагрузки есть 2 варианта:

  • Добавление 4-го узла с 1 vCPU и 1 ГБ ОЗУ
  • Добавьте к каждому из 3 узлов больше мощности (например, 2 vCPU и 2 ГБ ОЗУ)

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

Ответы [ 2 ]

0 голосов
/ 04 сентября 2018

Ответ связан с такими показателями производительности, как задержка и пропускная способность :

  • Задержка - это интервал времени между отправкой запроса и получением ответа.
  • Пропускная способность - это скорость обработки запросов (запросов в секунду).

Задержка влияет на пропускную способность: большая задержка = меньшая пропускная способность.

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

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

0 голосов
/ 29 августа 2018

В этом конкретном примере я бы выбрал 2x vCPU вместо другого узла 1vCPU, но это в основном потому, что я считаю, что запускать ОС для чего-то серьезного на одном vCPU - это просто неправильно. Системе, чтобы вести себя достойно, нужно 2+ доступных ядер, в противном случае слишком просто перегрузить один vCPU и отправить узел в пыль. Хотя не существует идеального алгоритма для этого. Это будет зависеть от вашего бюджета, характеристик вашей рабочей нагрузки и т. Д.

Как правило, не придерживайтесь слишком маленьких экземпляров, так как у вас есть куча вещей, которые должны выполняться на них всегда, независимо от их размера и чем больше узлов, тем больше накладных расходов. 3x 4vCpu + 16 / 32GB RAM звучит как хороший план для начинающих, но опять же ... это зависит от того, что вы хотите, нуждаетесь и можете себе позволить.

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