I am making WMS calls (L.tileLayer.wms
) to GeoServer and rendering the layers on a Leaflet map for a production environment, so I have maybe about 100+ concurrent users that might be constantly rendering layers
The issue that I am running into is that the WMS call to GeoServer can be super slow that the layers do not render at all. I can see in the Network calls that the WMS call is still pending. I was wondering how I can optimize GeoServer (or Tomcat) to speed up the layer rendering?
For background, I am using GeoServer version 2.17.2, hosting it on a AWS EC2 instance, and using Tomcat to run GeoServer. As for the CPU and Memory for the EC2 instance, the CPU is at 8 and 16GB for memory. For the store, I am using a PostGIS Database that is AWS RDS and all of my data is spatially indexed. Here is some info about the connection parameters:
Max Connection: 150
Min Connection: 1
Fetch size: 1000
Batch insert size: 100
Connection timeout: 20
Max Connection: 150
Max Connection: 150
I have already done GeoWebCaching for all of my layers on GeoServer already and all of my layers are vector data. I am not using raster data at all for this.
I am not sure what else I can do to optimize GeoServer to render my layers faster.. Should I upgrade the EC2 instance to have a higher CPU and memory to ensure faster speed? Or maybe do improvements on Tomcat? Some of my layers consist of 10,000+ rows so they can be fairly large datasets.
Another thing I would like to add is that I cannot access the Geoserver UI at all when the rendering of the layers are super slow. It takes forever for it to load the Geoserver webpage / it doesn't load whatsoever unless I restart the tomcat
and all of my layers are vector data.
are you meaning the input data, or the output data.