I am running GeoServer 2.4.1 (Recently Upgraded)
Server: Windows 2008R2, 2Gb Ram (Has been running perfectly until now)
My WMS Rendering has slowed down significantly. I am unsure if this is a problem with the Upgrade or the configuration. We added a number of additional layers in Layer Groups in the last few days.
The problem is intermittent, some tiles will render, some will not. I have noticed that the Server goes to 100% CPU and 90% Ram use and this coincides with the tile rendering failure.
Data is being pulled form a PostGres Db on another Computer, Network load is insignificant.
Question: Is this a configuration issue? Question; How can I better tune the GeoServer Configuration
This is the Relevant Error from the Geoserver logs:
2013-11-07 10:56:23,744 INFO [geoserver.wms] - Request: getServiceInfo 2013-11-07 10:56:24,384 WARN [geotools.rendering] - Assuming rendering buffer = 1, but estimation is not accurate, you may want to set a buffer manually 2013-11-07 10:56:34,806 INFO [geoserver.wms] - Request: getServiceInfo 2013-11-07 10:56:34,837 WARN [geotools.rendering] - Assuming rendering buffer = 4, but estimation is not accurate, you may want to set a buffer manually 2013-11-07 10:56:34,962 ERROR [geotools.map] - Call MapContent dispose() to prevent memory leaks 2013-11-07 10:56:34,962 INFO [geoserver.wms] - Request: getServiceInfo 2013-11-07 10:56:35,165 WARN [geotools.rendering] - Assuming rendering buffer = 4, but estimation is not accurate, you may want to set a buffer manually 2013-11-07 10:56:47,848 ERROR [geotools.rendering] - JDBC DataSource not available after dispose() has been called java.lang.NullPointerException: JDBC DataSource not available after dispose() has been called
I have a Max Rendering Memory of 100000 (when this error was generated) but have tried from 16000 and steps in between with no differences.
Geoserver Configuration as follows:
JVM config as follows (Using Jdk1.7.0_40)
# Java Classpath (include wrapper.jar) Add class path elements as # needed starting from 1 wrapper.java.classpath.1=wrapper/lib/wrapper.jar wrapper.java.classpath.2=start.jar wrapper.java.classpath.3=lib/*.jar # Java Library Path (location of Wrapper.DLL or libwrapper.so) wrapper.java.library.path.1=wrapper/lib # Java Additional Parameters wrapper.java.additional.1=-Djetty.home=. wrapper.java.additional.2=-DGEOSERVER_DATA_DIR="%GEOSERVER_DATA_DIR%" wrapper.java.additional.3=-XX:MaxPermSize=128m wrapper.java.additional.4=-XX:SoftRefLRUPolicyMSPerMB=36000 wrapper.java.additional.5=-Xmx1024M wrapper.java.additional.6=-Xms512M wrapper.java.additional.7=-XX:+UseParallelGC wrapper.java.additional.8=-XX:NewRatio=2 wrapper.java.additional.9=-server # Initial Java Heap Size (in MB) wrapper.java.initmemory=512 # Maximum Java Heap Size (in MB) wrapper.java.maxmemory=1024 # Application parameters. Add parameters as needed starting from 1 wrapper.app.parameter.1=org.mortbay.start.Main wrapper.app.parameter.2=etc/jetty.xml