|
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 |
|
|
|
|
|
|