Настройка сервисов в соответствии с потребностями пользователей
Стандартные значения свойств сервиса могут не соответствовать потребностям ваших пользователей. Это особенно актуально, если пользователей много или они делают много запросов на ваш сайт ArcGIS Server. В этом разделе представлен обзор некоторых параметров и методик, которые вы можете использовать при конфигурации ваших сервисов.
Об экземплярах сервиса
Запрос к сервису на сайте ArcGIS Server, например, перемещение карты, навигация к адресу или показ изображения с правилами отображения, обрабатывается экземпляром опубликованного сервиса, запущенного на компьютере сервера. Экземпляры сервисов работают на базе собственных серверных процессов Esri, называемых процессами ArcSOC. Каждый процесс ArcSOC потребляет для работы некоторое количество памяти компьютера.
Если на сайте ArcGIS Server имеется много сервисов, и каждый из них использует один или несколько экземпляров сервисов, которые всегда работают, доступная память компьютера может в конечном итоге достичь своего предела. Кроме того, организация тратит энергию на запуск экземпляров сервисов, а при развертывании ArcGIS Server в облачной инфраструктуре каждый запущенный экземпляр сервиса несет прямые денежные затраты.
Соответственно, администраторам ArcGIS Server важно отслеживать количество запущенных экземпляров сайта и ограничивать число запущенных экземпляров, если производительность тормозится использованием памяти.
Пользователи ожидают быстрых результатов при взаимодействии с вашими сервисами (включая продукты, созданные на основе сервисов, такие как веб-карты и приложения). Для обработки трафика, получаемого сервисами, требуются соответствующие процессы ArcSOC. Однако подготовка большего количества ресурсов сервера, чем требуется сервису, приводит к потере памяти компьютера, энергии и денег. Хорошей целью для администраторов является сокращение числа запущенных экземпляров сервисов до необходимого количества без ущерба для производительности.
Общие и выделенные экземпляры сервисов
ArcGIS Server позволяет использовать пул общих экземпляров или выделенные экземпляры для каждого совместимого картографического сервиса или сервиса изображений, опубликованного на ArcGIS Server из ArcGIS Pro. Работа с общими экземплярами экономит использование памяти путем объединения нескольких активных серверных процессов в пул для нескольких сервисов. С другой стороны, выделенные экземпляры делают сервис всегда доступным для обработки запросов с помощью одного или нескольких серверных процессов и идеально подходят для сервисов, получающих постоянные или особенно ресурсоемкие запросы.
Для новых развертываний ArcGIS Server по умолчанию используются общие экземпляры. Администраторы могут выбрать тип экземпляра по умолчанию (определяющий, должен ли совместимый картографический сервис изначально использовать общие или выделенные экземпляры) и в любое время изменить тип экземпляра для отдельного сервиса.
Подсказка:
Чтобы определить, из какого приложения был опубликован сервис, см. Среда исполнения сервиса и Свойства типа экземпляра для каждого сервиса в приложении ArcGIS Server Manager.
Следующие ограничения определяют, какие сервисы могут использовать общий пул экземпляров:
Для использования общего пула экземпляров можно настроить только картографические сервисы и сервисы изображений. Другие типы сервисов, такие как сервисы геообработки, не поддерживаются.
Можно включить только следующие возможности: отображение, визуализация, доступ к объектам, WFS, WMS и KML. Отключите все остальные возможности перед преобразованием выделенного сервиса в общий.
Выделенный экземпляр картографического сервиса или сервиса изображений работает с использованием выделенного пула процессов ArcSOC. Процессы в этом пуле не будут использоваться для других сервисов. Общая карта экземпляра или сервис изображений работает с использованием пула процессов ArcSOC, которые также используются для любого другого сервиса общих экземпляров. По умолчанию каждый общий экземпляр ArcSOC кэширует 50 последних сервисов, чтобы они были готовы к обработке запросов. Если общий экземпляр ArcSOC уже содержит максимальное количество кэшированных сервисов при запросе пользователя к новому сервису, ArcSOC разгружает наименее недавно использованный сервис и загружает новый сервис. Если пользователи регулярно делают запросы более чем к 50 сервисам общих экземпляров, можно увеличить количество кэшированных сервисов по умолчанию на один общий экземпляр.
Применение каждого типа экземпляров
Общие экземпляры обычно рекомендуются вместо выделенных. Общие экземпляры обеспечивают большую общую эффективность, поскольку имеют одинаковую медианную производительность и пропускную способность, но требуют значительно меньше системных ресурсов.
Есть две ситуации, в которых рекомендуются выделенные экземпляры.
Когда бизнес-цели требуют, чтобы небольшой набор сервисов обладал повышенной производительностью и масштабируемостью по сравнению с другими сервисами.
Если функциональность не поддерживается на общих экземплярах, таких как SOE, которые не являются потокобезопасными или инженерными сетями.
Назначение сервисов в качестве выделенных не повысит эффективность автоматически. Чтобы повысить производительность при использовании выделенных экземпляров, необходимо также уменьшить количество доступных для общих экземпляров и задать их для вашего выделенного сервиса. Задание слишком большого количества сервисов в качестве выделенных, скорее всего, снизит производительность. Рекомендуется иметь как можно меньше специализированных картографических сервисов и сервисов изображений на каждом сайте.
Картографические сервисы и сервисы изображений требуют нагрузки на процессор. Обычно пропускная способность ArcGIS Server, ориентированного на картографические сервисы и сервисы изображений, ограничивается числом ядер процессора. Если у компьютера вашего сервера восемь ядер, а все ваши сервисы — общие экземпляры, максимальная пропускная способность, скорее всего, достигнет пика, когда машина работает с восемью одновременными запросами. ArcGIS Server обрабатывает больше, но дополнительные запросы будут делить процессоры. Все сервисы, использующие общие экземпляры, имеют одинаковый приоритет и могут использовать всю мощность процессора вашего сервера.
Выделенные экземпляры подходят для сервиса, требующего стабильной производительности, даже если это приводит к плохой работе других сервисов. Например, если у вас восемь ядер, вы можете выделить половину из них только для этого сервиса, установив минимальное и максимальное количество выделенных экземпляров на четыре. Чтобы обеспечить доступность как минимум четырёх ядер для этого выделенного сервиса в любое время, можно сократить количество общих экземпляров до четырёх, чтобы они никогда не использовали больше половины из восьми ядер.
ArcGIS Server поддерживает перераспределение экземпляров. Это означает, что даже если у компьютера всего восемь ядер, вы можете назначить больше экземпляров, чем ядер. Хотя перераспределение возможно, оно затрудняет прогнозирование и сложно контролируемо. Использование перераспределения на 10%–20% может повысить эффективность, но большая доля перераспределения, скорее всего, негативно скажется на вашей производительности. Вместо чрезмерного назначения выделенных экземпляров вы, скорее всего, заметите улучшение производительности при конвертации некоторых выделенных сервисов в общие экземпляры.
Минимальное и максимальное число экземпляров сервисов
Если сервис использует выделенные экземпляры, можно настроить минимальное и максимальное число экземпляров, разрешенных для каждого компьютера. Эти параметры могут помочь сервисам вашего сайта приспособиться к колебаниям объема трафика.
Свойство минимального числа экземпляров представляет собой количество выделенных экземпляров, которые уже созданы и доступны для использования в сервисе на каждом компьютере ArcGIS Server. Например, если вы зададите для этого параметра три экземпляра, то в любой момент времени в процессах ArcSOC всегда будет по крайней мере три экземпляра, даже если сервис не используется. Если вы сомневаетесь, что много пользователей будут одновременно работать с сервисом, уменьшите минимальное число экземпляров.
Максимальное число экземпляров представляет самое большое число экземпляров определенного сервиса, которые могут быть запущены на любом компьютере ArcGIS Server. Как администратор, определите число экземпляров, которое позволит обработать все запросы пользователей, обеспечив должную производительность.
Количество экземпляров, необходимых в конфигурации сервиса, лучше всего определить путем мониторинга сервера в течение некоторого времени. Если время ожидания клиента велико или истекает время ожидания запросов, может потребоваться изменить количество доступных экземпляров или способ использования этих экземпляров приложением.
Следует учесть продолжительность работы пользователей с вашими сервисами. Некоторые запросы к серверу требуют больше ресурсов, чем другие. Большое число простых запросов сервисов может не так загрузить сервер, как меньшее число ресурсоемких запросов. У каждого сервиса есть свойство максимального времени ожидания и свойство максимального времени использования. Если время ожидания на выполнение запросов пользователей к сервисам последовательно превышают заданное, следует увеличить максимальное число доступных экземпляров сервиса.
После определения числа экземпляров, поддерживающих работу клиентов, разделите его на число компьютеров ArcGIS Server в развертывании и задайте полученный результат свойству максимального числа экземпляров. Например, если вам нужно не более десяти экземпляров сервиса, способных одновременно обрабатывать его запросы, и доступно два компьютера ArcGIS Server, установите максимальное число экземпляров равным пяти.
Каждый экземпляр потребляет память, даже когда сервис не используется. Установка минимального количества экземпляров на компьютер ниже максимального количества экземпляров на компьютер позволяет освобождать память, когда она не используется. Эта функция обычно оказывает небольшое влияние на производительность. При необходимости запуска новых экземпляров запросы могут обрабатываться с задержками. Чтобы предотвратить эту задержку, вы можете установить минимальное количество экземпляров на компьютер, равное максимальному количеству экземпляров на компьютер.
Используйте журналы и статистику сервера, чтобы определить, вызывают ли запросы сбои и не превышают ли сервисы максимальное время использования. Используйте Server Manager для корректировки числа доступных экземпляров сервиса, а также максимального времени ожидания и максимального времени использования сервиса.
Слияние экземпляров сервиса
Все сервисы, опубликованные с ArcGIS Server, объединяются в пул. Это означает, что экземпляры сервиса могут совместно использоваться различными сеансами приложений.
Приложение, использующее экземпляр сервиса из пула, применяет его только в течение времени, необходимого для выполнения одного запроса (например, для отображения карты или геокодиования адреса). После завершения запроса приложение освобождает свою ссылку на сервис и возвращает ее в пул доступных экземпляров.
Очистка экземпляров сервиса
Очистка сервисов позволяет уничтожить более ненужные сервисы и заменить их на новые. Этот процесс также освобождает ресурсы, занятые устаревшими сервисами.
Сервисы обычно разделены между несколькими приложениями и их пользователями. При повторном использовании несколько ситуаций могут привести к тому, что сервис станет недоступным для приложений. Например, приложение может некорректно изменить состояние сервиса или же приложение может удержать ссылку на сервис, что сделает его недоступным для других приложений и сеансов. В некоторых случаях сервисы могут быть повреждены и стать непригодными. Очистка позволяет обновлять пул сервисов и удалять устаревшие или непригодные сервисы.
Во время этого процесса сервер удаляет, а затем воссоздает каждый экземпляр в конфигурации сервиса. Очистка выполняется как фоновый процесс на сервере. Хотя вы и не увидите ничего, что сообщит о выполнении очистки, вы сможете увидеть события, связанные с очисткой, в файлах журнала.
При очистке уничтожаются и воссоздаются все запущенные экземпляры сервиса независимо от того, превышает ли число экземпляров минимальное значение. Для периодического сокращения числа запущенных экземпляров до заданного минимума сервис нужно остановить и перезапустить. Хороший способ автоматизировать этот процесс – создать скрипт Python, shell-скрипт или пакетный скрипт Windows, запускающий исполняемый файл командной строки ArcGIS Server с административным API-интерфейсом. Пользовательский исполняемый файл принимает имя сервера, имя сервиса, тип сервиса и то, следует ли сервис запустить или остановить, в качестве аргументов командной строки.
Время между событиями очистки называется интервалом очистки. Интервал очистки по умолчанию равен 24 часам, но его можно изменить в диалоговом окне Редактор сервисов (Service Editor). Вы можете выбрать время первоначальной очистки конфигурации. С этого времени очистка будет происходить по истечении интервала очистки.
Сервисы обрабатываются по одному экземпляру за раз, чтобы обеспечить доступность экземпляров и распределить спады производительности за счет создания нового экземпляра каждого сервиса. Очистка происходит в случайном порядке. Однако экземпляры сервисов, используемые клиентами, не обрабатываются до их освобождения. Таким образом очистка не влияет на работу пользователей.
Если во время очистки нет экземлпяров, доступных для очистки, запрос ставится в очередь, пока экземпляр не станет доступным. Если в течение этого периода превышено максимальное время ожидания, в журнал будет записано обычное сообщение.
Проверка неактивных подключений к данным
Если экземпляр сервиса не активен, администратор сервера с трудом может определить, успешно ли поддерживаются подключения к исходным данным. ArcGIS Server имеет встроенные механизмы проверки неактивных подключений к многопользовательским базам геоданных. Эти проверки позволяют избежать ситуации, когда сервис перестает отвечать на запросы после отключения или прерывания соединения с базой данных.
Примечание:
Поддержка проверки неактивного подключения к данным не относится к файловым базам геоданных.
Вы можете включить проверки подключения к данным на вкладке Процессы диалогового окна Редактор сервисов в ArcGIS Server Manager и отметить опцию Периодически проверять и восстанавливать подключения к данным для простаивающих экземпляров. Вам также нужно указать интервал в минутах, после которого подключения сервиса автоматически проверяются (и восстанавливаются при необходимости). Обычно значения по умолчанию, равного 30 минутам, достаточно.
Включение этих проверок полезно также в случаях, когда брандмауэры закрывают порты к интегрированным базам геоданных, если сервисы простаивают в течение определенного периода времени. В этой ситуации на ваш выбор интервала могут повлиять настройки времени ожидания брандмауэра.
Время ожидания
Понимание различных доступных значений времени ожидания может помочь добиться стабильности и доступности работы сервисов. Эти значения доступны на закладке Слияние сервисов (Pooling) в диалоговом окне Редактора сервисов (Service Editor).
После того, как клиент получает ссылку на сервис, он использует сервис в течение определенного времени перед тем, как освободить его. Период времени между тем, когда клиент получает ссылку на сервис, и тем, когда он освобождает его, является временем использования. Чтобы убедиться в том, что клиенты не удерживают ссылки на сервисы слишком долго (т.е. они корректно освобождают сервисы), у каждого сервиса есть максимальное время использования сервиса клиентом. Если клиент удерживает сервис дольше, чем заданное максимальное время использования, сервис автоматически освобождается, а клиент теряет ссылку на сервис.
Более подробно:
При создании нового сервиса значение максимального времени использования по умолчанию равно 600 секундам (10 минутам). Однако в предварительно созданном сервисе PublishingTools, который поставляется с каждым сайтом ArcGIS Server, максимальное время использования задано как 3600 секунд (60 минут). Это сделано для публикации задач, которые копируют большой объем данных на сервер.
Максимальное время использования также защищает сервисы от использования для выполнения большего объема работ, чем указано администратором. Например, у сервиса, используемого приложением для выполнения откреплений из базы геоданных, максимальное время использования может быть равно 10 минутам. Напротив, сервис с одним слоем, который используется только для отображения карт в приложении, может иметь максимальное время работы от 1 минуты.
Когда используется максимальное количество экземпляров сервиса, клиент, запрашивающий сервис, ставится в очередь, пока другой клиент не освободит один из сервисов. Период времени между тем, когда клиент запрашивает сервис, и получением сервиса является временем ожидания. У каждого сервиса есть максимальное время ожидания доступа к сервису. Если время ожидания клиента превышает максимальное время ожидания сервиса, запрос снимается.
Третье время ожидания указывает максимальное время работы экземпляра при простое. Когда сервисы больше не используются, они продолжают выполняться на сервере, пока другому клиенту не понадобится экземпляр. Запущенный, но неиспользуемый экземпляр все равно потребляет память сервера. Вы можете минимизировать число запущенных сервисов и, тем самым, сэкономить память, укоротив время простоя, равное по умолчанию 1800 секундам (30 минутам). Недостаток короткого времени простоя состоит в том, что когда истекает время ожидания всех сервисов, клиенты должны подождать создания новых экземпляров.
При создании экземпляров сервисов на ГИС-сервере, как в результате запуска сервера, так и при ответе на запрос сервера клиентом, время, необходимое на инициализацию экземпляра сервиса, называют временем создания. Время ожидания запуска, установленное в ГИС-сервере, определяет период времени после попытки запуска, по истечении которого ГИС-сервер считает запуск несостоявшимся и отменяет создание экземпляра сервиса. Значение по умолчанию – 300 секунд (5 минут).
ГИС-сервер хранит статистику о времени ожидания, времени использования и других событиях, которые происходят на сервере, в памяти и в журналах. Администратор сервера может использовать эту статистику, чтобы определить, например, не слишком ли велико время ожидания для сервиса, что может указывать на необходимость увеличения максимального числа экземпляров для этого сервиса.
Может потребоваться дополнительное время ожидания, учтенное в архитектуре, за счет появления несоответствия между указанными значениями времени ожидания сервиса и реальными временами ожидания для пользователей. Например, веб-сервер, на котором размещается ArcGIS Web Adaptor, или балансировщик загрузки сети, могут вызвать времена ожидания, которые скажутся на сервисах.
Примечание:
Если ваш сайт сильно загружен, ожидайте возникновения несоответствия между указанными значениями времени ожидания сервиса и временами ожидания на стороне пользователей.
Ограничение действий, которые пользователи могут совершать с сервисом
Чтобы облегчить управление веб-сервисами, у каждого типа сервиса есть набор разрешенных операций. Каждая из них содержит набор методов, которые можно включить или отключить как группу. Клиенты веб-сервиса могут вызывать только методы разрешенных операций.
Предположим, что вам нужно разрешить клиентам картографического веб-сервиса рисовать карту, но не запрашивать источники данных слоев карты. Для этого необходимо отключить операцию Данные (Data) и убедиться, что операция Карта (Map) разрешена.
Сервисы объектов представляют особый интерес в этой дискуссии, так как они используются для веб-редактирования данных ГИС. Сервисы объектов имеют дополнительный набор операций, которые можно использовать для ограничения функций редактирования. Их можно включить или отключить на вкладке Доступ к объектам в диалоговом окне Редактор сервиса в ArcGIS Server Manager. Вы также можете запретить пользователям редактирование объектов, которые были созданы не ими, применив управление доступом на основе владения.
Информацию по допустимым операциям для различных типов сервисов смотри в разделе справки Типы сервисов.
Сценарии настройки сервиса
Следующие сценарии приводят реальные примеры того, как администратор может настроить сервисы под потребности пользователей.
Сценарий: медленное время отклика сервиса
К вам обратился пользователь вашей организации, который пожаловался на неприемлемое время ожидания отображения определенного картографического сервиса. Выполнив тестирование, вы обнаруживаете, что прорисовка определенного слоя в этом картографическом сервисе слишком медленная. Для дальнейшей проверки вы диагностируете производительность картографического сервиса с помощью журналов сервера и отделяете информацию, относящуюся к этому картографическому сервису.
Возможная причина №1
Просмотрев записи журнала Server Manager, вы обнаруживаете, что время прорисовки слоя (или слоев) в этом сервисе выше допустимого.
Обычные способы решения проблемы №1
Оптимизируйте производительность картографического сервиса, выполнив следующее:
Используйте масштабно-зависимое отображение.
Удалите неиспользуемые слои и фреймы данных.
Используйте проверку для определяющих запросов.
Упростите символы слоя
По возможности используйте кэшированные карты (например, когда данные редко изменяются).
Выполнив осмотр сервиса и рекомендации по его оптимизации, после его публикации заново вы и ваши коллеги замечаете существенное улучшение в реагировании картографического сервиса.
Возможная причина №2
Журналы Server Manager указывают на то, что производительность сервиса страдает из-за замедленного доступа к слою через интернет.
Обычные способы решения проблемы №2
Чтобы сократить отставание в сети и замедленный доступ и управление данными, а также оптимизировать производительность сервиса используйте следующие рекомендации:
Оптимизируйте слои запросов. Дополнительную информацию см. в разделах Что такое слой запросов? и Создание слоя запросов.
Определите, какая база геоданных – многопользовательская или файловая будет оптимальной для данного конкретного сервиса. Для получения дополнительной информации см. раздел Вопросы базы данных о публикации сервисов.
Ознакомьтесь с разделом Варианты хранилищ данных для сервисов изображений для публикации подсказок.
Выполнив проверку сервиса и рекомендации по доступу и управлению данными, после его публикации заново вы и ваши коллеги замечаете существенное улучшение в реагировании картографического сервиса.
Сценарий: обеспечение достаточных ресурсов машин
Вы создали долгожданное веб-приложение и хотели бы представить его для широкой аудитории в объявленную дату на текущей неделе. Поскольку вы ожидаете большое число запросов на сервисы в этом приложении, вы хотите убедиться, что у вас достаточно аппаратных ресурсов для его поддержки.
Чтобы выделить достаточный объем аппаратных ресурсов сервера для поддержания высокого уровня использования этого веб-приложения, вы изучите статистику ArcGIS Server, чтобы определить, какие сервисы используются нечасто, и настроить их свойства соответственно числу пользователей этого приложения. Вы также настроите соответственно свойства сервисов, которые будут использоваться в веб-приложении.
Возможное решение
Выполните точную настройку свойств сервиса, чтобы выделить ресурсы для сайта. Например, следует учесть продолжительность работы пользователей с сервисами. Использовались ли эти сервисы сверх их максимального времени работы? Сталкиваются ли пользователи с перерывами в работе в связи с большим числом обращений к сервису?
Руководствуйтесь следующими рекомендациями для настройки свойств сервисов, чтобы предусмотреть и обслужить всех пользователей:
Определите наиболее часто используемые сервисы и увеличьте минимум экземпляров для каждого. Так вы уменьшите время ожидания для пользователей.
Перенесите сервисы с выделенными экземплярами, которые могут использовать общий пул экземпляров.
По возможности увеличьте минимум и максимум экземпляров, время ожидания, время простоя и время использования, что поможет смягчить задержки для пользователей.
Где это целесообразно, уменьшите экземпляры, время ожидания и время простоя, чтобы по возможности высвободить системные ресурсы для сервисов, которые нуждаются в них больше других.