Skip to main content

Масштабирование сервисов

После того, как вы опубликовали ГИС-сервисы, рекомендуется проводить их мониторинг, например, просматривая статистику использования сервиса, чтобы понять модели использования и получить представление о том, как следует настроить ресурсы на основе наблюдаемого трафика. По мере изменения структуры трафика и требований пользователей к вашим сервисам вы можете соответствующе реагировать на это несколькими способами. Чтобы удовлетворить спрос и ожидаемую производительность, рассмотрите следующие способы оптимизации ресурсов сервисов:

  • Настройте режим сервиса, чтобы максимизировать выделенные ресурсы для сервиса.

  • Масштабируйте сервисы вручную, указав количество модулей, которые должны быть выделены для каждого сервиса.

  • Включите автоматическое масштабирование, указав пороговое значение, при котором модули будут автоматически выделяться для сервиса.

При выборе подходящей опции учитывайте следующие сценарии.

Типы масштабирования

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

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

  • Вертикальное масштабирование — добавляет CPU или память к текущему набору модулей в развертывании. Поддерживается для масштабирования вручную.

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

Масштабирование также увеличивает доступность и общую пропускную способность экземпляров сервисов, а также потребление ими памяти и CPU. Поскольку вы масштабируете свою инфраструктуру Kubernetes, эта опция является отказоустойчивой; модули, которые выходят из строя, автоматически восстанавливаются, не затрагивая другие модули. Он также обеспечивает независимое и изолированное масштабирование, не затрагивая другие сервисы или компоненты вашей системы.

Примечание:

Кластер Kubernetes, на котором развернута ваша организация, имеет конечное число компьютерных узлов. При масштабировании многих ГИС-сервисов вручную или автоматически ваша организация может достичь предела компьютерных ресурсов, выделенных для ArcGIS Enterprise on Kubernetes. Если это произойдет, обратитесь к своему ИТ-администратору, чтобы добавить больше узлов в кластер Kubernetes. Рассмотрите возможность использования кластерного автомасштабирования в качестве решения для этого в вашей среде.

Горизонтальное масштабирование

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

Горизонтальное масштабирование для выделенного сервиса геообработки

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

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

Горизонтальное масштабирование для развертывания общего сервиса объектов

Вертикальное масштабирование

Вертикальное масштабирование добавляет CPU или память к текущему набору модулей в развертывании и поддерживается для ручного масштабирования путем изменения ограничений и запросов ресурсов. Ограничения ресурсов представляют собой максимальный объем ресурсов, который сможет использовать каждый модуль. Установите запросы ресурсов на уровень, соответствующий использованию модулей, чтобы обеспечить им доступ к достаточным ресурсам. Например, если модули для сервиса обычно используют 1,5 ГиБ памяти, установите запросы памяти как минимум на 1,5 ГиБ.

Вертикальное масштабирование для выделенного сервиса изображений

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

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

Вертикальное масштабирование для выделенного картографического сервиса

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

Вертикальное масштабирование для развертывания общего картографического сервиса

Сценарии

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

  • Веб-карта в общественной организации неожиданно получает большой объем трафика, и у пользователей возникают задержки с производительностью. Администратор организации просматривает системные журналы и определяет, что картографический сервис, используемый веб-картой, перегружен. Во-первых, они могут изменить режим работы сервиса с использования общих ресурсов на использование выделенных ресурсов. Затем он может увеличить количество реплик модуля для развертывании сервиса. Предоставляя выделенные ресурсы для картографического сервиса, администратор гарантирует, что высокий трафик сервиса будет обрабатываться без проблем с производительностью.

  • Геодезическая компания накопила в своей организации сотни сервисов объектов. Все они работают в режиме общих ресурсов, поэтому их поддерживает одно развертывание сервиса. Ни один из сервисов не получает большого трафика, но использование всех ГИС-ресурсов организации загружает развертывание сервиса. Администратор организации выбирает вручную масштабировать сервис путем увеличения числа реплик модулей в развертывании сервиса. Чем больше запущено общих экземпляров, тем лучше обрабатывается трафик множества сервисов объектов организации.

  • Во время выполнения проекта переноса ресурсов ГИС-организация городского правительства повторно публикует множество веб-карт и веб-слоев в своей организации. Из-за нехватки времени они хотят завершить это побыстрее. Поскольку публикация сервисов, лежащих в основе веб-карт и веб-слоев, выполняется служебным сервисом PublishingTools, ресурсы компьютера, доступные этому служебному сервису, определяют, насколько быстро может происходить публикация. Администратор организации временно увеличивает количество реплик пода в развертывании сервиса PublishingTools, чтобы повысить эффективность публикации на время проекта. После завершения проекта он уменьшает количество реплик пода в развертывании сервиса для экономии ресурсов компьютера.

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

    Оптимальным вариантом будет, когда администратор может использовать автоматическое масштабирование. Автоматическое масштабирование позволяет поддерживать минимальное количество модулей и задавать максимальное количество модулей, до которого система может масштабироваться, в зависимости от установленных вами пороговых значений CPU. Этот метод обеспечивает автоматическое определение того, когда увеличить или уменьшить количество модулей в ответ на изменение нагрузки. Это устраняет необходимость постоянного мониторинга и позволяет системе экономить ресурсы.

Изменение режима работы сервиса

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

Масштабирование вручную

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

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

Автомасштабирование

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

Когда вы включаете автоматическое масштабирование сервиса, реплики модулей в развертывании будут автоматически увеличиваться или уменьшаться в зависимости от спроса. Развертывание сервиса будет использовать ваши предопределенные критерии, такие как CPU или память, для расчета потребности в большем или меньшем количестве модулей и будет соответствующим образом корректироваться.

Примечание:

Для использования горизонтального автомасштабирования модулей в ArcGIS Enterprise on Kubernetes требуется сервер метрик для сбора метрик потребления ресурсов модулей из процесса kubelet на каждом работающем узле. Дополнительные сведения см. в разделе Сервер метрик Kubernetes.

Роль экземпляров сервиса

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