We are using a standalone OneClick server on Linux with Webapp. We see that our memory is staying constantly very high and we do not understand how the memory is being used on this server.
How can we check where the memory is going?
Release : 20.2.x, 21.2.x Red Hat Linux
Component : OneClick with Webapp
The first process is the virtual frame buffer (/bin/sh /usr/bin/xvfb-run) that is needed for the webtomcat process to run.
This is the same in all current versions of Spectrum running webapp in Linux.
Webapp server launches with two processes, a parent process and a child process, this is because the very first process is to setup the virtual frame buffer which is required for Linux webapp to handle the webapp GUI.
This can be seen by doing a
ps -ef | grep -i webtomcat
spectrum 2030 1 0 06:18 ? 00:00:00 /bin/sh /usr/bin/xvfb-run /usr/Spectrum/Java/bin/java -Djava.util.logging.config.file=/usr/Spectrum/webtomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -DOneClick -server -Xmx4096M -XX:+HeapDumpOnOutOfMemoryError -Djava.awt.headless=true -Djavax.net.ssl.trustStore=/usr/Spectrum/custom/keystore/cacerts -Dfile.encoding=UTF-8 -Dorg.apache.coyote.USE_CUSTOM_STATUS_MSG_IN_HEADER=true -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Djava.endorsed.dirs=/usr/Spectrum/webtomcat/lib/endorsed -classpath /usr/Spectrum/webtomcat/bin/bootstrap.jar:/usr/Spectrum/webtomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/Spectrum/webtomcat -Dcatalina.home=/usr/Spectrum/webtomcat -Djava.io.tmpdir=/usr/Spectrum/webtomcat/temp org.apache.catalina.startup.Bootstrap start
spectrum 2272 2030 1 06:18 ? 00:02:01 /usr/Spectrum/Java/bin/java -Djava.util.logging.config.file=/usr/Spectrum/webtomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -DOneClick -server -Xmx4096M -XX:+HeapDumpOnOutOfMemoryError -Djava.awt.headless=true -Djavax.net.ssl.trustStore=/usr/Spectrum/custom/keystore/cacerts -Dfile.encoding=UTF-8 -Dorg.apache.coyote.USE_CUSTOM_STATUS_MSG_IN_HEADER=true -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Djava.endorsed.dirs=/usr/Spectrum/webtomcat/lib/endorsed -classpath /usr/Spectrum/webtomcat/bin/bootstrap.jar:/usr/Spectrum/webtomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/Spectrum/webtomcat -Dcatalina.home=/usr/Spectrum/webtomcat -Djava.io.tmpdir=/usr/Spectrum/webtomcat/temp org.apache.catalina.startup.Bootstrap start
In this example we are using an extra 4gb of memory for the webapp, this is by design. Windows does not have this limitation
You can check what java is using for memory for each pid in Linux with this command
ps -opid,rss,vsz -p $(/sbin/pidof java)
Then for each pid returned we can run the other command to know for sure the processes.
ps -p <pid number> -o command