Несколько гостевых исполняемых файлов в одном узле Service Fabric

Я хочу развернуть несколько гостевых исполняемых файлов на одном узле, но не уверен, как это работает за экранами? Как ресурсы виртуальных машин распределяются между каждым исполняемым файлом? Это сделано эффективно? Нужно ли мне что-то настраивать, чтобы весь исполняемый файл был хорошо упакован в виртуальную машину для экономии памяти? Как узнать, сколько исполняемых файлов можно запустить на одной виртуальной машине?

1 ответ

Решение

Чтобы понять, как Service Fabric распределяет службы внутри узлов, вам необходимо понять модель размещения.

Модель размещения Service Fabric очень эффективна при использовании модели программирования Service Fabric (службы и субъекты без отслеживания состояния и с отслеживанием состояния), но более ограничена для гостевых исполняемых файлов и контейнеров, хотя она по-прежнему эффективна.

Обычно Service Fabric активирует ServicePackage(процесс) для каждого гостевого исполняемого файла (службы). В зависимости от настроенного количества экземпляров для каждой службы Service Fabric будет запускать по одному экземпляру каждой службы на каждом узле (еслиInstanceCount = -1) или он распределит экземпляры по всем узлам (если InstanceCount число меньше количества узлов).

Нет ограничений на количество служб, которые вы можете запускать на одном узле, но каждая служба будет потреблять ресурсы (ЦП, ОЗУ, порты и т. Д.), И это может стать проблемой. В этом случае у вас есть несколько вариантов:

  1. Увеличьте размер виртуальной машины для этого типа узла

  2. Масштабируйте тип узла (добавьте больше узлов) и укажите меньшее количество экземпляров для каждой службы (чтобы не каждый узел имел все службы)

  3. Создайте больше типов узлов и организуйте службы соответствующим образом, используя ограничения размещения (например, у вас могут быть узлы с высокой вычислительной мощностью, узлы с высокой оперативной памятью, общедоступные узлы, внутренние узлы, финансовые узлы, узлы аналитики... это зависит от того, что имеет смысл для вашего сценария).

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

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


Обновление: добавляем интересные ссылки

Вы можете помочь Service Fabric более эффективно управлять вашим кластером, заставив свои службы сообщать о динамических показателях, а также установив ограничения на то, какие ресурсы может использовать одна служба (например, чтобы служба не использовала всю память узла):

Пользовательские показатели

Управление ресурсами

Другие вопросы по тегам