Enabling Java-based VoIP backend platforms through JVM performance tuning

Similar documents
Tuning and development with SIP Servlet on Mobicents. Naoki Nishihara OKI Electric Industry Co.,Ltd Jean Deruelle Mobicents Sip Servlets Lead

Java & Coherence Simon Cook - Sales Consultant, FMW for Financial Services

JVM Memory Model and GC

Java Performance Tuning

IBM Cognos ReportNet and the Java Heap

JVM Performance Study Comparing Oracle HotSpot and Azul Zing Using Apache Cassandra

JVM Performance Study Comparing Java HotSpot to Azul Zing Using Red Hat JBoss Data Grid

Runtime Application Self-Protection (RASP) Performance Metrics

Part I Garbage Collection Modeling: Progress Report

Java Performance Tuning From A Garbage Collection Perspective. Nagendra Nagarajayya MDE

Java Application Performance Tuning for AMD EPYC Processors

Towards High Performance Processing in Modern Java-based Control Systems. Marek Misiowiec Wojciech Buczak, Mark Buttner CERN ICalepcs 2011

Kodewerk. Java Performance Services. The War on Latency. Reducing Dead Time Kirk Pepperdine Principle Kodewerk Ltd.

SPECjAppServer2002 Statistics. Methodology. Agenda. Tuning Philosophy. More Hardware Tuning. Hardware Tuning.

Garbage Collection. Hwansoo Han

SAP ENTERPRISE PORTAL. Scalability Study - Windows

OS-caused Long JVM Pauses - Deep Dive and Solutions

HBase Practice At Xiaomi.

Fundamentals of GC Tuning. Charlie Hunt JVM & Performance Junkie

SAS 9.2 Web Applications: Tuning for Performance and Scalability

Do Your GC Logs Speak To You

NG2C: Pretenuring Garbage Collection with Dynamic Generations for HotSpot Big Data Applications

Low latency & Mechanical Sympathy: Issues and solutions

Exploiting the Behavior of Generational Garbage Collector

Concurrent Garbage Collection

SAS 9.2 Web Applications: Tuning for Performance and Scalability

JVM Troubleshooting MOOC: Troubleshooting Memory Issues in Java Applications

J2EE Performance Tuning. Jayesh Patel Northern Virginia Java/BEA User Group January 11 th, 2005.

Telecommunication Services Engineering Lab. Roch H. Glitho

Understanding Java Garbage Collection

Open Cloud Rhino SMPP Resource Adaptors Users Guide

G1 Garbage Collector Details and Tuning. Simone Bordet

The G1 GC in JDK 9. Erik Duveblad Senior Member of Technical Staf Oracle JVM GC Team October, 2017

VoltDB vs. Redis Benchmark

Performance Management of Java-based SIP Application Servers

Typical Issues with Middleware

Implementation and performance analysis of advanced IT services based on open source JAIN SLEE

Garbage collection. The Old Way. Manual labor. JVM and other platforms. By: Timo Jantunen

Understanding Java Garbage Collection

A Side-channel Attack on HotSpot Heap Management. Xiaofeng Wu, Kun Suo, Yong Zhao, Jia Rao The University of Texas at Arlington

Understanding Java Garbage Collection

Attila Szegedi, Software

Real Time: Understanding the Trade-offs Between Determinism and Throughput

PERFORMANCE ANALYSIS AND OPTIMIZATION OF SKIP LISTS FOR MODERN MULTI-CORE ARCHITECTURES

10/26/2017 Universal Java GC analysis tool - Java Garbage collection log analysis made easy

Dynamic Vertical Memory Scalability for OpenJDK Cloud Applications

Java Performance: The Definitive Guide

Quality Center Benchmark March 2009

Liferay Portal 6.2 Enterprise Edition. Deployment Checklist

Universität Stuttgart

Mark Falco Oracle Coherence Development

JVM and application bottlenecks troubleshooting

Speeding up Linux TCP/IP with a Fast Packet I/O Framework

Cross-Layer Memory Management to Reduce DRAM Power Consumption

Hierarchical Real-time Garbage Collection

Oracle JRockit. Performance Tuning Guide Release R28 E

Understanding Garbage Collection

It s Good to Have (JVM) Options

THE TROUBLE WITH MEMORY

lean enterprise middleware High Volume Web API Management with WSO2 ESB

High Performance Java Technology in a Multi-Core World

JBoss Performance Tuning. Bill Meyer JBoss Sr. Solutions Architect

Finally! Real Java for low latency and low jitter

Workload Characterization and Optimization of TPC-H Queries on Apache Spark

Diplomado Certificación

Problems on Voice over IP (VoIP)

Tuning Performance of Oracle WebLogic Server 12c (12.2.1)

Enabling the IP Multimedia Subsystem (IMS) With Java Technology

RESTCOMMONE. jss7. Copyright All Rights Reserved Page 2

The Application Memory Wall

The Z Garbage Collector An Introduction

ZENworks 2017 Update 1 ZENworks Diagnostics and Probe Guide. July 2017

Caching Use Cases in the Enterprise

Glacier: A Garbage Collection Simulation System

2011 Oracle Corporation and Affiliates. Do not re-distribute!

MEMORY MANAGEMENT HEAP, STACK AND GARBAGE COLLECTION

Java Performance Tuning and Optimization Student Guide

September 15th, Finagle + Java. A love story (

Controlling Overload in Networks of SIP Servers

RESTCOMMONE. Load Balancer. Copyright All Rights Reserved Page 2

Introduction. Architecture Overview

The C4 Collector. Or: the Application memory wall will remain until compaction is solved. Gil Tene Balaji Iyengar Michael Wolf

Garbage Collection (aka Automatic Memory Management) Douglas Q. Hawkins. Why?

Low Latency Java in the Real World

Boosting the Priority of Garbage: Scheduling Collection on Heterogeneous Multicore Processors

High Performance Managed Languages. Martin Thompson

The Fundamentals of JVM Tuning

The Z Garbage Collector Scalable Low-Latency GC in JDK 11

TRASH DAY: COORDINATING GARBAGE COLLECTION IN DISTRIBUTED SYSTEMS

A Quest for Predictable Latency Adventures in Java Concurrency. Martin Thompson

A Web Services based Architecture for NGN Services Delivery

RFC 3665 Basic Call Flow Examples

Webcenter Application Performance Tuning guide

Myths and Realities: The Performance Impact of Garbage Collection

TLDK Overview. Transport Layer Development Kit Keith Wiles April Contributions from Ray Kinsella & Konstantin Ananyev

Application Management Webinar. Daniela Field

Java Without the Jitter

New Java performance developments: compilation and garbage collection

RESTCOMMONE. jdiameter. Copyright All Rights Reserved Page 2

Oracle Communications Converged Application Server

Transcription:

Enabling Java-based VoIP backend platforms through JVM performance tuning (Bruno Van Den Bossche, Filip De Turck, April 3rd 2006) 3 April, 2006, 1

Outline Introduction Java 4 Telecom Evaluation Setup Hardware Software Java Virtual Machine Default behavior Possible Optimizations Optimized Behavior Results Conclusions 3 April, 2006, 2

Introduction Software backend platforms are increasingly popular in VoIP offerings. Java is currently one of the most popular programming languages for implementing business logic. Is Java suitable for implementing VoIP and telecom related applications? Java Application Servers for Telecom related applications are emerging: SIP Servlet JAIN SLEE 3 April, 2006, 3

Telecom Applications: VoIP Telecom related applications have very specific requirements Low Latency High Throughput Example: Softswitch How fast can it set up a call? How many calls can in set up per second? Java 4 Telecom? 3 April, 2006, 4

Java Virtual Machine: Features Java Byte Code is executed by a virtual Machine This makes it platform independent Java features automatic Memory Management and a Garbage Collector This simplifies the task of the developer 3 April, 2006, 5

Java Virtual Machine: Problems Java Byte Code is executed by a virtual Machine This can be a performance penalty Java features automatic Memory Management and a Garbage Collector This can cause a performance penalty due to unpredictable behavior of the system. 3 April, 2006, 6

Evaluation: Proxy 200 benchmark Alice Proxy Bob Measured Time Interval Invite Trying [100] Ringing [180] OK [200] ACK BYE OK [200] Media transfer Invite Ringing [180] OK [200] ACK BYE OK [200] No Media Session started when benchmarking 3 April, 2006, 7

Evaluation Setup: Hardware Perform routing Alice Internet Proxy Bob Dual Opteron 1.6Ghz 2GB RAM Linux kernel 2.6 3 April, 2006, 8

Evaluation Setup: Software SIP Servlet BEA Weblogic SIP Server JAIN SLEE Open Cloud Rhino Benchmark software SIPp (test tool / traffic generator for the SIP protocol) 3 April, 2006, 9

SIP Servlet: Architecture Container based Life cycle management Manage network listen points Very similar to HTTP- Servlet SIP Protocol Specific Request Response Model Servlet Servlet Application Servlet JAIN SIP Servlet API SIP Stack Container SIP Servlet Server Application client 3 April, 2006, 10

JAIN SLEE: Architecture Container based Life cycle management Protocol Agnostic Resource Adaptors allow protocols to be plugged in Manage network Listen Points Event driven and asynchronous SBB Activity ctx Application Proxy JAIN SLEE SBB API JAIN SIP JAIN JCC SIP RA JCC RA JAIN SLEE Container JAIN SLEE Server Application client 3 April, 2006, 11

Message Handling SIP Request INVITE ACK OPTIONS BYE CANCEL SIP SERVLET doinvite() doack() dooptions() dobye() docancel() JAIN SLEE oninviteevent() onackevent() onoptionsevent() onbyeevent() oncancelevent() Methods defined in specification javax.servlet.sip.sipservlet Methods defined by event names specified by the Resource Adapter 3 April, 2006, 12

200 180 160 140 Results: SIP Servlet (default) Response time as a function of call rate and system load Average response time 50th percentile 95th percentile System load 100 90 80 70 50 ms 25 ms Response time (ms) 120 100 80 60 40 20 60 50 40 30 20 10 System Load (%) 0 0 50 100 150 200 250 0 Call Rate (caps) 3 April, 2006, 13

Results: JAIN SLEE (untuned) 200 180 160 140 Response time as a function of call rate and system load Average response time 50th percentile 95th percentile System load 100 90 80 70 50 ms 25 ms Response time (ms) 120 100 80 60 40 20 60 50 40 30 20 10 System Load (%) 0 0 50 100 150 200 250 0 Call Rate (caps) 3 April, 2006, 14

Cause of the problems? Memory Management and Garbage Collector heap resizing Legend Heap Usage low response time GC-Time long lasting GC GC-occurrence Tenured Gen. Young Gen. Image created with gcviewer (http://www.tagtraum.com/gcviewer.html) 3 April, 2006, 15

Solution: Virtual Machine Tuning Memory Organization Garbage Collection 3 April, 2006, 16

Young generation Memory Tuning Perm generation Eden Survivor Survivor Virtual Tenured Virtual Perm Virtual Tenured generation Tiny Survivor Spaces Total Heap Size large enough Eden Tenured Virtual Perm Virtual Fixed Young Generation Size Other Generation Sizes NOT Fixed 3 April, 2006, 17

Default Long GC pauses Garbage Collector Tuning Parallel Multithreaded GC Concurrent GC partially parallel with Application Execution Parallel & Concurrent Performance implications: More resources are spent on Garbage Collection All generations Only for young generation Only for tenured generation All generations 3 April, 2006, 18

Tuning Options -Xmx512m -XX:MaxNewSize=32m -XX:NewSize=32m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:+CMSIncrementalPacing -XX:CMSIncrementalDutyCycleMin=0 -XX:CMSIncrementalDutyCycle=10 -XX:+UseTLAB -XX:MaxTenuringThreshold=0 -XX:SurvivorRatio=128 Sizing of the memory generations Selection of the Garbage Collector Allow multithreaded memory allocation Move long living objects to Tenured Generation 3 April, 2006, 19

Problems solved? No heap resizing Legend No long lasting GC low response time Heap Usage GC-Time GC-occurrence Tenured Gen. Young Gen. Image created with gcviewer (http://www.tagtraum.com/gcviewer.html) 3 April, 2006, 20

Results: SIP Servlet 200 180 160 140 Response time as a function of call rate and system load Average response time 50th percentile 95th percentile Higher CPU load System load 100 90 80 70 50 ms 25 ms Response time (ms) 120 100 80 60 40 20 Improved Latencies 60 50 40 30 20 10 System Load (%) 0 0 50 100 150 200 250 0 Call Rate (caps) 3 April, 2006, 21

200 180 160 140 Results: JAIN SLEE Response time as a function of call rate and system load Average response time 50th percentile 95th percentile System load 100 90 80 70 50 ms 25 ms Response time (ms) 120 100 80 60 40 20 60 50 40 30 20 10 System Load (%) 0 0 50 100 150 200 250 0 Call Rate (caps) 3 April, 2006, 22

Conclusions Java Technologies can simplify the Design and Management of Telecom and VoIP related applications Java Virtual Machine Tuning can improve the Java Garbage Collection significantly Java Application Servers combined with appropriate tuning can meet strict Low Latency Requirements 3 April, 2006, 23