Cтатьи и комментарии

Определение оптимальных параметров работы сервера при публикации геопространственных данных

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

Определение оптимальных параметров было выполнено на базе 4 ядерного сервера Intel Core i5 3.1 ГГц, 32 ГБ оперативной памяти, с пропускной способностью сети в 1 ГБ/с, с операционной системой Centos 6.7 и Web-сервером nginx. Данные передавались в виде тайлов пользователю на экран размером 1920х1280. Для заданной конфигурации были найдены оптимальные размеры тайлов и их формат. Тестирование производительности выполнялось с помощью GIS WebService SE версии 11.4 и программы Apache JMeter.

В результате тестирования были получены следующие результаты для стандарта WMTS.

Таблица 1. Отдача готового тайла по векторной карте

Раз­мер и фор­мат тайла Запро­сов в сек Поль­зо­ва­те­лей
в сек(*)
Вре­мя отве­та
сред­нее (мс)
Ответ (Кб) За­груз­ка
проц.
За­груз­ка сети в Мб/с
256x256 (PNG) 1895 47 48 43 100% 636,6 (63%)
256x256 (PNG-8) 2149 54 45 9.1 100% 152,7 (15%)
пря­мая ссыл­ка 256x256 14066 352 4 9.1 50% 1000 (100%)
512x512 (PNG) 1156 96 86 107.3 70% 1000 (100%)
512x512 (PNG-8) 1768 147 41 23.26 100% 321.2 (32%)
768x768 (PNG) 573 95 92 223.3 52% 1000 (100%)
768x768 (PNG-8) 1828 305 25 60.8 100% 869 (86%)
1024x1024 (PNG) 409 102 147 257,4 25% 1000 (100%)
1024x1024 (PNG-8) 1678 420 49 55,4 100% 726.26 (72%)

* число запросов / число тайлов на экран
для размера тайла 256 - число тайлов на экран 1920/256 * 1280/256 ~ 40
для размера тайла 512 - число тайлов на экран 1920/512 * 1280/512 ~ 12
для размера тайла 768 - число тайлов на экран 1920/768 * 1280/768 ~ 6
для размера тайла 1024 - число тайлов на экран 1920/1024 * 1280/1024 ~ 4

На основании полученных результатов можно сделать следующий вывод: применение тайлов размером 1024x1024 пикселя в формате PNG-8 дает оптимальный результат при публикации векторных карт по протоколу WMTS. С целью минимизации погрешности при выводе тайла использовалась одна и таже область карты различных размеров. В результате анализа можно сделать вывод о том, что скорость отдачи тайлов напрямую зависит от их размера. Поэтому для передачи тайлов, полученных по векторным картам, целесообразно использовать формат PNG-8. Отличие данного формата от PNG, кроме меньшего размера, заключается в поддержке только 256 цветов. Помимо векторных карт необходимо передавать изображения данных ДЗЗ. Использование формата PNG-8 для данных ДЗЗ невозможно, так как произойдет значительное вырождение цвета и ухудшение качества картинки.

Таблица 2. Отдача готового тайла по данным ДЗЗ

Раз­мер и фор­мат тайла Запро­сов в сек Поль­зо­ва­те­лей
в сек(*)
Вре­мя отве­та
сред­нее (мс)
Ответ (Кб) За­груз­ка
проц.
За­груз­ка сети в Мб/с
256x256 (PNG) 790 20 77 156,67 100% 966,9 (96%)
256x256 (JPG) 1947 49 32 33.54 100% 510 (51%)
512x512 (PNG) 288 24 233 472.5 40% 1000 (100%)
512x512 (JPG) 1036 86 51 120.5 70% 1000 (100%)
768x768 (PNG) 97 16 538 1307.3 32% 1000 (100%)
768x768 (JPG) 417 35 155 331.7 50% 1000 (100%)
1024x1024 (PNG) 56 14 1115 2304.4 23% 1000 (100%)
1024x1024 (JPG) 248 62 279 582.4 40% 1000 (100%)

Из таблицы видно, что изображения данных ДЗЗ плохо сжимаемы. В формате PNG они занимают значительный объем памяти. Использование формата JPEG с 80% качеством картинки позволяет избежать вырождения и увеличить общую пропускную способность сервиса. Из тестов видно, что оптимальный размер тайла составляет 512х512 пикселей.

На основании полученных результатов следует, что для достижения оптимальных параметров работы сервера необходимо использовать тайлы размером 1024x1024 пикселя в формате PNG-8, созданные по векторным данным (420 пользователей). Для тайлов, созданных по данным ДЗЗ, оптимально использовать тайлы размером 512х512 пикселей в формате JPG (86 пользователей). Использование тайлов указанных размеров позволит сократить количество запросов, поступающих от пользователя, в 4 - 10 раз. Это будет особенно заметно при отображении большого числа слоев. Загрузка сети составила 100%, значит узким местом является пропускная способность сети. Без дальнейшего ее увеличения не имеет смысл увеличивать производительность сервера для WMTS запросов.

Полученные результаты позволяют сделать выводы о том, что наибольшая производительность достигается при одновременной загрузке сети и процессора в 100%. Это позволяет построить график зависимости общей производительности от размера файла.

Рисунок 1. График зависимости скорости обработки сервером пользователей в секунду
от объема передаваемых данных для различных размеров файла.

В следующем тесте было произведено рисование тайлов на "лету" по стандарту WMS для векторной карты с общим количеством объектов (40650) - таблица 3. Векторные данные были размещены на ГИС Сервере.

Таблица 3. Построение тайловых данных на "лету" для векторной карты (40650 объектов)

Раз­мер и фор­мат тайла Запро­сов в сек Поль­зо­ва­те­лей
в сек(*)
Вре­мя отве­та
сред­нее (мс)
Ответ (Кб) За­груз­ка
проц.
За­груз­ка сети в Мб/с
256x256 (PNG) 159 4 223 15,4 100% 19 (2%)
256x256 (PNG-8) 159 4 219 5 100% 6 (1%)
512x512 (PNG) 31 2.6 977 36.6 100% 9 (1%)
512x512 (PNG-8) 31 2.6 990 10 100% 2.5 (1%)
1024x1024 (PNG) 38 10 926 67.5 100% 20 (2%)
1024x1024 (PNG-8) 40 10 888 19.3 100% 6 (1%)
1920x1920 (PNG) 27 27 989 91.2 100% 19 (2%)
1920x1920 (PNG-8) 27 27 972 23.5 100% 5 (1%)

На основании полученных результатов следует, что для достижения оптимальных параметров работы сервера необходимо запрашивать тайлы на всю область отображения 1920х1280 пикселей (27 пользователей). Для запросов WMS загрузка процессора составила 100% при общей загрузке сети не более 2% для форматов PNG и PNG-8. Поэтому при отображении тематических сложных карт с разнообразной палитрой можно использовать формат PNG.

Использование изображений с размерами 1920х1280 пикселей увеличивает общую производительность сервера в 6 раз по сравнению с получением информации в виде тайлов стандартных размеров 256х256 на ту же область.

Анализ протоколов по передаче данных показал, что при ограниченных ресурсах сервера применение стандарта WMTS в 15 раз увеличивает производительность сервера по сравнению с WMS. Таким образом использование программы ImageryCreator (позволяющей предварительно создавать тайлы) повышает общее число пользователей, обслуживаемых сервисом.

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

Если для протокола WMTS узким местом является сеть, то для протокола WMS для улучшения производительности необходимо увеличить количество ядер у сервера.

Произведенные исследования позволили оптимизировать сервисы КБ "Панорама", увеличить скорость их работы при ограниченных ресурсах сервера. В программные продукты GIS WebServiceSE, ImageryCreator, ImageryService были добавлены новые пирамиды с размерами тайла 1024х1024 и 512х512 пикселей.