I have GeoServer connected to a SQL Server datastore. I have a map with 5 Layers, the layers have about 200,000 features total. The features are styled as simple points or lines - not many lines though. Due to the nature of the data - it changes alot and needs to be instantly current - I don't have caching on.

Geoserver is on a windows server, running on Tomcat. This is all being rendered in the browser using OpenLayers.

I have added some parameters to the CATALINA_OPTS environment variable -

CATALINA_OPTS=-Xms128m -Xmx2048M -XX:SoftRefLRUPolicyMSPerMB=36000

and installed the two recommended Geoserver and JAI and ImageIO extensions.

I have tried rendering as TileWMS and ImageWMS.

Peformance is sub-optimal at best. It really looks like SQL server returns data very fast, and the bottleneck is GeoServer but I have more questions than answers at this point. It really doesn't look like the Tomcat service is getting used hard watching it's process in Task Manager.

How can I optimally set up Geoserver to give the best performance? Is there a best practice guide (besides http://docs.geoserver.org/latest/en/user/production/index.html) to point me in the right direction?

  • 1
    are the attributes in your styles indexed in the DB? Do all 200,000 points need to be displayed at once or could you add some scale dependency
    – Ian Turton
    Sep 27, 2018 at 8:10
  • @IanTurton - there is a table that defines the style attributes, will check for indexes. No, I don't need to show all 200,000 at once particularly when zoomed out but having found a good pattern for showing less.
    – user210757
    Sep 27, 2018 at 14:49
  • well if you have to do two+ lookups per feature when styling of course it will be slow - work out a better view when zoomed out and all your issues are solved.
    – Ian Turton
    Sep 27, 2018 at 14:51
  • @IanTurton - I was confused sorry, the styles are server side - saved natively in GeoServer and just using the set default styles
    – user210757
    Sep 27, 2018 at 15:42

1 Answer 1


Check this presentation: https://www.slideshare.net/geosolutions/geoserver-in-production-we-do-it-here-is-how-foss4g-2016

In short:

  • use scale dependencies to avoid displaying too much data at the same time
  • make sure the data is spatially indexed
  • switch to postgis if you can
  • in slide 12, regarding raster sources, the sizes refer before or faster being compressed?
    – nickves
    Sep 29, 2018 at 12:53
  • Before being compressed. Sep 29, 2018 at 13:07

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.