При создании кэша для растровых листов, полученных с использованием слоев изображений карты и слоев изображений, необходимо ознакомиться с рядом инструментов и процессов.
Примечание:
Термин картографический сервис может использоваться взаимозаменяемо с термином слой изображений карты, а термин сервис изображений - с термином слои изображений.
Кэширование
Инструменты управления кэшем для сервисов сервера, таких как слои кэшированной карты, слои изображений и слои листов, расположены в группе инструментов кэширования > Инструменты сервера в ArcGIS Pro. Дополнительные сведения см. в разделе Обзор группы инструментов Кэширование.
Примечание:
Для использования всех инструментов кэширования требуются учетные данные издателя или администратора.
Ресурсы сервера для кэширования
Создание кэшей и управление ими в ArcGIS Server поддерживается предварительно настроенным контроллером кэширования и сервисами геообработки инструментов кэширования. Эти системные сервисы становятся доступными при создании сайта ArcGIS Server. Количество экземпляров, которое вы разрешаете использовать сервису CachingTools, определяет мощность, выделяемую компьютером для кэширования заданий, а количество экземпляров сервиса контроллера Кэширование в папке System определяет, сколько заданий может выполняться одновременно.
Увеличение числа экземпляров картографического сервиса или сервиса изображений не сказывается на скорости создания листов. Экземпляры картографического сервиса или сервиса изображений используются для выполнения операций запроса и идентификации с сервисом и не применяется для отображения кэшированного содержимого. Вы можете снизить нагрузку на ресурсы сервера, воспользовавшись преимуществами общих экземпляров кэшированных картографических сервисов, настроив слияние картографических сервисов и сервисов изображений. Дополнительные сведения см. в разделе Настройка параметров экземпляра сервиса.
Выбор числа экземпляров для сервиса CachingTools
Вы можете использовать ArcGIS Server Manager в любой момент для настройки максимального количества экземпляров сервиса геообработки CachingTools, доступных для заданий кэширования. Минимальное и максимальное значения применяются к каждому отдельному ГИС-серверу, поэтому если максимальное значение равно 3, а у вас имеется четыре ГИС-сервера, на которых запущен сервис CachingTools, то можно получить до 12 работающих экземпляров CachingTools.
Это поведение позволяет добавлять и удалять ГИС-серверы на сайте для увеличения или уменьшения количества выделенных для кэширования ресурсов. ГИС-сервер можно добавить даже во время выполнения задания кэширования; он будет обнаружен, и для него будет выделена часть задачи по созданию листов кэш.
Важно, чтобы вы выбрали соответствующее количество экземпляров сервиса CachingTools. Если вы разрешите использование слишком большого числа экземпляров, все ресурсы компьютера будут заняты и процесс станет неэффективным. Но если экземпляров будет слишком мало, компьютер может быть загружен недостаточно. Поиск наилучшего числа экземпляров в ваших обстоятельствах выполняется методом проб и ошибок. Однако рекомендуется для начала установить максимальное значение n, где n - это количество процессорных ядер на одной машине в вашем кластере.
Выбор числа экземпляров для задания кэширования
Такие инструменты, как Управление листами кэша картографического сервиса, позволят вам выбрать, какое число экземпляров CachingTools будут работать. Вы можете разделить имеющиеся экземпляры CachingTools между несколькими выполняющимися заданиями. Задание может не использовать максимальное число экземпляров CachingTools, если эти экземпляры используются другими заданиями. Если кэширование использует все экземпляры CachingTools, другие запрошенные задания ставятся в очередь до завершения первого задания.
Например, вы хотите создать кэш и у вас есть четыре ГИС-сервера на сайте. Вы настроили каждый сервер на использование пяти экземпляров CachingTools максимум. Максимальное число экземпляров, которые могут выполнять задачу кэширование – 20. Если вы собираетесь запустить параллельно две задачи кэширования на сайте, поддерживая при этом равномерное распределение ресурсов, вы можете использовать по 10 экземпляров на каждую задачу.
Предоставление гибкости
Вполне возможно, что вы сконфигурировали свой сайт в облачной среде, которая может автоматически добавлять ГИС-серверы по запросу. Возможно вы не захотите ограничиваться фиксированным максимальным числом экземпляров, которые могут работать над заданием. В этом случае можно ввести значение -1, чтобы указать, что ограничений на число экземпляров, которые могут работать над заданием, не существует. Все имеющиеся экземпляры CachingTools будут использоваться для задания, независимо от того, сколько ГИС-серверов добавлено на ваш сайт.
Установка числа задач, которые могут выполняться одновременно
В случае, если слишком много издателей начнут одновременно запрашивать построение кэша, ресурсы сервера будут все использованы, даже если вы будете использовать лишь несколько экземпляров для выполнения каждой задачи. Сервис CachingControllers (в папке System) определяет, сколько задач можно одновременно запускать.
Максимальное количество экземпляров для CachingControllers по умолчанию равно трем, что соответствует возможности одновременного запуска трех задач кэширования. Когда сервер получает запрос на четвертую задачу кэширования, она будет поставлена в очередь до завершения одной из других задач. Если вы хотите разрешить одновременный запуск четырех задач, установите значение максимального числа экземпляров CachingControllers, равное 4.
Автоматизация создания кэша и обновлений с помощью геообработки
При работе с базовой картой, которая вряд ли будет изменяться, вероятно вы создадите кэш всего один раз. Можно запустить инструменты геообработки ArcGIS для создания кэша и добавления в него листов. Это также подходящий способ обновления кэша, если данные изменяются не очень часто.
Если данные меняются часто, вы все равно можете продолжать использовать кэширование. Инструменты кэширования разработаны так, чтобы позволять создавать скрипты обновления кэша и назначать определенные части кэша для обновлений. Например, вы можете делать следующее:
- Обновляйте кэш только для уровней масштаба, где есть изменения.
- Обновляйте только области кэша, которые входят в границы класса объектов.
- Автоматизируйте обслуживание кэша.
Чтобы автоматизировать процесс кэширования, нужно написать скрипты, использующие инструменты из группы инструментов Кэширование в наборе Серверные инструменты.
Чтобы создать кеш картографического сервиса или сервиса изображений, обычно запускается инструмент Построить кэш картографического сервера, который инициализирует кэш. Затем запускается Управление листами кэша картографического сервера, чтобы добавить листы в кэш.
Существует множество инструментов для экспорта, импорта и удаления кэша. Краткое описание доступных инструментов см. в статье Обзор группы инструментов Кэширование.
Использование инструментов в скриптах
Хотя вы можете вручную открыть инструменты кэширования с панели Каталог или в окне Поиск, эффективнее создать модель в ModelBuilder или написать скрипт геообработки, содержащий один или несколько необходимых для запуска инструментов. Затем можно настроить график автоматического запуска скриптов.
Справочный раздел по инструменту геообработки содержит полный пример кода Python, показывающий, как использовать этот инструмент в скрипте. Например, смотрите справку по инструменту Управление листами кэша картографического сервиса.
Если вы не знакомы с Python, следующие ресурсы позволят вам узнать больше:
- Что такое Python? – справка ArcGIS содержит введение в скрипты Python, начинающееся с этого раздела.
- Экспорт модели – если вы создали модели в ModelBuilder, вы можете экспортировать их в Python, чтобы увидеть, как выглядит соответствующий скрипт.
Запуск скриптов на Linux
При запуске скриптов Python, использующих модуль ArcGIS arcpy, выполните действия, описанные в статье Размещение пользовательских пакетов Python для ArcGIS Server.
Планирование регулярного запуска скрипта
Скрипт можно сохранить как файл скрипта Python (.py). Вы можете дважды щелкнуть скрипт , чтобы запустить его. Это полезно для тестирования, но в большинстве случаев требуется запускать скрипт автоматически на регулярной основе.
Ваша операционная система содержит утилиты, позволяющие планировать задачи, такие как выполнение скрипта. Необходимо указать расположение файла скрипта, частоту его выполнения, имя и пароль, под которыми будет выполняться задача. Дополнительные сведения см. в статье Программирование скрипта Python для запуска в заданное время.
Если процесс кэширования завершается сбоем
Задания по созданию кэша, отправляемые клиентами, такими как ArcGIS Pro, передаются в сервис геообработки контроллера кэширования, который делит задания на пакеты и отправляет их в сервис геообработки инструментов кэширования (worker). Затем сервис геообработки инструментов кэширования отрисовывает карту или сервис изображений и генерирует для них листы. Иногда этот процесс может завершиться сбоем до того, как задание будет помечено как успешное или неудачное. В этих случаях контроллер кэширования может продолжать ожидать завершения процесса.
Параметр maxTimeForWorkerJob в сервисе геообработки контроллера кэширования определяет максимальное время ожидания, после которого сервис геообработки контроллера кэширования помечает задание как отмененное. Администратор может изменить значение для maxTimeForWorkerJob, чтобы оно превышало среднее время для экстента пакета для данного уровня.
Например, если создание кэша для экстента пакета на уровне 19 занимает в среднем 10 минут, рекомендуется установить значение для maxTimeForWorkerJob, равным 20 минутам. Значение по умолчанию для maxTimeForWorkerJob – 300 минут.