Documentos de Académico
Documentos de Profesional
Documentos de Cultura
The purpose of this presentation is to demonstrate how to find the cause of poor
performance for an IBM Integration Bus node (broker) for two different types of problem.
The examples are obtained on a Windows system but the principles of investigation and
problem determination apply equally on all platforms. The system level tools will differ
though.
Introduction
Tools
Techniques
Demonstration
Root.Body.Level1.Level2.
Level3.Description.Line[1]; Set OutputRoot = InputRoot;
Task Function
bipservice Administration agent availability
bipbroker Administrative agent
Important to understand:
Topology of broker
SOAP and HTTP listeners
The amount of CPU and memory used will depend on the situation
A complex configuration many MQ channels, hundreds of message flows will use much more
memory and CPU than a single message flow
Monitoring Tools
At the operating system level to observe
System resource usage CPU, memory, I/O activity
Heaviest resource users
Driving Tools
Needed to generate a continuous workload
Important to assess performance after warm-up during sustained activity
Nmon
filemon
Watch
CPU Usage
Commit Charge
I/O Activity
Physical Memory History
Summary Information
Individual Processes
SDSF
RMFMON II
Integration Bus
User Trace
Trace Nodes
WebUI
Compare flow statistics at the node (broker), server (execution group),
container (application or library) or at an individual message flow level
IIB Explorer
View resource use at the execution group level
View Activity Log
MQ Explorer
Java Healthcenter
View resource
statistics for
resource managers
in IIB such as JVM,
ODBC, JDBC etc
MQ Explorer
Trace
Statistics
26 2013 IBM Corporation IBM Integration Bus
IBM Support Assistant and Java Health Centre
Message Flows
Backend Application
Sets the completion time in the message
Writes a reply message
Reply
Reads the message from the back end message flow
Retreives the original message saved by the request message flow
Writes an output message
GET_REQREP_IN GET_BACKEND_REQ
GET_REPTO_STORE
BackendReplyApp
GET_BACKEND_REQ GET_BACKEND_REP
Reply
GET_BACKEND_REP GET_REQREP_OUT
GET_REPTO_STORE
Steps
1. Ensure all components are started and the application works as expected
Message flows, databases, external applications etc
2. Start a load generator [JMSPerfharness in this case]
3. Look at activity
Is processing happening at the expected rate
Is CPU usage as expected
Is memory usage as expected
4. If things do not seem as expected
Look for a build up of messages
Poor service times
5. Enable and view statistics
6. Analyse statistics
7. Examine message flows
GET_REPTO_STORE is used mid-flow (so flows using this are less likely to be problem)
GET_BACKEND_REQ is the input queue for the BackendReplyApp,
Indicates flow is not running fast enough or not enough instances allocated
1 second sleep in the compute node within the message flow is causing slow processing
times and no CPU usage
Matches the observations at the start
Low CPU and low rate
Unlikely to be so easy in future but slow service times, like slow synchronous web service
invocation would have the same effect
If it was slow web service response then allocate more instances to improve processing rate
It is very important to
Use tools
System level and component level
Start at a high level system level and then close-in on the problem
JAVACOMPUTE.TRANSFORMNOXPATH.IN JAVACOMPUTE.TRANSFORMNOXPATH.OUT
IBM_JAVA_OPTIONS=-Xhealthcenter
Wide range of tools available covering operating system and component performance
Expect to use multiple tools
After all it is important to understand what is happening at different levels
Demonstration has shown how to use the key tools for MQ and IIB to debug a problem
WebSphere Message Broker V7-Message display, test & performance utilities (IH03)
http://www-01.ibm.com/support/docview.wss?rs=171&uid=swg24000637
IBM Monitoring and Diagnostic Tools for Java - Getting started with Health Center
http://www.ibm.com/developerworks/java/jdk/tools/healthcenter/getting_started.html
IBM Monitoring and Diagnostic Tools for Java - Health Center Version
http://www.ibm.com/developerworks/java/jdk/tools/healthcenter/