ibm integration bus (iib) performance testing techniques
TRANSCRIPT
IBM Software Group
®
WebSphere® Support Technical Exchange
IBM Integration Bus (IIB)Performance Testing Techniques
Paul Faulkner ([email protected])Certified IT SpecialistMarch 29th 2016
IBM®
IBM Software Group
2
Agenda
- Part 1:
- Why Performance Test
- When to Test
- Testing Strategies
- Part 2:
- Tools
- Part 3:
- Example Use Cases
IBM Software Group
Why Performance Test
Determine resource usage of application based on
planned production load
Determine if application has linear scalability
This will help with predicting future resource
requirements
Identify application issues under load
DB connection issues
Memory consumption under load
Bottlenecks
3
IBM Software Group
When to test
Prior to deploying to production:
All new applications prior to deploying into
production
Major application changes
Design changes to applications which utilize
new nodes, Databases, etc.
4
IBM Software Group
Tools Load tools
IBM and external tools
Monitoring and Analysis
Accounting and Statistics
Resource Statistics
Operating System
MQ statistics and tools
6
IBM Software Group
IBM Perform Harness
Common Parameters
sl - sleep time in milliseconds between sending each message
nt - Number of WorkerThreads
rl - Run length in seconds. Setting this to 0 will disable the timer
and run forever.
rt - Desired rate (operations/sec). If this rate is greater than the
maximum achievable, the behaviour is such that it runs as fast
as possible. A value of 0 means to always run as fast as
possible.
mg - Fixed number of iterations to run. The default setting of 0
means there is no limit.
Tool comes with documentation
Java™ based tool run from command line (there is no GUI)
Parameter base
7
IBM Software Group
MH04 Support Pack – MQ utility
Java based tool run from command line (there is no GUI)
Parameter based
8
IBM Software Group
Accounting and Stats
Accounting and Statistics captures performance metrics for
applications, flows, and nodes.
Can be used to:
-Identify bottlenecks
-View performance of a particular node
-View overall performance of a flow
Enable stats from WebUI or command line:
mqsichangeflowstats <Node> -s -g -j -n advanced -t basic -b basic -c active -o xml
13
IBM Software Group
Resource Stats
Resource stats can be used to view resource metrics of the
system for an Integration Server
Can be used to:
-Identify potential issues for resource use across an
Integration Server.
Enable stats from WebUI or command line:
mqsichangeresourcestats <IntegrationNode> -e <Integration Server> -c active
16
IBM Software Group
Example Test Case – Unit Testing
Test Case
- Compare performance of multiple transformation strategies
using ESQL and Graphical Data Map for same
transformation
Show use of:
- PerformHarness tool
- Accounting & Stats (with IS03)
19
IBM Software Group
Example Test Case – Unit Testing
First a look at the scenario-Simple flow which converts a large CSV input
message into an ordered XML structure
-Uses 2 different ESQL coding practices and 1
GDM
-Output is identical in all cases
20
IBM Software Group
Example Test Case – Unit Testing
22
Code snippet from BuildOutputXML compute node
IBM Software Group
Example Test Case – Unit Testing
23
Code snippet from BuildOutputXMLFast compute node
IBM Software Group
Example Test Case – Unit Testing
25
1.Deploy flow
2.Enabled Accounting and Stats collectionmqsichangeflowstats <Broker> -s -g -j -n advanced -t basic -b basic -c active -o xml
3.Start load testjava JMSPerfHarness -tc mqjava.Sender -d TEST.PERF.IN -jb BK10 -jh localhost
-jc SYSTEM.BKR.CONFIG -jp 2222 -mf C:\IBMWork\TestMessages\TestIn1.txt -ss 5 -nt 1
-rl 300 -rt 150
4. Using IS03 or WebUI review metrics collected per
node
IBM Software Group
Example Test Case – Unit Testing
28
Summary
-Style of code matters
-Choice of nodes
-Decision should be based on the requirements of your
application
-We saw how to use tools to run a load test and analyze
the results
IBM Software Group
Example Test Case – Linear Scaling
Test Case
-Demonstrate how to run multiple tests to analyze for linear
scaling
Show use of:
-PerformHarness tool
-MQ thru-put (with MH04)
-System tools to look at CPU
29
IBM Software Group
Example Test Case – Linear Scaling
First a look at the scenario-Simple flow which converts a large CSV input
message into an ordered XML structure
30
IBM Software Group
Example Test Case – Linear Scaling
31
1.Deploy flow (with default 1 instance)
2.Start load testjava JMSPerfHarness -tc mqjava.Sender -d TEST.PERF.IN -jb BK10 -jh localhost
-jc SYSTEM.BKR.CONFIG -jp 2222 -mf C:\IBMWork\TestMessages\TestIn1.txt -ss 5 -nt 1
-rl 300 -rt 150
3.Capture results
- Use MH04 to monitor queue thru put
- Use system tools to monitor CPU and memory
4.Increase number of instances and repeat step3
5.Repeat step 4 until desires TPS has been met
IBM Software Group
Example Test Case – Linear Scaling
33
Summary
-Use the results to validate performance requirements
-Predict future system requirements
-Identify bottlenecks
IBM Software Group
Example Test Case – Isolation and JDBC
Test Case
- Application consumes XML messages and calls a Database to
insert data via JDBC. A call is then made to a Web Service to
retrieve additional data.
Show use of:
- PerformHarness tool
- Resource Stats (using WebUI)
- Demonstrate the use of Stub flows for a Web Service
34
IBM Software Group
Example Test Case – Isolation and JDBC
First a look at the scenario-Simple flow which consumes XML message
from MQ
-Uses Java Compute node to insert data to
Database via JDBC
-Consumes a Web Service using SOAP nodes
-Outputs result to another MQ queue
35
Important note: I am using consecutive Java and ESQL nodes for
demonstrations purposes only. We don’t typically recommend consecutive
compute nodes because of the performance overhead.
IBM Software Group
Example Test Case – Isolation and JDBC
37
1.Deploy flow (already configured to use 15 instances)
2.Start load testjava JMSPerfHarness -tc mqjava.Sender -d TEST.PERF.MT.DB.PROC -jb BK10 -jh localhost -
jc SYSTEM.BKR.CONFIG -jp 2222 -mf C:\IBMWork\TestMessages\DBRequest.xml -ss 5 -nt 1
-rl 300 -rt 20
3.Capture results
- Use MH04 to monitor queue thru put
- Use Resource Stats to monitor JDBC pooling
IBM Software Group
Example Test Case – Isolation and JDBC
40
Summary
-Use the results to validate system resources used by my
application
-The use of a stub application to simulate my external
web service
IBM Software Group
Performance Testing Considerations
Allow time for ramp up before gather data.
Allow the test to run for an adequate period of time.
Some issues will not be encountered in a short 20-
30 minute test so run for longer periods after initial
metrics have been established.
Ensure your results are as expected (ie. If you are
expecting a valid response, make sure this is the
case).
41
IBM Software Group
42
Summary
Use a combination of tools and techniques
Understand your results and requirements
Save results and repeat tests as code changes
IBM Software Group
ReferencesToolsIBM PerformHarnesshttps://www.ibm.com/developerworks/community/groups/service/html/communityview?communi
tyUuid=1c020fe8-4efb-4d70-afb7-0f561120c2aaz
Support PacksMH04 - MQ Tool http://www.ibm.com/support/docview.wss?uid=swg24025857
IS03 – IIB Accounting and Statistics toolhttp://www.ibm.com/support/docview.wss?uid=swg24030716
MS0P – MQ Accounting and Statistics pluginhttp://www.ibm.com/support/docview.wss?uid=swg24011617
BlogsJDBC Connection poolinghttps://developer.ibm.com/integration/blog/2015/11/16/ibm-integration-bus-jdbc-connection-pooling-2/
43
IBM Software Group
44
Connect with us!
1. Get notified on upcoming webcastsSend an e-mail to [email protected] with subject line “wste
subscribe” to get a list of mailing lists and to subscribe
2. Tell us what you want to learnSend us suggestions for future topics or improvements about our
webcasts to [email protected]
IBM Software Group
46
Additional WebSphere Product Resources
Learn about upcoming WebSphere Support Technical Exchange webcasts, and access previously recorded presentations at:http://www.ibm.com/software/websphere/support/supp_tech.html
Discover the latest trends in WebSphere Technology and implementation, participate in technically-focused briefings, webcasts and podcasts at:http://www.ibm.com/developerworks/websphere/community/
Join the Global WebSphere Community: http://www.websphereusergroup.org
Access key product show-me demos and tutorials by visiting IBM Education Assistant:http://www.ibm.com/software/info/education/assistant
View a webcast replay with step-by-step instructions for using the Service Request (SR) tool for submitting problems electronically:http://www.ibm.com/software/websphere/support/d2w.html
Sign up to receive weekly technical My Notifications emails:http://www.ibm.com/software/support/einfo.html