Performance Benchmarking an Enterprise Message Bus. Anurag Sharma Pramod Sharma Sumant Vashisth

Similar documents
SOA-14: Continuous Integration in SOA Projects Andreas Gies

Market Data Publisher In a High Frequency Trading Set up

Time and Space. Indirect communication. Time and space uncoupling. indirect communication

Lecture 9: MIMD Architectures

REAL-TIME ANALYTICS WITH APACHE STORM

CAS 703 Software Design

Introduction to Protocols for Realtime Data Sharing. Deepti Nagarkar

Indirect Communication

Solace JMS Broker Delivers Highest Throughput for Persistent and Non-Persistent Delivery

IBM Europe Announcement ZP , dated November 6, 2007

Data Model Considerations for Radar Systems

Introduction to WebSphere Platform Messaging (WPM)

IBM FileNet Content Manager 5.2. Asynchronous Event Processing Performance Tuning

OpenStack internal messaging at the edge: In-depth evaluation. Ken Giusti Javier Rojas Balderrama Matthieu Simonin

Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions

MRG - AMQP trading system in a rack. Carl Trieloff Senior Consulting Software Engineer/ Director MRG Red Hat, Inc.

SUMMARY LAYERED ARCHITECTURE

How Does Your Real-time Data Look?

Goal: Offer practical information to help the architecture evaluation of an SOA system. Evaluating a Service-Oriented Architecture

Maximize the Speed and Scalability of Your MuleSoft ESB with Solace

Lecture 9: MIMD Architectures

ECE 697J Advanced Topics in Computer Networks

JBoss AMQ 7 Technical Deep Dive

MTAT Enterprise System Integration. Lecture 2: Middleware & Web Services

Enhancing cloud applications by using messaging services IBM Corporation

Enable IoT Solutions using Azure

AN EVENTFUL TOUR FROM ENTERPRISE INTEGRATION TO SERVERLESS. Marius Bogoevici Christian Posta 9 May, 2018

Engineering Fault-Tolerant TCP/IP servers using FT-TCP. Dmitrii Zagorodnov University of California San Diego

SaaS Providers. ThousandEyes for. Summary

Introduction to WebSphere Platform Messaging (WPM)

Architectural challenges for building a low latency, scalable multi-tenant data warehouse

Message Queueing. 20 March 2015

Distributed Systems. Messaging and JMS Distributed Systems 1. Master of Information System Management

Remote Journal 101. By Robert Andrews

Large-scale Game Messaging in Erlang at IMVU

Database code in PL-SQL PL-SQL was used for the database code. It is ready to use on any Oracle platform, running under Linux, Windows or Solaris.

Windows Server 2016 Impact on VDI: Benchmark Results. By Mark Plettenberg, Ryan Bijkerk and Omar Bouhaj

Overview SENTINET 3.1

IBM Lotus Expeditor 6.2 Server MQ Everyplace Overview

Web Services. Lecture I. Valdas Rapševičius. Vilnius University Faculty of Mathematics and Informatics

1.264 Lecture 16. Legacy Middleware

IX: A Protected Dataplane Operating System for High Throughput and Low Latency

BUILDING MICROSERVICES ON AZURE. ~ Vaibhav

Scaling Internet TV Content Delivery ALEX GUTARIN DIRECTOR OF ENGINEERING, NETFLIX

Maintaining Spatial Data Infrastructures (SDIs) using distributed task queues

An Introduction to Software Architecture. David Garlan & Mary Shaw 94

9. Queued Transaction Processing

COMMUNICATION PROTOCOLS

Scaling Out Tier Based Applications

Red Hat AMQ 7.2 Introducing Red Hat AMQ 7

CS370 Operating Systems

Scaling Up Performance Benchmarking

White Paper. Major Performance Tuning Considerations for Weblogic Server

Diffusing Your Mobile Apps: Extending In-Network Function Virtualisation to Mobile Function Offloading

A developer s guide to load testing

Most real programs operate somewhere between task and data parallelism. Our solution also lies in this set.

Which application/messaging protocol is right for me?

A Distributed System Case Study: Apache Kafka. High throughput messaging for diverse consumers

Quality of Service in US Air Force Information Management Systems

Blizzard: A Distributed Queue

Building loosely coupled and scalable systems using Event-Driven Architecture. Jonas Bonér Patrik Nordwall Andreas Källberg

Data Acquisition. The reference Big Data stack

Enterprise Scaling with AZURE STORAGE and AZURE SERVICE BUS

Functional Requirements for Grid Oriented Optical Networks

How Design Trade-Offs Influence Software Testing

SSIM Collection & Archiving Infrastructure Scaling & Performance Tuning Guide

Lecture 11 Hadoop & Spark

OpenIAM Identity and Access Manager Technical Architecture Overview

The Google File System

Enterprise Application Integration (EAI) Chapter 7. An Introduction to EAI and Middleware

Architecture or Parallel Computers CSC / ECE 506

Removing the I/O Bottleneck in Enterprise Storage

FLAT DATACENTER STORAGE. Paper-3 Presenter-Pratik Bhatt fx6568

IBM Software Group. IBM WebSphere MQ V7.0. Introduction and Technical Overview. An IBM Proof of Technology IBM Corporation

PacketShader: A GPU-Accelerated Software Router

Announcements. me your survey: See the Announcements page. Today. Reading. Take a break around 10:15am. Ack: Some figures are from Coulouris

Advanced Distributed Systems

SEL-5056 Software-Defined Network (SDN) Flow Controller

Optimizing RDM Server Performance

Web Services. Lecture I. Valdas Rapševičius Vilnius University Faculty of Mathematics and Informatics

Message Queuing Telemetry Transport

Instant Integration into the AMQP Cloud with Apache Qpid Messenger. Rafael Schloming Principle Software Red Hat

IBM Spectrum NAS. Easy-to-manage software-defined file storage for the enterprise. Overview. Highlights

Measuring HEC Performance For Fun and Profit

Introduction to OpenOnload Building Application Transparency and Protocol Conformance into Application Acceleration Middleware

Course Outline. Introduction to Azure for Developers Course 10978A: 5 days Instructor Led

Report. Middleware Proxy: A Request-Driven Messaging Broker For High Volume Data Distribution

Part 17: Networking Technology for Virtual Environments

Service Mesh and Microservices Networking

Connect Applications and Services Together with the Enterprise Service Bus

Chapter 2 Distributed Computing Infrastructure

Redis as a Reliable Work Queue. Percona University

Transformation-free Data Pipelines by combining the Power of Apache Kafka and the Flexibility of the ESB's

VMware vsphere with ESX 4.1 and vcenter 4.1

Architecting & Tuning IIB / extreme Scale for Maximum Performance and Reliability

Ultra Messaging Queing Edition (Version ) Guide to Queuing

Building Large Scale Distributed Systems with AMQP. Ted Ross

Solace JMS Integration with Red Hat JBoss Fuse (6.0)

Scaling Without Sharding. Baron Schwartz Percona Inc Surge 2010

An Introduction to Software Architecture By David Garlan & Mary Shaw 94

Transcription:

Performance Benchmarking an Enterprise Message Bus Anurag Sharma Pramod Sharma Sumant Vashisth

About the Authors Sumant Vashisth is Director of Engineering, Security Management Business Unit at McAfee. Besides, managing and leading teams across various industries during his long career, Sumant is a techie at heart. You can often see him chatting with engineers about the latest in technology and day to day technical challenges. Pramod Sharma is a Software Architect at McAfee, with more than ten years of industry experience. An acknowledged technologist, Pramod has eight patent pending inventions to his credit. Passionate about software quality and process improvements, Pramod is a vocal champion of adopting changes, and learning from the industry. His interests span security management for embedded and mobile devices, and scalable architectures for distributed systems. Anurag Sharma is a Principal SDET Engineer at McAfee, with around eight years of industry experience in software testing and quality assurance. He enjoys reading and being up to date on latest technologies.

1. Message Bus Introduction 2. Few Ground Rules 3. Motivation for this Paper 4. Key things about measuring message bus performance 5. Performance categories/factors 6. Final Notes 7. McAfee Message Bus Architecture 8. Q&A

What the hell is this message (service) bus Lightweight and loosely coupled framework. Integration across a broad range of enterprise applications across security firewalls, application protocols and languages (messaging backbone). Guaranteed delivery of messages among services performing security checks and protocol and data conversions on the fly. Fault tolerant and fail-safe ease of development of services ease of deployment features for message manipulation transactional processing Reference - http://en.wikipedia.org/wiki/enterprise_service_bus

Message Bus Introduction Cont.. Resolve contention between communicating service components Control deployment and versioning of services Cater for commodity services like event handling, data transformation and mapping, message and event queuing and sequencing Conforms to Advanced Message Queuing Protocol (AMQP) - an open standard application layer protocol for message oriented middleware Reference - http://en.wikipedia.org/wiki/advanced_message_queuing_protocol

What this presentation is not about? We are not going to discuss the message bus architecture and design. We are not going to talk about numbers (performance data) here.sorry to disappoint any mathematicians in the hall. We are not going to prove that McAfee enterprise message bus is superior to all other message buses out there although, it is.

Why is this Paper/Presentation? Performance data generated by the different vendors or projects is not consistent really hard to compare and evaluate. Incomplete testing is performed just to solve the immediate needs. How to Benchmark Understand Current Performance Plan Performance tests are too far fetched that they just seem too good to be practical. Study Others Learn From Data Use Findings Reference - http://en.wikipedia.org/wiki/maglev

Key things to be considered while evaluating performance Benchmarks standards and tests should measure the performance of the architecture, as a whole, not the various components in it. Benchmark standards should not be implementation specific i.e. based on any particular platform, software, language of implementation, topology etc. Benchmark tests and results should not be biased by application domain, any particular feature etc. Tests should be reproducible, scalable and exhaustive.

Benchmark Categories Machine Configuration Set of three configurations one high end (best), one average and one low-end (worst) configuration and execute the benchmark test on all three configurations. For out-of-machine (network) communication - network configuration parameters like network topology, the network bandwidth etc. should be identified in advance and documented. Platform parameters like processor (speed and number of cores), operating system, architecture, physical memory etc. should also be documented. No other processor or network hogging tasks should be running while the benchmark tests are conducted.

Benchmark Categories -Communication Modes Client-Server or Request-Response mode - Synchronously or Asynchronously. Publisher-Subscriber mode In this mode, the subscribers for some particular Topic of interest and then, gets notified when topic of interest is available on the bus.

Benchmark Categories Message Reach 1 2 3 Within the process B/W two processes on the same box Out of box Message delivery latency, throughput and reliability vary depending on the relative location of client and server.

Benchmark Categories Identifying the bottleneck Any messaging architecture depends on the performance of one or two entities in the architecture for example, the broker or the packet forwarder or the connection manager. These entities drive the limits of message bus scalability and throughput. Design test scenarios stressing/loading this component.

Benchmark Categories Latency In the out of machine tests, the machines or nodes which are distant (IP hops wise, not physically), should be considered for communication. In-the-process communication configuration is not a good choice for latency tests. The server or receiving node should perform some minimal processing before sending the response. Gradually, increase the number of simultaneous connections and message size and record the average time taken for response.

Benchmark Categories Throughput Throughput is the measure of the average number of successful messages delivered and responses received over a communication channel. The throughput is an important factor while designing message bus or choosing any open source message bus for enterprise usage. Less throughput can be unsuitable for some highly data intensive networks.

Benchmark Categories Throughput The standard machine configuration should be used while designing and executing the throughput tests. More number of threads spawned at the client and server sides can also increase the throughput, therefore, the throughput values should also correlate with the number of parallel threads of execution. Some processing at the receiving node should also be taken into account while measuring the throughput.

Benchmark Categories -Thread Pool v/s Thread IO Thread Pool - Number of threads are created to perform a set of tasks. Typically, more tasks than threads. Thread IO - A single worker thread performs the tasks sequentially. Thread pool provides better performance and throughput compared to creating a new thread for each task. Thread pool, the number of threads in a thread pool is a parameter that can be tuned to provide the best performance. Benchmark tests should be conducted for both configurations.

Benchmark Categories Reliability Reliability in this context is measured in terms of number of packets lost in a given period of time. Example scenarios - Push the messages continuously without delay and determine the number of messages dropped (Monitor CPU usage, memory utilization, crashes etc.). Run the tests for a two to three days continuously and monitor the messages dropped and other vital characteristics. Varying the network configuration i.e., topology and number of processes/machines communicating, can also generate significant reliability information.

Benchmark Categories Resource Utilization CPU utilization By general principle, more than 50% CPU utilization is not considered good. Memory usage Should be kept to minimum. Number of threads Always a tradeoff between the throughput and reliability. Disk I/O Disk operations are expensive and increase latency. They should be kept to minimum. Number of open sockets/pipes Expensive and potential security threats. Try to keep it to minimum. Consider intelligent designs concepts like reusing the sockets/pipes, opening connections on demand etc.

Benchmark Categories Security Most message bus architectures deploy some level of security either at message level or at connection level. Various security mechanisms like connection based authentication (connection based or message based), encryption, integrity check (hash algorithm), authorization etc., slow down the message bus at varying levels. Benchmark tests should be conducted for both secure and non-secure environments.

Final Notes 1 Throughput, reliability, latency are not independent factors, they should all be considered together while designing the test scenarios. 2 The performance test scenarios are also end-to-end tests and a great aid for performance fine-tuning. 3 Performance test scenarios should generally be automated.

McAfee Message Bus Architecture

Few Popular Enterprise Message Buses ZeroMQ (Brokerless model) ActiveMQ RabbitMQ Qpid D-Bus (Open Source) MSMQ RavenMQ Jboss ESB HornetMQ Apache Qpid Apollo Avis Event Router (Only PUB-SUB mode)

References http://msdn.microsoft.com/en-us/library/aa480027.aspx http://en.wikipedia.org/wiki/advanced_message_queuing_protocol Zero MQ performance results at - http://www.zeromq.org/area:results http://x-aeon.com/wp/2013/04/10/a-quick-message-queue-benchmarkactivemq-rabbitmq-hornetq-qpid-apollo/ http://mnb.ociweb.com/mnb/middlewarenewsbrief-201004.html http://mikehadlow.blogspot.com/2011/04/message-queue-shootout.html http://avis.sourceforge.net/index.html http://en.wikipedia.org/wiki/d-bus http://soa.dzone.com/articles/esb-performance-pitfalls Image credit Images are borrowed from Google Image Search

Questions?

Thanks