Tim De Borger Principal Solution Consultant May 18 th, 2007 Tuning the ESB How to make the Bus drive faster.

Slides:



Advertisements
Similar presentations
What is a Computer Program? For a computer to be able to do anything (multiply, play a song, run a word processor), it must be given the instructions.
Advertisements

Multiple Processor Systems
Clustering Architectures in GIS/SI
IT253: Computer Organization
Tableau Software Australia
CS 443 Advanced OS Fabián E. Bustamante, Spring 2005 Resource Containers: A new Facility for Resource Management in Server Systems G. Banga, P. Druschel,
Top Causes for Poor Application Performance Case Studies Mike Canney.
IP Telephony Project By: Liane Lewin Shahar Eytan Guided By: Ran Cohen - IBM Vitali Sokhin - Technion.
Multiple Processor Systems Chapter Multiprocessors 8.2 Multicomputers 8.3 Distributed systems.
Object-Oriented Enterprise Application Development Tomcat 3.2 Configuration Last Updated: 03/30/2001.
Performance Concepts and Methodologies SSE USTC Qing Ding.
I/O Hardware n Incredible variety of I/O devices n Common concepts: – Port – connection point to the computer – Bus (daisy chain or shared direct access)
1 Lecture 24: Interconnection Networks Topics: communication latency, centralized and decentralized switches (Sections 8.1 – 8.5)
16: Distributed Systems1 DISTRIBUTED SYSTEM STRUCTURES NETWORK OPERATING SYSTEMS The users are aware of the physical structure of the network. Each site.
G Robert Grimm New York University Receiver Livelock.
OpenFlow Switch Limitations. Background: Current Applications Traffic Engineering application (performance) – Fine grained rules and short time scales.
CH 13 Server and Network Monitoring. Hands-On Microsoft Windows Server Objectives Understand the importance of server monitoring Monitor server.
Windows Server 2008 Chapter 11 Last Update
WebSphere MQ Competitive Overview
Basic Concepts of Computer Networks
DB-12: Achieving High Availability with Clusters and OpenEdge® Replication Combining the two technologies Hugo Loera Chávez Senior Tech Support Engineer.
SOA-18: Sonic ESB Application Deployment using SDM
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
SOA-06: Get On the Bus with the OpenEdge ® Adapter for Sonic ESB ® David Cleary Principal Software Engineer, Progress.
SOA-4: Introduction to OpenEdge ® Integration Technologies Jamie Townsend Applied Architect.
1 I-Logix Professional Services Specialist Rhapsody IDF (Interrupt Driven Framework) CPU External Code RTOS OXF Framework Rhapsody Generated.
- Tausief Shaikh (Senior Server developer). Introduction Covers sense of responsibility towards Project development in IT Focusing on memory and CPU utilizations.
Introduction to LiveCycle Data Services Nick Kwiatkowski Michigan State University.
The Pipeline Processing Framework LSST Applications Meeting IPAC Feb. 19, 2008 Raymond Plante National Center for Supercomputing Applications.
1-1 Embedded Network Interface (ENI) API Concepts Shared RAM vs. FIFO modes ENI API’s.
Agenda 1.Implementation of CustomerService. CustomerService wrapper SOAP → ESB internal format Abstract → Concrete XML syntax ESB internal format → HTTP.
Program Development Life Cycle (PDLC)
Scalable Web Server on Heterogeneous Cluster CHEN Ge.
Chapter 11 Heap. Overview ● The heap is a special type of binary tree. ● It may be used either as a priority queue or as a tool for sorting.
DONE-08 Sizing and Performance Tuning N-Tier Applications Mike Furgal Performance Manager Progress Software
SOA-14: Deploying your SOA Application David Cleary Principal Software Engineer.
© 2006 IBM Corporation Agile Planning Web UI. © 2006 IBM Corporation Agenda  Overview of APT Web UI  Current Issues  Required Infrastructure  API.
Multiple Processor Systems. Multiprocessor Systems Continuous need for faster computers –shared memory model ( access nsec) –message passing multiprocessor.
The Alternative Larry Moore. 5 Nodes and Variant Input File Sizes Hadoop Alternative.
SONIC-3: Creating Large Scale Installations & Deployments Andrew S. Neumann Principal Engineer, Progress Sonic.
INFORMATION SYSTEM-SOFTWARE Topic: OPERATING SYSTEM CONCEPTS.
Software Architecture in Practice Practical Exercise in Performance Engineering.
SOA-9: Implementing SOA in Financial Services Banco Comafi a Real Leading Case Hernan Aymard Sr Solution Architect Javier Betancourt Sr. Project Manager.
CE Operating Systems Lecture 13 Linux/Unix interprocess communication.
SOA-5: Did You Get The Message? Giovanni Boschi Director, Sonic Products.
SONIC-3: Creating Large Scale Installations & Deployments Andrew S. Neumann Principal Engineer Progress Sonic.
INT-9: Implementing ESB Processes with OpenEdge ® and Sonic ™ David Cleary Principal Software Engineer.
Tester #2 sleeping Model  Main Test Component: one MTC to create X PTCs. Parameter X is run-time configurable (in configuration file).  X PTC: ready.
Measuring the Capacity of a Web Server USENIX Sympo. on Internet Tech. and Sys. ‘ Koo-Min Ahn.
1 MSRBot Web Crawler Dennis Fetterly Microsoft Research Silicon Valley Lab © Microsoft Corporation.
Redesigning Air Traffic Control: An Exercise in Software Design Daniel Jackson and John Chapin, MIT Lab for Computer Science Presented by: Jingming Zhang.
Introduction Contain two or more CPU share common memory and peripherals. Provide greater system throughput. Multiple processor executing simultaneous.
Silberschatz, Galvin, and Gagne  Applied Operating System Concepts Module 12: I/O Systems I/O hardwared Application I/O Interface Kernel I/O.
Page 1 Monitoring, Optimization, and Troubleshooting Lecture 10 Hassan Shuja 11/30/2004.
CSC Multiprocessor Programming, Spring, 2012 Chapter 12 – Testing Concurrent Programs Dr. Dale E. Parson, week 12.
Test and Performance Integration Group.
CSE 351 Caches. Before we start… A lot of people confused lea and mov on the midterm Totally understandable, but it’s important to make the distinction.
1 Design and Implementation of a High-Performance Distributed Web Crawler Polytechnic University Vladislav Shkapenyuk, Torsten Suel 06/13/2006 석사 2 학기.
Deterministic Communication with SpaceWire
Introduction to Operating Systems
Software Architecture in Practice
CSE451 I/O Systems and the Full I/O Path Autumn 2002
Storage Virtualization
CSCI1600: Embedded and Real Time Software
Optimize Your Java Code By Tools
Multiple Processor Systems
SEDA: An Architecture for Well-Conditioned, Scalable Internet Services
CSCI1600: Embedded and Real Time Software
SOA-09: Conducting Business with OpenEdge® and SonicMQ®
Presentation transcript:

Tim De Borger Principal Solution Consultant May 18 th, 2007 Tuning the ESB How to make the Bus drive faster

© 2007 Progress Software Corporation2 Agenda  Quick overview  Current tools  What are we measuring  Message Influences (what is Flow Control?)  Simulation environment  Scaling in different ways  Know what you are doing  Hands on testing  The Simple Calculation  Conclusion

© 2007 Progress Software Corporation3 Quick overview  Performance Tuning Art of tuning –Change only 1 parameter at a time –Take your time for it –Always check the same things (even reboot/restart after each run) –Know what you are measuring Check resources –Disk –Memory –CPU –Network Have a plan –What are the requirements –Multiply requirements by factor X (Stress Situation) –When to stop

© 2007 Progress Software Corporation4 Current tools  Testing SonicMQ Sonic Test Harness –Sends in a lot of messages –Receives a lot of messages –Difficult to control –Focused on message throughput (Volume)  Testing the ESB No tool is provided (yet) A lot of external influences No Controlled Environment

© 2007 Progress Software Corporation5 What are we measuring (or trying to)  We need to be able to understand the time a message is spending in our system  External influences are very important for performance Longer runs for external DB calls WebServices  We need to define the latency of the message on the System (not on A Single Queue or Topic)

© 2007 Progress Software Corporation6 Messaging Influences  Message Scenario 1 Running 1 SonicMQ Broker Using 1 Topic Running 1 Publisher (Fast) Running 1 Subscriber (Fast)  Everything is working just fine  Message Scenario 2 Adding another Subscriber !!! Unknown behavior of Subscriber => DANGER!!!!!

© 2007 Progress Software Corporation7 Flow Control Demo Point to PointSenderSender PotentialReceiverPotentialReceiver PotentialReceiverPotentialReceiver QueueQueue  Flow Control in PtP: If the Maximum Size of a Queue is reached, Flow Control is kicking in Sender seems to be hanging but is only waiting for space in the Queue Flow Control can be switched off and replaced by an Exception in your code.

© 2007 Progress Software Corporation8 Flow Control Demo  In Pub/Sub, the working of Flow Control is more difficult to predict Each Subscriber gets a Buffer (Outgoing Buffer Size) Sonic will try to only have 1 copy of the message in memory When the buffer is reaching a threshold, Flow Control is issued. Threshold depends on message priority Publish and SubscribePublisherPublisherTopicTopic SubscriberSubscriber SubscriberSubscriber

© 2007 Progress Software Corporation9 Outgoing Buffer Flow Control Demo Publish and Subscribe PublisherPublisherTopicTopic SubscriberSubscriber SubscriberSubscriber Pub/Sub TEXT Outgoing Buffer Only a pointer is inserted in the Buffer but the calculated size is the message size Ack Danger !!! Slow Subscriber may result in the following situation TEXT FLOW CONTROL

© 2007 Progress Software Corporation10 Conclusion of the test  We can have a fully working system that runs without any problems  Adding 1 Client can have dramatic impact 1 Slow SubScriber will make the Publisher Slow Badly written Client(s) can bring any message Broker to its knees  Where to look and debug if this is in an ESB Service? More important: HOW TO SOLVE THIS?

© 2007 Progress Software Corporation11 Using the ESB to Simulate the ESB  We developed the Simulation Tool in order to: Have a controlled environment to investigate the impact of introducing an ESB. Have an environment to understand the working and concepts of the ESB –Difference between a Process and loosely linked services –What is the impact of Intra-Container messaging –How to develop a deployment scheme and calculate the number of listeners. (slow 1 st Service, Slow last Service, …) Have the possibility to trace the message through the system –Time-Stamp –Endpoints report in the message body Easy deployable model to test ESB over multiple containers –Impact on Quality of Service –Testing with a DRA Model  We developed it with the ESB itself.

© 2007 Progress Software Corporation12 Concept  How to Simulate Test Client that sends an incoming message Test Client that receives the outcome of the ESB (REPLY- TO) Sender puts a time-stamp Receiver gets the timestamp and calculates the message latency in the ESB System. ESB ServiceType for Simulation  What to Simulate CPU External influences Message growth

© 2007 Progress Software Corporation13 Simulation environment External Influences Processing Power Message Growth

© 2007 Progress Software Corporation14 Scaling in different ways  When looking at the ESB, we can scale in 3 different ways  Horizontal: Moving from 1 listener to X listeners Differences between Process and Service Intra-container messaging  Vertical: Moving from 1 JVM to Y JVM’s Quality of Service might forbid this!  Diagonal: Moving over Z multiple machines

© 2007 Progress Software Corporation15 XYZ Scaling X-scaling: Multiple Listeners Y-scaling: Multiple JVMs Z-scaling: Multiple Machines

© 2007 Progress Software Corporation16 Know what you are doing  There are limitations: The Obvious: –Disk traffic –CPU –Memory The not so Obvious: –Flow Control –Your JVM:  Thread handling  Memory size  Resources given by the O/S  SonicMQ (move to a cluster etc)

© 2007 Progress Software Corporation17 The Files  Files are available: Java code for the Service Type esbstyp definition for the Service type Properties definition for the Service Type Java Client/Receiver  Installing the Service Type Put the jar file in the Classpath of the ESB Container Import the esbstyp file Copy the properties file to the right place

© 2007 Progress Software Corporation18 Setup  Create a new ESB container  Create some test endpoints if you want or use Sample Queues/Endpoints that exist  Create a couple of the Benchmark Services  Deploy them into a container  Add the container to an MF Container  Start the container(s) so the environment is running.

© 2007 Progress Software Corporation19 Configuration  Create 3 Services from the ESB Benchmarking Type and define the needed Endpoints on them.  Create a Process that uses the 3 services Make the waiting times 500, 1000, 2000 ms for the 3 entries  Set REPLY-TO on the process

© 2007 Progress Software Corporation20 Hands on testing: Running Test  In the Benchmarking\bin directory find the bench.bat file.  Set the path right for your SonicMQ installation as it calls SonicMQ.bat from the samples  It is a modified Talk application so make changes to the parameters for connection  Added 3 parameters to give on the Bench.bat command Number of messages to send Sleep time in ms between those messages Size of the initial message to be sent in Bench.bat

© 2007 Progress Software Corporation21 Hands on testing  First go: 1 ESB Container Make the 2 services each sleep for 500 ms. Run Bench Results? Run Bench Results? Why? Solutions?  Play further with different setups. Bench Bench Bench Bench

© 2007 Progress Software Corporation22 Results 1: 1 ESB Container with 1 listener Messages are handled without Delay by the running ESB Service. This results in a flat latency line Messages are handled with a very small Delay by the running ESB Service. This results in a very slow increasing latency line In all other cases, the ESB cannot cope with the publishing rate of the client and the message latency will grow. The faster the publishing rate, the steeper the curve.

© 2007 Progress Software Corporation23 Performance Behavior Messages are handled without Delay by the running ESB Service. This results in a flat latency line Messages are handled with a very small Delay by the running ESB Service. This results in a very slow increasing latency line In all other cases, the ESB cannot cope with the publishing rate of the client and the message latency will grow. The faster the publishing rate, the steeper the curve.

© 2007 Progress Software Corporation24 Results: Sending 1 message every 2 seconds

© 2007 Progress Software Corporation25 Results: Sending 1 message every second

© 2007 Progress Software Corporation26 Results: Sending 1 message every 500 ms

© 2007 Progress Software Corporation27 Results: Sending 1 message every 250 ms

© 2007 Progress Software Corporation28 Results: Sending 1 message every 100 ms

© 2007 Progress Software Corporation29 Results: Sending 1 message every 10 ms

© 2007 Progress Software Corporation30 Results 2: 1 ESB Container with 2 listeners Messages are handled without Delay by the running ESB Service. This results in a flat latency line In all other cases, the ESB cannot cope with the publishing rate of the client and the message latency will grow. The faster the publishing rate, the steeper the curve.

© 2007 Progress Software Corporation31 Results 3: 1 ESB Container with 5 listeners Mission Accomplished

© 2007 Progress Software Corporation32 Results 4: 2 ESB Container with 5 listeners Faster messaging results again in increasing the message latency. At one point, the JVM will not allow more Listeners (Threads) and you Need to start a Second ESB Container.

© 2007 Progress Software Corporation33 The Simple Calculation  There is a calculation that can be made in order to find out how many Listeners your Service Needs (This calculation is needed for every Service in the Process): Maximum time for the message to go through the Service (Latency) = TSL (2 sec) Time to handle the Load = THL(300 sec) Number of messages in the Load = NM(1000 msg) Formula to give the number of handlers: –((NM / THL) * TSL) (6.67)  For this setting, you should make sure that the number of messages that can be treated in parallel should be 7 or 8.

© 2007 Progress Software Corporation34 Conclusion  This tool can be used for testing/simulating: DRA environments Deployments of ESB Components over multiple containers Investigate and test the differences between an ESB Process or linking the ESB Services together  This tool should not be used for Stress- Testing the SonicMQ environment.

© 2007 Progress Software Corporation35 Questions

© 2007 Progress Software Corporation36 CONNECT EVERYTHING. WORKING ON ACHIEVE ANYTHING.