I am trying to find a good way to serve ortophoto with geoserver with fast rendering.

I have 20GB of data, 4000 jpeg tiles at 6-15mb each.
I have published them as a mosaic but rendering them is very slow as a wms and I have not yet been able to preview tile layer (server never respond - Handler dispatch failed; nested exception is java.lang.OutOfMemoryError: GC overhead limit exceeded). Are the files to many/too large? Are there any recommendations how to serve a image mosaic?

In the past I have been creating an imagePyramid with 4 levels first, which I then have cached, but that feel a bit redundant since I am mostly interested in the cache. Creating the imagepyramid also reduced the image quality too much at high zoom level. I was hoping that publishing the image mosaic would keep the image quality better for the cache at higher zoom levels.

What is the best approach to take to retain the image quality on higher zoom level and at the same time be able to serve the tiles quickly? I was hoping I could use a image mosaic so i can easily replace individual tiles easily when i have updated data.

  • did you try increasing the amount of memory available? – Ian Turton Jul 20 at 12:25
  • I did increase the memory and I have been able to cache a few tiles if I dont use the tile preview but go directly to seed. It still took about 45 min to create a few tiles at level 10. I suspect geoserver is reading a lot of data? – geogrow Jul 20 at 12:31

There are three issues here, speed when zoomed out, quality when zoomed in and opening too many files.

  1. Don't try to open more than 100 or so files at a time - use an Image Pyramid
  2. Don't make GeoServer read all the data when the user is zoomed out and viewing all of the mosaic - Use an Image Pyramid
  3. Make sure that reading the individual files is fast - prep the files correctly as compressed, tiled GeoTiffs.
| improve this answer | |
  • Thank you for the advice. I have been successful before building an image Pyramid first. That might be the route to take. Generally speaking, is it better to have few large tiles or several smaller? In my case the tile is 15mb and physically cover 800*600m. In preview zoomed into a level where only one tile should be read it takes the preview almost 20 seconds to render the tiles. I am thinking that issue is due to point 3. That is the only obvious reason it is so slow to me? – geogrow Jul 20 at 12:58
  • sounds like poorly prepared data in that case – Ian Turton Jul 20 at 13:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.