Решение проблем производительности картографического сервиса с помощью журналов сервера
Запись подробных событий в журнал вплоть до уровня отрисовки слоев доступна при выборе уровня Подробный (Verbose). Детализированные журналы особенно полезны при устранении проблем с производительностью. В этом разделе рассмотрим сценарий с картографическим сервисом, отображающим данные не так быстро, как требуется.
Если вам нужно узнать больше сведений о том, что происходит во время отображения карты, вы можете открыть модуль Журналы (Logs) в Менеджере ArcGIS Server, включить ведение журнала на уровне Подробный (Verbose), выполнить запрос к картографическому сервису и просмотреть полученный журнал. Для того чтобы сделать это, выполните следующие действия.
- Откройте Менеджер (Manager) и войдите в него. Справка по этому шагу приведена в разделе Вход в Менеджер.
- Нажмите Журналы (Logs) > Просмотр журналов (View Logs) > Настройки (Settings).
- Установите уровень журнала Подробный (Verbose). Нажмите Сохранить (Save).
- В клиентском приложении выполните простой запрос к картографическому сервису (панорамирование или изменение масштаба). Отметьте текущее время, чтобы найти соответствующий запрос в журнале.
- В Менеджере (Manager) выберите Журналы (Logs) > Просмотр журналов (View Logs).
- В раскрывающемся списке журнала Уровень (Level) выберите Подробный (Verbose).
- В ниспадающем списке Источник (Source) выберите картографический сервис. Он будет указан как ServiceName.MapServer.
Щелкните Запрос (Query).
- Изучите журнал, созданный во время выполнения вашего запроса, и отметьте количество объектов и время, понадобившееся на отрисовку каждого слоя. На этом этапе иногда полезно распечатать журнал и использовать маркер подсветки, чтобы отметить время отрисовки. Это можно сделать, выбрав Понятное представление принтера (Printer Friendly View) в модуле Просмотр журналов (View Logs). Вы увидите, какие слои рисуются дольше всего. Кроме того, обратите внимание на число объектов, чтобы выявить неэффективные слои. На отрисовку слоя с определенным экстентом может уходить 0,2 секунды, но если экстент содержит только два объекта, производительность может ухудшаться.
- Повторите этот процесс в нескольких различных местоположениях на карте с разными масштабами. Следует также проанализировать образец символов и слоев карты.
- После завершения установите уровень журнала Предупреждение (Warning).
В разделе Коды журнала картографического сервиса содержится таблица кодов, использующихся в детализированных журналах. В конце раздела также можно найти пример кодов, возвращаемых простым запросом ExportMapImage, который выполняется при перемещении по карте или изменении масштаба карты.
При изучении детализированных журналов вы часто будете видеть сообщения Начало отображения слоя и Окончание отображения слоя. Время между началом и окончанием отображения слоя – это время, которое запрос проводит на уровне ГИС-сервера. Если вы выяснили, что производительность на уровне ГИС-сервера приемлема, но приложение все равно работает медленно, возможно веб-сервер является узким местом или приложение тратит время на ожидание доступных экземпляров сервиса для отображения слоя.
Дополнительную информацию об устранении неполадок сервера с помощью журналов см. в разделе Журналы серверов.