4

I have my Geoservers in 2 different environments: Tomcat on Windows and JBOSS on RHEL. I was guessing that JBOSS on RHEL will be faster, but to make sure I made some test plans with JMeter.

Both:

  • are VMware servers
  • have same number of processor and same amount of memory
  • are using exactly same SHP file on each disk (no database)
  • are on the same network segment, so network distance to my JMeter (on my Workstation PC) are the same
  • are dealing with similar WMS requests and style from my JMeter

My observation shows that Geoserver on JBOSS/RHEL is noticeably slower than on Tomcat/Windows. This brought me to early conclusion that this is because the JBOSS/RHEL is not optimally configured.

But to be sure I made another test with both, but instead of using Geoserver, now only with static content (simply file) with format similar to Geoserver response:

  • 8-bit and 32-bit 256x256 PNG
  • GML file
  • geojson file

Those static content are hosted on both JBOSS/RHEL and Tomcat/Windows. Interestingly now JBOSS/RHEL is faster than Tomcat/Windows.

I returned to the Geoserver test plan an played with Image Processing and Image Encoding options (image below) in Geoserver JBOSS/RHEL.

enter image description here

This is because I suspected the java/image processing is the source of problem. But the result is the same: Geoserver on JBOSS/RHEL is slower.

The speed difference of the two Geoserver is not only measured in JMeter, but even visually noticeable in OpenLayers(!).

Here is the summary of the 2 servers (server #20 vs #21): enter image description here

Now the suspect is clear: the Geoserver on my JBOSS is not working optimal.

Where do i start to try and fix this?


ADDED INFOS: Java version is added in the above comparison.

I checked this as suggested by @bugmenot. I think the most relevant item is the JVM Optimization in the Container Considerations. The link suggests to set several JVM parameters (1-7 in the table below). Another site suggests few other parameter (8-11).

Therefore i checked both server:

enter image description here

The JVM parameter in JBOSS does not differ too much with Tomcat.

But still, I tried to increase (in JBOSS server #21) the InitialHeapSize to 128MB and MaxHeapSize to 2048MB, with the following command:

java -Xms128m -Xmx2048m -version

No error. But when i check with the command:

java -Xms128m -Xmx756m -XX:+PrintFlagsFinal -version | grep -iE 'InitialHeapSize|MaxHeapSize'

Both heap size doesn't change to the value I wanted.

So my question now:

  1. Both server doesn't differ too much. So why?

  2. Does Java version affects ?

  3. How to set JVM memory amount (eg. increase heap size) for JBOSS?


Below are images showing the test plans.

Summary Report The above shows Summary Report of Geoserver test plan: JBOSS is slower than Tomcat.

enter image description here The above shows Response Time of Geoserver test plan: JBOSS is slower than Tomcat.

enter image description here The above shows Summary Report of Static Content (no Geoserver) test plan: JBOSS is faster than Tomcat.

enter image description here The above shows Response Time of Static Content (no Geoserver) test plan: JBOSS is faster than Tomcat.

Your Answer

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

Browse other questions tagged or ask your own question.