SlideShare a Scribd company logo
1 of 22
Download to read offline
©2011 Azul Systems, Inc.	
 	
 	
 	
 	
 	
The Java Evolution
Mismatch
Why you need a better JVM
Gil Tene, CTO & co-Founder, Azul Systems
©2011 Azul Systems, Inc.	
 	
 	
 	
 	
 	
About Azul
We make scalable Virtual
Machines
Have built “whatever it takes
to get job done” since 2002
3 generations of custom SMP
Multi-core HW (Vega)
Now Pure software for
commodity x86 (Zing)
“Industry firsts” in Garbage
collection, elastic memory,
Java virtualization, memory
scale
Vega
C4
©2011 Azul Systems, Inc.	
 	
 	
 	
 	
 	
Java Platform Evolution - early days
Initially focused on client-side applications
browser, applet, etc.
Started off as a “toy”
Cool, rich features that quickly evolved and expanded
Slow (interpreted)
Fat (needed more memory than many machines had)
~1995-~2000: Server side uses quickly evolved
Platform performance evolved right along with functionality
JIT compilers, HotSpot, generational, parallel GC
Able to “fit better” and perform well in real machines
©2011 Azul Systems, Inc.	
 	
 	
 	
 	
 	
Java Platform Evolution:
the past decade
Java became the dominant server application platform
Java “won” the productivity and leverage game
Functionality evolved quickly and continually
Focused on productivity, enterprise functionality
Huge, unrivaled ecosystem
Performance stayed around the same...
Platform was built to fit in a few cores, a few GB circa 2001
Has not evolved since
But servers have changed...
©2011 Azul Systems, Inc.	
 	
 	
 	
 	
 	
Reality check: servers in 2011
Retail prices, major web server store (US $, Oct. 2011)
Cheap (≈ $1.5/GB/Month), and roughly linear to ~1TB
24 vCore, 96GB server ≈ $5K
32 vCore, 256GB server ≈ $16K
64 vCore, 512GB server ≈ $30K
80 vCore, 1TB server ≈ $63K
©2011 Azul Systems, Inc.	
 	
 	
 	
 	
 	
“Tiny” application history
100KB apps on a ¼ to ½ MB Server
10MB apps on a 32 – 64 MB server
1GB apps on a 2 – 4 GB server
??? GB apps on 256 GB
Assuming Moore’s Law means:
“transistor counts grow at ≈2x
every ≈18 months”
It also means memory size grows
≈100x every 10 years
2010
2000
1990
1980
“Tiny”: would be “silly” to distribute
Application
Memory Wall
©2011 Azul Systems, Inc.	
 	
 	
 	
 	
 	
The Java “problem”
Then and Now
2000: Java platforms had a hard time fitting
well in one computer
2012: Java platforms can’t make use of more
than a tiny fraction of one computer
©2011 Azul Systems, Inc.	
 	
 	
 	
 	
 	
Current day Java Limitations
Responsiveness
Sensitivity to load, Fragility
Rigid, non-elastic, inefficient
Scale and Complexity
Common cause: platform misbehaves above a few cores
and a few GB per instance
©2011 Azul Systems, Inc.	
 	
 	
 	
 	
 	
What is keeping Java platforms from
making full use of current servers?
Garbage Collection is a clear and dominant cause
There seem to be practical heap size limits for
applications with responsiveness requirements
[Virtually] All current commercial JVMs will exhibit a
multi-second pause on a normally utilized 2-4GB heap.
It’s a question of “When” and “How often”, not “If”.
GC tuning only moves the “when” and the “how often” around
Root cause: The link between scale and responsiveness
©2011 Azul Systems, Inc.	
 	
 	
 	
 	
 	
Zing: A JVM for today’s servers
Eliminates the core problems that keep Java
form making good/full/effective use of
current servers
Able to put current servers to work
©2011 Azul Systems, Inc.	
 	
 	
 	
 	
 	
Desired Application Benefits
C Improve Response times
C Increase Transaction rates
C Increase Concurrent users
C Forget about GC pauses
C Eliminate daily restarts	
C Elastically grow during peaks
C Elastically shrink when idle
C Gain production visibility
©2011 Azul Systems, Inc.	
 	
 	
 	
 	
 	
Modern Use Cases
ü Portal / eCommerce Apps
• High concurrent users with consistent response times
ü Low-latency / Trading Apps
• Consistent response times with greater stability & availability
ü Big Data / Large Caching / In-memory Data Analytics
• Fast, consistent in-memory data processing
ü SOA / ESB / Messaging Apps
• Large data sizes and transactions rates
ü Mission-critical / High Throughput / SLA Apps
• Guaranteed performance metrics (i.e. transactions rates)
©2011 Azul Systems, Inc.	
 	
 	
 	
 	
 	
Framing the discussion:
Garbage Collection at modern server scales
Modern Servers have 10s, even 100s of GB of memory
Each modern x86 core (when actually used) produces
garbage at a rate of ¼ - ½ GB/sec +
That’s many GB/sec of allocation in a server
Monolithic stop-the-world operations are the cause of
the current Application Memory Wall
Even if they are done “only a few times a day”
©2011 Azul Systems, Inc.	
 	
 	
 	
 	
 	
We need to solve the right problems
Focus on the causes of the Application Memory Wall
Scale is artificially limited by responsiveness
Responsiveness must be unlinked from scale
Heap size, Live Set size, Allocation rate, Mutation rate
Responsiveness must be continually sustainable
Can’t ignore “rare” events
Eliminate all Stop-The-World Fallbacks
At modern server scales, any STW fall back is a failure
©2011 Azul Systems, Inc.	
 	
 	
 	
 	
 	
The problems that need solving
(areas where the state of the art needs improvement)
Robust Concurrent Marking
In the presence of high mutation and allocation rates
Cover modern runtime semantics (e.g. weak refs)
Compaction that is not monolithic-stop-the-world
Stay responsive while compacting many-GB heaps
Must be robust: not just a tactic to delay STW compaction
[current “incremental STW” attempts fall short on robustness]
Non-monolithic-stop-the-world Generational collection
Stay responsive while promoting multi-GB data spikes
Concurrent or “incremental STW” may be both be ok
Surprisingly little work done in this specific area
©2011 Azul Systems, Inc.	
 	
 	
 	
 	
 	
Azul’s “C4” Collector
Continuously Concurrent Compacting Collector
Concurrent, compacting new generation
Concurrent, compacting old generation
Concurrent guaranteed-single-pass marker
Oblivious to mutation rate
Concurrent ref (weak, soft, final) processing
Concurrent Compactor
Objects moved without stopping mutator
References remapped without stopping mutator
Can relocate entire generation (New, Old) in every GC cycle
No stop-the-world fallback
Always compacts, and always does so concurrently
©2011 Azul Systems, Inc.	
 	
 	
 	
 	
 	
Sample responsiveness improvement
๏ SpecJBB + Slow churning 2GB LRU Cache
๏ Live set is ~2.5GB across all measurements
๏ Allocation rate is ~1.2GB/sec across all measurements
©2011 Azul Systems, Inc.	
 	
 	
 	
 	
 	
Instance capacity test: “Fat Portal”
HotSpot CMS: Peaks at ~ 3GB / 45 concurrent users
* LifeRay portal on JBoss @ 99.9% SLA of 5 second response times
©2011 Azul Systems, Inc.	
 	
 	
 	
 	
 	
Instance capacity test: “Fat Portal”
C4: still smooth @ 800 concurrent users
©2011 Azul Systems, Inc.	
 	
 	
 	
 	
 	
Java GC tuning is “hard”…
Examples of actual command line GC tuning parameters:
Java -Xmx12g -XX:MaxPermSize=64M -XX:PermSize=32M -XX:MaxNewSize=2g
-XX:NewSize=1g -XX:SurvivorRatio=128 -XX:+UseParNewGC
-XX:+UseConcMarkSweepGC -XX:MaxTenuringThreshold=0
-XX:CMSInitiatingOccupancyFraction=60 -XX:+CMSParallelRemarkEnabled
-XX:+UseCMSInitiatingOccupancyOnly -XX:ParallelGCThreads=12
-XX:LargePageSizeInBytes=256m …
Java –Xms8g –Xmx8g –Xmn2g -XX:PermSize=64M -XX:MaxPermSize=256M
-XX:-OmitStackTraceInFastThrow -XX:SurvivorRatio=2 -XX:-UseAdaptiveSizePolicy
-XX:+UseConcMarkSweepGC -XX:+CMSConcurrentMTEnabled
-XX:+CMSParallelRemarkEnabled -XX:+CMSParallelSurvivorRemarkEnabled
-XX:CMSMaxAbortablePrecleanTime=10000 -XX:+UseCMSInitiatingOccupancyOnly
-XX:CMSInitiatingOccupancyFraction=63 -XX:+UseParNewGC –Xnoclassgc …
©2011 Azul Systems, Inc.	
 	
 	
 	
 	
 	
The complete guide to
Zing GC tuning
java -Xmx40g
©2011 Azul Systems, Inc.	
 	
 	
 	
 	
 	
How can we make full, effective
of current server capabilities?
Simple: Deploy Zing 5.0 on Linux

More Related Content

What's hot

Managing Performance in the Cloud
Managing Performance in the CloudManaging Performance in the Cloud
Managing Performance in the CloudDevOpsGroup
 
E g innovations
E g innovationsE g innovations
E g innovationsdvmug1
 
VMworld 2013: Enterprise Architecture Design for VMware Horizon View 5.2
VMworld 2013: Enterprise Architecture Design for VMware Horizon View 5.2 VMworld 2013: Enterprise Architecture Design for VMware Horizon View 5.2
VMworld 2013: Enterprise Architecture Design for VMware Horizon View 5.2 VMworld
 
Varrow Q4 Lunch & Learn Presentation - Virtualizing Business Critical Applica...
Varrow Q4 Lunch & Learn Presentation - Virtualizing Business Critical Applica...Varrow Q4 Lunch & Learn Presentation - Virtualizing Business Critical Applica...
Varrow Q4 Lunch & Learn Presentation - Virtualizing Business Critical Applica...Andrew Miller
 
Virtualizing a Virtual Machine
Virtualizing a Virtual MachineVirtualizing a Virtual Machine
Virtualizing a Virtual Machineelliando dias
 
Xen: Hypervisor for the Cloud - CCC13
Xen: Hypervisor for the Cloud - CCC13Xen: Hypervisor for the Cloud - CCC13
Xen: Hypervisor for the Cloud - CCC13The Linux Foundation
 
XenApp Virtualization Success - How to Eliminate Storage and Networking Bottl...
XenApp Virtualization Success - How to Eliminate Storage and Networking Bottl...XenApp Virtualization Success - How to Eliminate Storage and Networking Bottl...
XenApp Virtualization Success - How to Eliminate Storage and Networking Bottl...eG Innovations
 
Architecting for a cost effective Windows Azure solution
Architecting for a cost effective Windows Azure solutionArchitecting for a cost effective Windows Azure solution
Architecting for a cost effective Windows Azure solutionMaarten Balliauw
 
How to build a winning solution for large scale VDI deployments
How to build a winning solution for large scale VDI deploymentsHow to build a winning solution for large scale VDI deployments
How to build a winning solution for large scale VDI deploymentsNetApp
 
VMworld 2013: Successfully Virtualize Microsoft Exchange Server
VMworld 2013: Successfully Virtualize Microsoft Exchange Server VMworld 2013: Successfully Virtualize Microsoft Exchange Server
VMworld 2013: Successfully Virtualize Microsoft Exchange Server VMworld
 
XenServer 5.5 - Czy można zaoszczędzić na wirtualizacji serwerów? Darmowy Xen...
XenServer 5.5 - Czy można zaoszczędzić na wirtualizacji serwerów? Darmowy Xen...XenServer 5.5 - Czy można zaoszczędzić na wirtualizacji serwerów? Darmowy Xen...
XenServer 5.5 - Czy można zaoszczędzić na wirtualizacji serwerów? Darmowy Xen...Peter Ocasek
 
W PROSTOCIE SIŁA - wirtualizacja sposobem na uproszczenie infrastruktury IT
W PROSTOCIE SIŁA - wirtualizacja sposobem na uproszczenie infrastruktury ITW PROSTOCIE SIŁA - wirtualizacja sposobem na uproszczenie infrastruktury IT
W PROSTOCIE SIŁA - wirtualizacja sposobem na uproszczenie infrastruktury ITPeter Ocasek
 
„Wielka dwójka”, czyli jak działa Citrix XenApp na Citrix XenServer u dużych ...
„Wielka dwójka”, czyli jak działa Citrix XenApp na Citrix XenServer u dużych ...„Wielka dwójka”, czyli jak działa Citrix XenApp na Citrix XenServer u dużych ...
„Wielka dwójka”, czyli jak działa Citrix XenApp na Citrix XenServer u dużych ...Peter Ocasek
 

What's hot (20)

Managing Performance in the Cloud
Managing Performance in the CloudManaging Performance in the Cloud
Managing Performance in the Cloud
 
ESX performance problems 10 steps
ESX performance problems 10 stepsESX performance problems 10 steps
ESX performance problems 10 steps
 
E g innovations
E g innovationsE g innovations
E g innovations
 
VMworld 2013: Enterprise Architecture Design for VMware Horizon View 5.2
VMworld 2013: Enterprise Architecture Design for VMware Horizon View 5.2 VMworld 2013: Enterprise Architecture Design for VMware Horizon View 5.2
VMworld 2013: Enterprise Architecture Design for VMware Horizon View 5.2
 
Varrow Q4 Lunch & Learn Presentation - Virtualizing Business Critical Applica...
Varrow Q4 Lunch & Learn Presentation - Virtualizing Business Critical Applica...Varrow Q4 Lunch & Learn Presentation - Virtualizing Business Critical Applica...
Varrow Q4 Lunch & Learn Presentation - Virtualizing Business Critical Applica...
 
prezentációt
prezentációtprezentációt
prezentációt
 
Virtualizing a Virtual Machine
Virtualizing a Virtual MachineVirtualizing a Virtual Machine
Virtualizing a Virtual Machine
 
VMWARE
VMWAREVMWARE
VMWARE
 
Xen: Hypervisor for the Cloud - CCC13
Xen: Hypervisor for the Cloud - CCC13Xen: Hypervisor for the Cloud - CCC13
Xen: Hypervisor for the Cloud - CCC13
 
XenApp Virtualization Success - How to Eliminate Storage and Networking Bottl...
XenApp Virtualization Success - How to Eliminate Storage and Networking Bottl...XenApp Virtualization Success - How to Eliminate Storage and Networking Bottl...
XenApp Virtualization Success - How to Eliminate Storage and Networking Bottl...
 
Architecting for a cost effective Windows Azure solution
Architecting for a cost effective Windows Azure solutionArchitecting for a cost effective Windows Azure solution
Architecting for a cost effective Windows Azure solution
 
How to build a winning solution for large scale VDI deployments
How to build a winning solution for large scale VDI deploymentsHow to build a winning solution for large scale VDI deployments
How to build a winning solution for large scale VDI deployments
 
VMworld 2013: Successfully Virtualize Microsoft Exchange Server
VMworld 2013: Successfully Virtualize Microsoft Exchange Server VMworld 2013: Successfully Virtualize Microsoft Exchange Server
VMworld 2013: Successfully Virtualize Microsoft Exchange Server
 
XenServer 5.5 - Czy można zaoszczędzić na wirtualizacji serwerów? Darmowy Xen...
XenServer 5.5 - Czy można zaoszczędzić na wirtualizacji serwerów? Darmowy Xen...XenServer 5.5 - Czy można zaoszczędzić na wirtualizacji serwerów? Darmowy Xen...
XenServer 5.5 - Czy można zaoszczędzić na wirtualizacji serwerów? Darmowy Xen...
 
Hyper-V Dynamic Memory in Depth
Hyper-V Dynamic Memory in Depth Hyper-V Dynamic Memory in Depth
Hyper-V Dynamic Memory in Depth
 
Skylark: Easy Cloud Computing
Skylark: Easy Cloud ComputingSkylark: Easy Cloud Computing
Skylark: Easy Cloud Computing
 
W PROSTOCIE SIŁA - wirtualizacja sposobem na uproszczenie infrastruktury IT
W PROSTOCIE SIŁA - wirtualizacja sposobem na uproszczenie infrastruktury ITW PROSTOCIE SIŁA - wirtualizacja sposobem na uproszczenie infrastruktury IT
W PROSTOCIE SIŁA - wirtualizacja sposobem na uproszczenie infrastruktury IT
 
A Xen Case Study
A Xen Case StudyA Xen Case Study
A Xen Case Study
 
„Wielka dwójka”, czyli jak działa Citrix XenApp na Citrix XenServer u dużych ...
„Wielka dwójka”, czyli jak działa Citrix XenApp na Citrix XenServer u dużych ...„Wielka dwójka”, czyli jak działa Citrix XenApp na Citrix XenServer u dużych ...
„Wielka dwójka”, czyli jak działa Citrix XenApp na Citrix XenServer u dużych ...
 
Xen.org Overview 2009
Xen.org Overview 2009Xen.org Overview 2009
Xen.org Overview 2009
 

Similar to The Java Evolution Mismatch by Gil Tene, CTO at Azul Systems

Azul yandexjune010
Azul yandexjune010Azul yandexjune010
Azul yandexjune010yaevents
 
Enterprise Search Summit - Speeding Up Search
Enterprise Search Summit - Speeding Up SearchEnterprise Search Summit - Speeding Up Search
Enterprise Search Summit - Speeding Up SearchAzul Systems Inc.
 
DotCMS Bootcamp: Enabling Java in Latency Sensitivie Environments
DotCMS Bootcamp: Enabling Java in Latency Sensitivie EnvironmentsDotCMS Bootcamp: Enabling Java in Latency Sensitivie Environments
DotCMS Bootcamp: Enabling Java in Latency Sensitivie EnvironmentsAzul Systems Inc.
 
Enabling Java in Latency Sensitive Applications by Gil Tene, CTO, Azul Systems
Enabling Java in Latency Sensitive Applications by Gil Tene, CTO, Azul SystemsEnabling Java in Latency Sensitive Applications by Gil Tene, CTO, Azul Systems
Enabling Java in Latency Sensitive Applications by Gil Tene, CTO, Azul SystemszuluJDK
 
Sioux Hot-or-Not: The future of Linux (Alan Cox)
Sioux Hot-or-Not: The future of Linux (Alan Cox)Sioux Hot-or-Not: The future of Linux (Alan Cox)
Sioux Hot-or-Not: The future of Linux (Alan Cox)siouxhotornot
 
Building Scalable Applications using Pivotal Gemfire/Apache Geode
Building Scalable Applications using Pivotal Gemfire/Apache GeodeBuilding Scalable Applications using Pivotal Gemfire/Apache Geode
Building Scalable Applications using Pivotal Gemfire/Apache Geodeimcpune
 
Coates bosc2010 clouds-fluff-and-no-substance
Coates bosc2010 clouds-fluff-and-no-substanceCoates bosc2010 clouds-fluff-and-no-substance
Coates bosc2010 clouds-fluff-and-no-substanceBOSC 2010
 
Explorations of the three legged performance stool
Explorations of the three legged performance stoolExplorations of the three legged performance stool
Explorations of the three legged performance stoolC4Media
 
VMworld Europe 2014: Virtualizing Databases Doing IT Right – The Sequel
VMworld Europe 2014: Virtualizing Databases Doing IT Right – The SequelVMworld Europe 2014: Virtualizing Databases Doing IT Right – The Sequel
VMworld Europe 2014: Virtualizing Databases Doing IT Right – The SequelVMworld
 
The challenges of live events scalability
The challenges of live events scalabilityThe challenges of live events scalability
The challenges of live events scalabilityGuy Tomer
 
VMworld 2014: Virtualizing Databases
VMworld 2014: Virtualizing DatabasesVMworld 2014: Virtualizing Databases
VMworld 2014: Virtualizing DatabasesVMworld
 
Enabling Java in Latency-Sensitive Applications
Enabling Java in Latency-Sensitive ApplicationsEnabling Java in Latency-Sensitive Applications
Enabling Java in Latency-Sensitive ApplicationsAzul Systems Inc.
 
JITServerTalk JCON World 2023.pdf
JITServerTalk JCON World 2023.pdfJITServerTalk JCON World 2023.pdf
JITServerTalk JCON World 2023.pdfRichHagarty
 
Presentation cloud meets big
Presentation   cloud meets bigPresentation   cloud meets big
Presentation cloud meets bigsolarisyourep
 
Presentation cloud meets big
Presentation   cloud meets bigPresentation   cloud meets big
Presentation cloud meets bigxKinAnx
 
Enhancing Live Migration Process for CPU and/or memory intensive VMs running...
Enhancing Live Migration Process for CPU and/or  memory intensive VMs running...Enhancing Live Migration Process for CPU and/or  memory intensive VMs running...
Enhancing Live Migration Process for CPU and/or memory intensive VMs running...Benoit Hudzia
 
Software and the Concurrency Revolution : Notes
Software and the Concurrency Revolution : NotesSoftware and the Concurrency Revolution : Notes
Software and the Concurrency Revolution : NotesSubhajit Sahu
 
Enabling Java in Latency Sensitive Environments
Enabling Java in Latency Sensitive EnvironmentsEnabling Java in Latency Sensitive Environments
Enabling Java in Latency Sensitive EnvironmentsC4Media
 
VMware Technology: Deliver Predictable Application Performance & Improve Infr...
VMware Technology: Deliver Predictable Application Performance & Improve Infr...VMware Technology: Deliver Predictable Application Performance & Improve Infr...
VMware Technology: Deliver Predictable Application Performance & Improve Infr...NetApp
 

Similar to The Java Evolution Mismatch by Gil Tene, CTO at Azul Systems (20)

Azul yandexjune010
Azul yandexjune010Azul yandexjune010
Azul yandexjune010
 
Enterprise Search Summit - Speeding Up Search
Enterprise Search Summit - Speeding Up SearchEnterprise Search Summit - Speeding Up Search
Enterprise Search Summit - Speeding Up Search
 
DotCMS Bootcamp: Enabling Java in Latency Sensitivie Environments
DotCMS Bootcamp: Enabling Java in Latency Sensitivie EnvironmentsDotCMS Bootcamp: Enabling Java in Latency Sensitivie Environments
DotCMS Bootcamp: Enabling Java in Latency Sensitivie Environments
 
Enabling Java in Latency Sensitive Applications by Gil Tene, CTO, Azul Systems
Enabling Java in Latency Sensitive Applications by Gil Tene, CTO, Azul SystemsEnabling Java in Latency Sensitive Applications by Gil Tene, CTO, Azul Systems
Enabling Java in Latency Sensitive Applications by Gil Tene, CTO, Azul Systems
 
Sioux Hot-or-Not: The future of Linux (Alan Cox)
Sioux Hot-or-Not: The future of Linux (Alan Cox)Sioux Hot-or-Not: The future of Linux (Alan Cox)
Sioux Hot-or-Not: The future of Linux (Alan Cox)
 
Building Scalable Applications using Pivotal Gemfire/Apache Geode
Building Scalable Applications using Pivotal Gemfire/Apache GeodeBuilding Scalable Applications using Pivotal Gemfire/Apache Geode
Building Scalable Applications using Pivotal Gemfire/Apache Geode
 
Coates bosc2010 clouds-fluff-and-no-substance
Coates bosc2010 clouds-fluff-and-no-substanceCoates bosc2010 clouds-fluff-and-no-substance
Coates bosc2010 clouds-fluff-and-no-substance
 
Explorations of the three legged performance stool
Explorations of the three legged performance stoolExplorations of the three legged performance stool
Explorations of the three legged performance stool
 
VMworld Europe 2014: Virtualizing Databases Doing IT Right – The Sequel
VMworld Europe 2014: Virtualizing Databases Doing IT Right – The SequelVMworld Europe 2014: Virtualizing Databases Doing IT Right – The Sequel
VMworld Europe 2014: Virtualizing Databases Doing IT Right – The Sequel
 
The challenges of live events scalability
The challenges of live events scalabilityThe challenges of live events scalability
The challenges of live events scalability
 
VMworld 2014: Virtualizing Databases
VMworld 2014: Virtualizing DatabasesVMworld 2014: Virtualizing Databases
VMworld 2014: Virtualizing Databases
 
Enabling Java in Latency-Sensitive Applications
Enabling Java in Latency-Sensitive ApplicationsEnabling Java in Latency-Sensitive Applications
Enabling Java in Latency-Sensitive Applications
 
JITServerTalk JCON World 2023.pdf
JITServerTalk JCON World 2023.pdfJITServerTalk JCON World 2023.pdf
JITServerTalk JCON World 2023.pdf
 
Presentation cloud meets big
Presentation   cloud meets bigPresentation   cloud meets big
Presentation cloud meets big
 
Presentation cloud meets big
Presentation   cloud meets bigPresentation   cloud meets big
Presentation cloud meets big
 
Enhancing Live Migration Process for CPU and/or memory intensive VMs running...
Enhancing Live Migration Process for CPU and/or  memory intensive VMs running...Enhancing Live Migration Process for CPU and/or  memory intensive VMs running...
Enhancing Live Migration Process for CPU and/or memory intensive VMs running...
 
Minor
MinorMinor
Minor
 
Software and the Concurrency Revolution : Notes
Software and the Concurrency Revolution : NotesSoftware and the Concurrency Revolution : Notes
Software and the Concurrency Revolution : Notes
 
Enabling Java in Latency Sensitive Environments
Enabling Java in Latency Sensitive EnvironmentsEnabling Java in Latency Sensitive Environments
Enabling Java in Latency Sensitive Environments
 
VMware Technology: Deliver Predictable Application Performance & Improve Infr...
VMware Technology: Deliver Predictable Application Performance & Improve Infr...VMware Technology: Deliver Predictable Application Performance & Improve Infr...
VMware Technology: Deliver Predictable Application Performance & Improve Infr...
 

Recently uploaded

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024The Digital Insurer
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Principled Technologies
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 

Recently uploaded (20)

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 

The Java Evolution Mismatch by Gil Tene, CTO at Azul Systems

  • 1. ©2011 Azul Systems, Inc. The Java Evolution Mismatch Why you need a better JVM Gil Tene, CTO & co-Founder, Azul Systems
  • 2. ©2011 Azul Systems, Inc. About Azul We make scalable Virtual Machines Have built “whatever it takes to get job done” since 2002 3 generations of custom SMP Multi-core HW (Vega) Now Pure software for commodity x86 (Zing) “Industry firsts” in Garbage collection, elastic memory, Java virtualization, memory scale Vega C4
  • 3. ©2011 Azul Systems, Inc. Java Platform Evolution - early days Initially focused on client-side applications browser, applet, etc. Started off as a “toy” Cool, rich features that quickly evolved and expanded Slow (interpreted) Fat (needed more memory than many machines had) ~1995-~2000: Server side uses quickly evolved Platform performance evolved right along with functionality JIT compilers, HotSpot, generational, parallel GC Able to “fit better” and perform well in real machines
  • 4. ©2011 Azul Systems, Inc. Java Platform Evolution: the past decade Java became the dominant server application platform Java “won” the productivity and leverage game Functionality evolved quickly and continually Focused on productivity, enterprise functionality Huge, unrivaled ecosystem Performance stayed around the same... Platform was built to fit in a few cores, a few GB circa 2001 Has not evolved since But servers have changed...
  • 5. ©2011 Azul Systems, Inc. Reality check: servers in 2011 Retail prices, major web server store (US $, Oct. 2011) Cheap (≈ $1.5/GB/Month), and roughly linear to ~1TB 24 vCore, 96GB server ≈ $5K 32 vCore, 256GB server ≈ $16K 64 vCore, 512GB server ≈ $30K 80 vCore, 1TB server ≈ $63K
  • 6. ©2011 Azul Systems, Inc. “Tiny” application history 100KB apps on a ¼ to ½ MB Server 10MB apps on a 32 – 64 MB server 1GB apps on a 2 – 4 GB server ??? GB apps on 256 GB Assuming Moore’s Law means: “transistor counts grow at ≈2x every ≈18 months” It also means memory size grows ≈100x every 10 years 2010 2000 1990 1980 “Tiny”: would be “silly” to distribute Application Memory Wall
  • 7. ©2011 Azul Systems, Inc. The Java “problem” Then and Now 2000: Java platforms had a hard time fitting well in one computer 2012: Java platforms can’t make use of more than a tiny fraction of one computer
  • 8. ©2011 Azul Systems, Inc. Current day Java Limitations Responsiveness Sensitivity to load, Fragility Rigid, non-elastic, inefficient Scale and Complexity Common cause: platform misbehaves above a few cores and a few GB per instance
  • 9. ©2011 Azul Systems, Inc. What is keeping Java platforms from making full use of current servers? Garbage Collection is a clear and dominant cause There seem to be practical heap size limits for applications with responsiveness requirements [Virtually] All current commercial JVMs will exhibit a multi-second pause on a normally utilized 2-4GB heap. It’s a question of “When” and “How often”, not “If”. GC tuning only moves the “when” and the “how often” around Root cause: The link between scale and responsiveness
  • 10. ©2011 Azul Systems, Inc. Zing: A JVM for today’s servers Eliminates the core problems that keep Java form making good/full/effective use of current servers Able to put current servers to work
  • 11. ©2011 Azul Systems, Inc. Desired Application Benefits C Improve Response times C Increase Transaction rates C Increase Concurrent users C Forget about GC pauses C Eliminate daily restarts C Elastically grow during peaks C Elastically shrink when idle C Gain production visibility
  • 12. ©2011 Azul Systems, Inc. Modern Use Cases ü Portal / eCommerce Apps • High concurrent users with consistent response times ü Low-latency / Trading Apps • Consistent response times with greater stability & availability ü Big Data / Large Caching / In-memory Data Analytics • Fast, consistent in-memory data processing ü SOA / ESB / Messaging Apps • Large data sizes and transactions rates ü Mission-critical / High Throughput / SLA Apps • Guaranteed performance metrics (i.e. transactions rates)
  • 13. ©2011 Azul Systems, Inc. Framing the discussion: Garbage Collection at modern server scales Modern Servers have 10s, even 100s of GB of memory Each modern x86 core (when actually used) produces garbage at a rate of ¼ - ½ GB/sec + That’s many GB/sec of allocation in a server Monolithic stop-the-world operations are the cause of the current Application Memory Wall Even if they are done “only a few times a day”
  • 14. ©2011 Azul Systems, Inc. We need to solve the right problems Focus on the causes of the Application Memory Wall Scale is artificially limited by responsiveness Responsiveness must be unlinked from scale Heap size, Live Set size, Allocation rate, Mutation rate Responsiveness must be continually sustainable Can’t ignore “rare” events Eliminate all Stop-The-World Fallbacks At modern server scales, any STW fall back is a failure
  • 15. ©2011 Azul Systems, Inc. The problems that need solving (areas where the state of the art needs improvement) Robust Concurrent Marking In the presence of high mutation and allocation rates Cover modern runtime semantics (e.g. weak refs) Compaction that is not monolithic-stop-the-world Stay responsive while compacting many-GB heaps Must be robust: not just a tactic to delay STW compaction [current “incremental STW” attempts fall short on robustness] Non-monolithic-stop-the-world Generational collection Stay responsive while promoting multi-GB data spikes Concurrent or “incremental STW” may be both be ok Surprisingly little work done in this specific area
  • 16. ©2011 Azul Systems, Inc. Azul’s “C4” Collector Continuously Concurrent Compacting Collector Concurrent, compacting new generation Concurrent, compacting old generation Concurrent guaranteed-single-pass marker Oblivious to mutation rate Concurrent ref (weak, soft, final) processing Concurrent Compactor Objects moved without stopping mutator References remapped without stopping mutator Can relocate entire generation (New, Old) in every GC cycle No stop-the-world fallback Always compacts, and always does so concurrently
  • 17. ©2011 Azul Systems, Inc. Sample responsiveness improvement ๏ SpecJBB + Slow churning 2GB LRU Cache ๏ Live set is ~2.5GB across all measurements ๏ Allocation rate is ~1.2GB/sec across all measurements
  • 18. ©2011 Azul Systems, Inc. Instance capacity test: “Fat Portal” HotSpot CMS: Peaks at ~ 3GB / 45 concurrent users * LifeRay portal on JBoss @ 99.9% SLA of 5 second response times
  • 19. ©2011 Azul Systems, Inc. Instance capacity test: “Fat Portal” C4: still smooth @ 800 concurrent users
  • 20. ©2011 Azul Systems, Inc. Java GC tuning is “hard”… Examples of actual command line GC tuning parameters: Java -Xmx12g -XX:MaxPermSize=64M -XX:PermSize=32M -XX:MaxNewSize=2g -XX:NewSize=1g -XX:SurvivorRatio=128 -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:MaxTenuringThreshold=0 -XX:CMSInitiatingOccupancyFraction=60 -XX:+CMSParallelRemarkEnabled -XX:+UseCMSInitiatingOccupancyOnly -XX:ParallelGCThreads=12 -XX:LargePageSizeInBytes=256m … Java –Xms8g –Xmx8g –Xmn2g -XX:PermSize=64M -XX:MaxPermSize=256M -XX:-OmitStackTraceInFastThrow -XX:SurvivorRatio=2 -XX:-UseAdaptiveSizePolicy -XX:+UseConcMarkSweepGC -XX:+CMSConcurrentMTEnabled -XX:+CMSParallelRemarkEnabled -XX:+CMSParallelSurvivorRemarkEnabled -XX:CMSMaxAbortablePrecleanTime=10000 -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=63 -XX:+UseParNewGC –Xnoclassgc …
  • 21. ©2011 Azul Systems, Inc. The complete guide to Zing GC tuning java -Xmx40g
  • 22. ©2011 Azul Systems, Inc. How can we make full, effective of current server capabilities? Simple: Deploy Zing 5.0 on Linux