
Tuning and Scalability for Sonic. Analyzing, testing and tuning JMS/ESB performance. Jiri De Jagere. Solution Engineer EMEA. D I S C L A I M E R. D I S C L A I M E R. Setting Performance Expectations.
Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.
Analyzing, testing and tuning JMS/ESB performance
Jiri De Jagere
Solution Engineer EMEA
D I S C L A I M E R
Setting Performance ExpectationsSession ID: Session Title
Analyzing, testing and tuning JMS/ESB performance
Session ID: Session Title
Expert Tip: Limit scope to those test components that
are critical to performance and under your control
Performance Engineering Terms“Platform”
“System Metric”
“Load” = “Sessions” * “Delivery Rate”
“System Under Test”
R
V
“Test Harness”
V
V
“Latency” = ReceiveTime – SendTime
“Test Components”
“External
Components”
Session ID: Session Title
∑
=
( Overhead
X
Message rate )
Load
svcs
(writes/msg)
(msg/sec)
(Writes/sec)
Bottom-Up Rule: Test and tune each component before you
test and tune the aggregate.
Concepts: Partitioning Resource UsageSession ID: Session Title
CPU time
Memory
(in use, swap)
# Threads
Network I/O
(send/receive)
Disk I/O
(read/write)
Favorite tools: task mgr,perfmon, top, ping –s, traceroute
Session ID: Session Title
Expert Tip: Schedule daily meetings to share results and
reprioritize test plan.
The Performance Engineering ProjectTest
Analyze
Tune
The Project is Goal Driven
Session ID: Session Title
Requirements Expert
Integration Expert
Testing Expert
R.E.
Cost/Benefit
Load/Distribution
SOLUTION
I.E.
T.E.
Design Options
Session ID: Session Title
Platform
Tools for a Messaging BenchmarkSystem Under Test
Test
Analyzer
Test
Harness
Test
Configurator
Session ID: Session Title
Application Tuning
1 2 3 4 5 6 7 8
Performance Project TimelineSystem Test
Development
Project
Deployment Plan
Service Dev
Sizing
Process Dev
Performance
Project
Perf Prototype
Launch
Week
Session ID: Session Title
Analyzing, testing and tuning JMS/ESB performance
Session ID: Session Title
Session ID: Session Title
Rule of Thumb: Focus on broker loads over 10 msg/sec or 1 MByte/sec,
and service loads over 10,000 per hour.
Performance Scenario SpecificationSession ID: Session Title
Session ID: Session Title
Session ID: Session Title
LAN 15 – 150 MBytes / second
Disk: 2 – 10 MBytes / second
XSLT: 200 – 300 KBytes / second
Platform configuration specificationNetwork
bandwidth
latency
speed
Field
DMZ
DMZ
CPU
number
type
speed
Memory
size
speed
Firewall
cryptos
latency
Disk
type
speed
Session ID: Session Title
Adapter
Adapter
ERP
Tracking Service
SFA
SCM
SCM
Finance
PoS
CRM
CRM
Field
Front Office
Back Office
Partner
Architecture Spec: Service distributionESB
ESB
ESB
Partner ESB
Session ID: Session Title
Data Schemas 1…n
Data Schemas 2…m
Expert Tip: Transform tools vary in efficiency:
XSLT – slowest (but most standard)
Semantic modeler – generally faster (e.g. Sonic DXSI)
Custom text service – fastest, but not as flexible
Architecture Spec: Data IntegrationSession ID: Session Title
Rule of Thumb: Real-time, 1 KB messages, broker performance is about 1,000 to 10,000 msg/sec for each 1 gHz cpu power.
Platform Profile: Real-time messagingSystem resource limitations
90%
5%
% capacity
20%
70%
Session ID: Session Title
Rule of Thumb: Queued msgs, 1 KB messages, broker performance is about 100 to 1,000 msg/sec for each 1 gHz cpu power.
Platform Profile: Queued requestsSystem resource limitations
50%
85%
40%
20%
% capacity
Session ID: Session Title
Session ID: Session Title
Expert Tip: External JMS client variables are easily managed
with the Test Harness.
Typical test variablesSession ID: Session Title
For each identified Test Case there is a section specifying the following:
Session ID: Session Title
Analyzing, testing and tuning JMS/ESB performance
Session ID: Session Title
Session ID: Session Title
System Under Test
Request
Test
Harness
JNDI
Connection
Msg
Pool
Reply
Message
Generation
Simulating clients with Test HarnessSession ID: Session Title
Expert Tip: Spreadsheets are excellent for documenting and interpreting
the results
Evaluating the resultsSession ID: Session Title
Expert Tip: Spreadsheets are excellent for documenting and interpreting
the results
Evaluating the resultsSession ID: Session Title
Analyzing, testing and tuning JMS/ESB performance
Session ID: Session Title
Pimp my ride!
Session ID: Session Title
Rule of Thumb: On windows platforms, the Sun 1.5.0 JVM is
10% to 50% slower than the default IBM 1.4.2 JVM.
Java Tuning OptionsSession ID: Session Title
Session ID: Session Title
Session ID: Session Title
Rule of Thumb: For non-trivial queues, multiply default
settings by 10 to 100.
Broker Tuning ParametersSession ID: Session Title
Expert Tip: With CAA configured, Best Effort service is equivalent
to At Least Once, with substantially lower overhead.
Messaging Tuning OptionsImplement optimal QoS for speed versus precision
(Based on CAA brokers and fault-tolerant connections)
Session ID: Session Title
Msg
Msg
Msg
Broker
…
…
Ack
Ack
Messaging Tuning OptionsUse message batching to accelerate message streams
Consumer
Producer
Session ID: Session Title
Potential
Receiver
Sender
Queue
Potential
Receiver
Flow ControlSession ID: Session Title
Subscriber
Publisher
Topic
Subscriber
Flow ControlSession ID: Session Title
Outgoing Buffer
Pub/Sub
TEXT
TEXT
TEXT
TEXT
TEXT
TEXT
TEXT
TEXT
TEXT
TEXT
Flow ControlAck
FLOW CONTROL
Only a pointer is inserted in the Buffer but the calculated size is the message size
Publish and Subscribe
Danger !!!
Slow Subscriber may result in the following situation
Subscriber
Publisher
Topic
Subscriber
Ack
Session ID: Session Title
Rule of Thumb: Up to 500 queues per Broker and
10,000 topics per broker.
Client Tuning OptionsSession ID: Session Title
X-scaling: Multiple Listeners
Y-scaling: Multiple JVMs
Z-scaling: Multiple Machines
Session ID: Session Title
Receive Msg
Broker
Dispatch Outbox
Instantiate Proc
Marshall Msg
Unmarshall Msg
Send Msg
Call onMessage
…
…
Dispatch Outbox
Unmarshall Msg
Marshall Msg
Call onMessage
…
Send Msg
ESB Tuning OptionsInter-Container Messaging
Intra-Container Messaging
v7.5: better!
faster!
Session ID: Session Title
Session ID: Session Title
Session ID: Session Title
Session ID: Session Title
Session ID: Session Title
Session ID: Session Title