WebSphere embedded MQ server ping interval might cause high CPU usage if not tuned properly in WebSphere Application Server Network Deployment
 Technote (troubleshooting)
 
Problem(Abstract)
A noticeable increase in the overall CPU usage of a system with WebSphere® Application Server Network Deployment (ND) installed might be a symptom of a poorly configured, or tuned, ND system. Depending on the ping interval parameters configured on ND, you might see a 60-to-70 percent CPU usage when no applications are running on the ND system that is deployed with embedded messaging. When embedded messaging stops, the CPU usage is reduced drastically.

SYMPTOM or COMPLAINT: High CPU usage for JMS server.

One symptom of this is that there are many sockets open between these two processes when this problem occurs.
 
Cause
There are WebSphere configuration parameters that a JMS server uses to determine how often to report its health to the Deployment Manager. This is commonly referred to as pinging. An increase in CPU usage when the JMS server starts can be due to the JMS server pinging the DM server too often.
When using Network Deployment for WebSphere, the JMS server runs in its own JVM™ (it is a separately running Java™ process). With ND, the JMS pings the node agent to make sure that the node agent JVM is still up and running. If this ping frequency is not tuned, it can ping the node agent many times a second and consume valuable CPU time.
 
Resolving the problem
There is a setting in the JMS server that is called Ping Interval that must be tuned for an individual system. If the JMS pings the node agent too often, it causes performance issues.
To set the ping interval setting, in the Deployment Manager, for the JMS server:

1. Bring up the WebSphere administrative console.
2. Select Servers > JMS Servers > server.




3. Click on the Additional Properties link, then select Process Definition.

4. In the Additional Properties window, select Monitoring Policy.

5. The Monitoring Policy window contains parameters for Maximum Start Attempts, Ping Interval, Ping Time-out, Automatic Restart and Node restart state. Check the Ping interval and Ping time-out. The Ping interval determines how frequently the JMS pings the node agent; this value is in seconds. If this value is too small, the ping processing can cause high CPU usage. The default is 0.

Refer to the Information Center for value meanings.



In the event there is a high CPU usage, values such as 60 up to 300 have been used in this parameter to limit the number of times the JMS pings; in this case, the node agent in a period of time.

When the ping takes place, the JMS server issues the ping and a wait takes place for the node agent to ping back. When the node agent pings back, the JMS is satisfied of the state of the node agent.

If this action takes place constantly, you have two JVM constantly pinging each other because the node agent also has its own JVM. This can cause a performance issue, so make sure you tune the JMS ping interval to suit your system. On some systems, the settings left at the default might not be an issue, but some of the smaller systems with a limited number of processes can suffer from this setting.

When you have completed changing the ping interval setting, you must stop and start both the messaging server and the node agent to allow the changes to take affect.
 
 
Cross Reference information
Segment Product Component Platform Version Edition
Application Servers Runtimes for Java Technology Java SDK
 
 


Document Information


Product categories: Software > Application Servers > Distributed Application & Web Servers > WebSphere Application Server > Java Message Service (JMS)
Operating system(s): Windows
Software version: 5.0
Software edition:
Reference #: 1178057
IBM Group: Software Group
Modified date: Aug 27, 2004