Страница 1 из 1
вопрос по mapserver, большие растры и geowebcache
Добавлено: 30 ноя 2010, 07:59
inooni
добрый день! меня возникла следующая проблема: имеется MapServer, на котором лежат растры размером около 1Гб, их около 70 штук, они обработаны с помощью gdal tileindex. Для ускорения загрузки я настроил geowebcache, в котором кэш хранится в виде jpeg файлов. При попытке создания кэша (seed) на больших масштабах у меня кэш не может дождаться когда отрисуются изображения (на небольших масштабах кэш делается хорошо), как можно настроить так, чтобы картинка состоящая из нескольких растров успешно отрендерилась??? если нужно, могу предоставить конфиги.
Re: вопрос по mapserver, большие растры и geowebcache
Добавлено: 30 ноя 2010, 08:10
inooni
я нашел настройку в geowebcache.xml: <backendTimeout>120</backendTimeout>, но установка большого значения не помогла. Такое ощущение, что mapserver не смог обработать несколько растров и выдать картинку.
Re: вопрос по mapserver, большие растры и geowebcache
Добавлено: 30 ноя 2010, 10:41
Mavka
Такое ощущение, что mapserver не смог...
Смотрите логи Apache. Там сразу поймете смог он или не смог.
Re: вопрос по mapserver, большие растры и geowebcache
Добавлено: 01 дек 2010, 12:57
inooni
mapserver возвращает http-статус 500. я так понимаю, не справляется с обработкой.
Re: вопрос по mapserver, большие растры и geowebcache
Добавлено: 01 дек 2010, 13:17
Mavka
Ошибка 500 совсем безликая, по ней ничего не скажешь...
Добавьте в map-файл директивы отладки:
Код: Выделить всё
CONFIG "MS_ERRORFILE" "c:/temp/mapserver.log"
DEBUG 5
может там что проскочит.
Растры - по 1 Гб каждый или все вместе? Если проблема в размере файлов, то порежте их на более мелкие, поиграйте с
пирамидами и форматами.
Re: вопрос по mapserver, большие растры и geowebcache
Добавлено: 02 дек 2010, 10:11
inooni
Проверил, как вы посоветовали, получилась следующая картина:
Код: Выделить всё
[Thu Dec 02 11:08:59 2010].497000 CGI Request 1 on process 5192
[Thu Dec 02 11:08:59 2010].497000 msDrawRasterLayerLow(raster_nov): entering.
[Thu Dec 02 11:08:59 2010].497000 msDrawMap(): Layer 0 (raster_nov), 0.000s
[Thu Dec 02 11:08:59 2010].497000 msDrawRasterLayerLow(raster_vin): entering.
[Thu Dec 02 11:16:43 2010].541000 msDrawMap(): Layer 1 (raster_vin), 464.044s
[Thu Dec 02 11:16:43 2010].541000 msDrawMap(): Drawing Label Cache, 0.000s
[Thu Dec 02 11:16:43 2010].541000 msDrawMap() total time: 464.044s
[Thu Dec 02 11:16:43 2010].573000 msSaveImage() total time: 0.032s
[Thu Dec 02 11:16:43 2010].573000 mapserv request processing time (msLoadMap not incl.): 464.076s
[Thu Dec 02 11:16:43 2010].573000 msFreeMap(): freeing map at 01387FE8.
тут видно, что картинка генерировалась 464 секунды и вроде бы как успешно сохранилась.
а это лог geowebcache
Код: Выделить всё
02 фхъ 11:10:59 ERROR [wms.WMSHttpHelper] - Error forwarding request http://localhost:8008/cgi-bin/mapserv.exe?SERVICE=WMS&REQUEST=GetMap&VERSION=1.1.0&LAYERS=raster_n%2Craster_v&EXCEPTIONS=application/vnd.ogc.se_xml&STYLES=&TRANSPARENT=TRUE&BGCOLOR=0xFFFFFF&map=c:/OSGeo4W/apps/raster/raster.map&FORMAT=image/jpeg&SRS=EPSG:4326&WIDTH=768&HEIGHT=768&BBOX=1236551.221615603,5433616.924872949,1246209.907550456,5443275.610807802 Read timed out
02 фхъ 11:10:59 ERROR [seed.SeedTask] - Seed failed at ConveyorTile ) {294,144,6} raster_cache EPSG:4326 image/jpeg, exception: All backends (1) failed, last one: http://localhost:8008/cgi-bin/mapserv.exe?SERVICE=WMS&REQUEST=GetMap&VERSION=1.1.0&LAYERS=raster_n%2Craster_v&EXCEPTIONS=application/vnd.ogc.se_xml&STYLES=&TRANSPARENT=TRUE&BGCOLOR=0xFFFFFF&map=c:/OSGeo4W/apps/raster/raster.map&FORMAT=image/jpeg&SRS=EPSG:4326&WIDTH=768&HEIGHT=768&BBOX=1236551.221615603,5433616.924872949,1246209.907550456,5443275.610807802
отсюда видно, что запрос пришел в 11:08:59 на мапсервер, где он обрабатывался до 11:16:43. А кэш в 11:10:59 (через 2 минуты) вылетел. я нашел настройку в конфиге geowebcache "backend timeout", которая, похоже, как раз за это и отвечает. сейчас запустил проверить.
Re: вопрос по mapserver, большие растры и geowebcache
Добавлено: 02 дек 2010, 10:32
inooni
не помогло это, теперь получается такой же самый лог у мапсервера, а кэш возвращает http 500
Re: вопрос по mapserver, большие растры и geowebcache
Добавлено: 02 дек 2010, 13:57
inooni
сейчас уменьшаю растры с помощью gdalwarp в 15 раз, работать стало на больших масштабах значительно быстрее и без вылетов. на маленьких: использую большие растры
Re: вопрос по mapserver, большие растры и geowebcache
Добавлено: 02 дек 2010, 15:11
dvd_xaker
Да хоть я в свое время не выбрал Mapserver. Были конечно проблемы с чтение растров, но это из-за некорректного конверктирования. А так если есть возможность или желание перейти на Geoserver. Без проблем он работает с 3,2 Гб растрами, у меня их 24. В кеш вогнал и все норм)
Re: вопрос по mapserver, большие растры и geowebcache
Добавлено: 06 дек 2010, 08:33
inooni
Я уже научился их обрабатывать. gdalwarp дает изображение примерно в 200 раз меньшее по объему на выходе, которое годится практически для всех масштабов, кроме самых близких. в итоге, после прохождения через кэш получается отличная производительность растра.
Re: вопрос по mapserver, большие растры и geowebcache
Добавлено: 06 дек 2010, 14:50
inooni
получилось нормально отображать порядка 1500 растров на 600Гб в сумме (они там разных размеров). сейчас идет кэширование. так что если у кого будут трудности с этим, пишите.