We have a virtual server which is being used in a development setting which is experiencing spikes in the java.exe process causing 100% CPU usage on a regular basis.
There are 2 java.exe processes which i think are related to the adminserver but only one of them had the high cpu.
Can someone tell me what the difference is between each java.exe and why it spikes in memory.
PS - I am running the fathom trend analysis.
Turning off the fathom monitoring of Disk, CPU and Memory and then rebooting the server resolved the issue for me.
As per - https://knowledgebase.progress.com/articles/Article/high-cpu-load-adminserver-java-process-000088351
Turning off the monitoring and re-booting the server has resolved the issue for me.
As per - knowledgebase.progress.com/.../high-cpu-load-adminserver-java-process-000088351
SEE - knowledgebase.progress.com/.../high-cpu-load-adminserver-java-process-000088351
What version of openedge?
I am going to turn off all the monitoring to see if this fixes the issue
It sounds like you've already narrowed the problem down to trend analysis. We run OE on HP-UX and haven't been able to use some of these advanced OE management tools because they have never integrated well with that OS. But soon we will be moving to windows or linux and hopefully we will be able to use more of the OE tools. Please let us know how things turn out; I don't know much about that product.
For identifying java processes (or any process) I typically use Process Explorer (from sysinternals). Then I configure it to show the some additional details below (typically I show file handles). Then if you click on each java process to select it, you can instantly see every file it is interacting with in Windows. This should easily be enough to distinguish admin server from another type of java process (nameserver, appserver, etc). Another thing to note is that admin server is typically easily recognized by its memory usage (working set). In contrast, the "nameserver" and the "sonic adapter" use much less memory. Appserver brokers are somewhere in between. I would sort all the java processes in Process Explorer by working set and then click on them from top to bottom in order to get to know them better.
Insofar as admin server goes, it isn't uncommon for it to start running away with CPU. Often times there is a correlation with some "bad" thing that a developer did in OEE/OEM, - like click a link which is known to be "off-limits" (ie. viewing the database connection details for a single database user is "off-limits" because it gathers table/index statistics and that causes enormous CPU problems in admin server itself). The trick is to figure what features are "off-limits". It sounds like trend analysis may be one of those things that is problematic.
If the java process does turn out to be adminserver then you should investigate the admserv.log file. Sometimes there may be a recurring exception of some kind that causes high CPU. Hopefully the Progress dev team introduced some high level profiling into the log, assuming they were aware that trend analysis can be a long-running operation.
For what its worth, here is another similar case where we had reported high cpu in admin server and it turned out to be related to clicking the wrong hyperlinks in OEE:
You could always try ProTop for your OpenEdge monitoring! No java!