The first step is to find out what specific process is being called out in the TOP output:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
17228 ehealth 20 0 1741m 1.2g 8092 S 1687.4 1.8 10135:48 java
19975 root 20 0 838m 789m 19m R 52.2 1.2 1818:07 nhiPoller
In the above example output you can see that the java process has a PID of 17228. Take this pid and find out what specific process it is:
[email protected]# ps -ef | grep 17228
ehealth 17228 1 46 Aug05 ? 7-10:19:44 /ehealth/jre/bin/java -Dnop -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.awt.headless=true -Xmx1024m -Doracle.net.tns_admin=/oracle/network/admin -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -classpath /ehealth/web/tomcat/bin/bootstrap.jar:/ehealth/web/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/ehealth/web/tomcat -Dcatalina.home=/ehealth/web/tomcat -Djava.io.tmpdir=/ehealth/web/tomcat/temp org.apache.catalina.startup.Bootstrap start
If this process is the one that returns then the specific Java process using excess CPU is eHealth's Tomcat. From here you can restart the service by:
1. nhHttpd stop
2. nhHttpd start