SlideShare a Scribd company logo
1 of 31
Download to read offline
OS-caused Long JVM Pauses
- Deep Dive and Solutions
Zhenyun Zhuang
LinkedIn Corp., Mountain View, California, USA
https://www.linkedin.com/in/zhenyun
Zhenyun@gmail.com
Outline
 Introduction
 Background
 Scenario 1: startup state
 Scenario 2: steady state with memory pressure
 Scenario 3: steady state with heavy IO
 Lessons learned
2
Introduction
 Java + Linux
 Java is popular in production deployments
 Linux features interact with JVM operations
 Unique challenges caused by concurrent applications
 Long JVM pauses caused by Linux OS
 Production issues, in three scenarios
 Root causes
 Solutions
 References
 Ensuring High-performance of Mission-critical Java Applications in Multi-
tenant Cloud Platforms, IEEE Cloud 2014
 Eliminating Large JVM GC Pauses Caused by Background IO Traffic,
LinkedIn Engineering Blog, 2016 (Too many tweets bringing down a twitter server! :)
3
Background
 JVM and Heap
 Oracle HotSpot JVM
 Garbage collection
 Generations
 Garbage collectors
 Linux OS
 Paging (Regular page, Huge page)
 Swapping (Anonymous memory)
 Page cache writeback (Batched, Periodic)
4
Scenarios
 Three scenarios
 Startup state
 Steady state with memory pressure
 Steady state with heavy IO
 Workload
 Java application keeps allocating/de-allocating objects
 Background applications taking memories or issuing disk IO
 Performance metrics
 Application throughput (K allocations/sec)
 Java GC pauses
5
Scenario 1: Startup State (App. Symptoms)
 When Java applications start
 Life is good in the beginning
 Then Java throughput drops sharply
 Java GC pauses spike during the same period
6
Scenario 1: Startup State (Investigations)
 Java heap is gradually allocated
 Without enough memory, direct
page scanning can happen
 Heap is swapped out and in
 It causes large GC
7
Solutions
 Pre-allocating JVM heap spaces
 JVM “-XX:AlwaysPreTouch”
 Protecting JVM heap spaces from being
swapped out
 Swappoff command
 Swappiness
• =0 for kernel version before 2.6.32-303
• =1 for kernel version from 2.6.32-303
 Cgroup
8
Evaluations (Pre-allocating Heap)
9
Evaluations (Protecting Heap)
18 24
10
Scenario 2: Steady State (App. Symptoms)
 During steady state of a Java application, system
memory stresses due to other applications
 Java throughput drops sharply and performs badly
 Java GC pauses spike
11
Scenario 2: Steady State (Level-1 Investigations)
 During GC pauses, swapping activities persist
 Swapping in JVM pages causes GC pauses
 However, swapping is not enough
 Excessive GC pauses (i.e., 55 seconds)
 High sys-cpu usage (swapping is not sys-cpu intensive)
12
[Times: user=0.12 sys=54.67,
real=54.83 secs]
Scenario 2: Steady State (Level-2 Investigations)
 THP (Transparent Huge Pages)
 Improved TLB cache-hits
 Bi-directional operations
 THPs are allocated first, but split during memory pressure
 Regular pages are collapsed to make THPs
 CPU heavy, and thrashing!
4KB
Regular Pages
4KB
4KB
4KB
4KB
4KB
……
……
2MB
Transparent Huge
Pages (THP)
Splitting
Collapsing
13
Solutions
 Dynamically adjusting THP
 Enable THP when no memory pressure
 Disable THP during memory pressure period
 Fine tuning of THP parameters
14
Evaluations (Dynamic THP)
 Without memory pressure
 Dynamic THP delivers similar performance as THP is on
Mechanism THP Off THP On Dynamic THP
Throughput
(K allocations/sec)
12 15 15
Mechanism THP Off THP On Dynamic THP
Throughput
(K allocations/sec)
13 11 12
 With memory pressure
 Dynamic THP has some performance overhead
 Performance is less than THP-off
 But better than THP-on
15
Scenario 3: Steady State (Heavy IO)
 Production issue
 Online products
 Applications have light workload
 Both CMS and G1 garbage collectors
 Preliminary investigations
 Examined many layers/metrics
 The only suspect: disk IO occasionally is heavy
 But all application IO are asynchronous
16
Reproducing the problem
 Workload
 Simplified to avoid complex business logic
 https://github.com/zhenyun/JavaGCworkload
 Background IO
 Saturating HDD
17
Case I: Without background IO
18
No single longer-than-200ms pause
Case II: With background IO
Huge pause!
19
Investigations
20
Time lines
 At time 35.04 (line 2), a young GC starts and takes 0.12 seconds to complete.
 The young GC finishes at time 35.16 and JVM tries to output the young GC statistics
to gc log file by issuing a write() system call (line 4).
 The write() call finishes at time 36.64 after being blocked for 1.47 seconds (line 5)
 When write() call returns to JVM, JVM records at time 36.64 this STW pause of 1.59
seconds (i.e., 0.12 + 1.47) (line 3).
21
Interaction between JVM and OS
22
Non-blocking IO can be blocked
 Stable page write
 For file-backed writing, OS writes to page cache first
 OS has write-back mechanism to persist dirty pages
 If a page is under write-back, the page is locked
 Journal committing
 Journals are generated for journaling file system
 When appending GC log files needs new blocks,
journals need to be committed
 Commitment might need to wait
23
Background IO activities
 OS activity such as swapping
 Data writing to underlying disks
 Administration and housekeeping software
 System-level software such as CFEngine also perform
disk IO
 Other co-located applications
 Co-located applications that share the disk drives,
then other applications contend on IO
 IO of the same JVM instance
 The particular JVM instance may use disk IO in ways
other than GC logging
24
Solutions
 Enhancing JVM
 Another thread
 Exposing JVM flags
 Reducing IO activities
 OS, other apps, same app
 Latency sensitive applications
 Separate disk
 High performing disks such as SSD
 Tmpfs
25
Evaluation
 SSD as the disk
26
The good, the bad, and the ugly
 The good: low real time
 Low user time and low sys time
 [user=0.18 sys=0.01, real=0.04 secs]
 The bad: non-low (but not high) real time
 High user time and low sys time
 [user=8.00 sys=0.02, real=0.50 secs]
 The ugly: high real time
 High sys time [user=0.02 sys=1.20, real=1.20 secs]
 Low sys time, low user time [Example? ]
27
Lessons Learned (I)
 Be cautious about Linux’s (and other OS) new
features
 Constantly incorporating new features to optimize
performance
 Some features incur performance tradeoff
 They may backfire in certain scenarios
28
Lessons Learned (II)
29
 Root causes can come from seemingly
insignificant information
 Linux emits significant amount of performance
information
 Most of us most of the time mostly only examine a
small subset of them
 Don’t ignore others – understand the interactions
of sub-components
Lessons Learned (III)
30
 Pay attention to multi-layer interaction
 Application protocol, JVM, OS, storage/networking
 Most people are familiar with a few layers
 Optimizations done at one layer may adversely
affect other layers
 Many performance problems are caused by the
cross-layer interactions
Zhenyun@gmail.com

More Related Content

What's hot

Systems@Scale 2021 BPF Performance Getting Started
Systems@Scale 2021 BPF Performance Getting StartedSystems@Scale 2021 BPF Performance Getting Started
Systems@Scale 2021 BPF Performance Getting StartedBrendan Gregg
 
My first 90 days with ClickHouse.pdf
My first 90 days with ClickHouse.pdfMy first 90 days with ClickHouse.pdf
My first 90 days with ClickHouse.pdfAlkin Tezuysal
 
Using eBPF for High-Performance Networking in Cilium
Using eBPF for High-Performance Networking in CiliumUsing eBPF for High-Performance Networking in Cilium
Using eBPF for High-Performance Networking in CiliumScyllaDB
 
Cilium - BPF & XDP for containers
 Cilium - BPF & XDP for containers Cilium - BPF & XDP for containers
Cilium - BPF & XDP for containersDocker, Inc.
 
BPF Internals (eBPF)
BPF Internals (eBPF)BPF Internals (eBPF)
BPF Internals (eBPF)Brendan Gregg
 
Linux 4.x Tracing: Performance Analysis with bcc/BPF
Linux 4.x Tracing: Performance Analysis with bcc/BPFLinux 4.x Tracing: Performance Analysis with bcc/BPF
Linux 4.x Tracing: Performance Analysis with bcc/BPFBrendan Gregg
 
DataStax: Extreme Cassandra Optimization: The Sequel
DataStax: Extreme Cassandra Optimization: The SequelDataStax: Extreme Cassandra Optimization: The Sequel
DataStax: Extreme Cassandra Optimization: The SequelDataStax Academy
 
Linux Instrumentation
Linux InstrumentationLinux Instrumentation
Linux InstrumentationDarkStarSword
 
Embedded Recipes 2018 - Finding sources of Latency In your system - Steven Ro...
Embedded Recipes 2018 - Finding sources of Latency In your system - Steven Ro...Embedded Recipes 2018 - Finding sources of Latency In your system - Steven Ro...
Embedded Recipes 2018 - Finding sources of Latency In your system - Steven Ro...Anne Nicolas
 
Kubernetes Networking - Sreenivas Makam - Google - CC18
Kubernetes Networking - Sreenivas Makam - Google - CC18Kubernetes Networking - Sreenivas Makam - Google - CC18
Kubernetes Networking - Sreenivas Makam - Google - CC18CodeOps Technologies LLP
 
Berkeley Packet Filters
Berkeley Packet FiltersBerkeley Packet Filters
Berkeley Packet FiltersKernel TLV
 
Materialize: a platform for changing data
Materialize: a platform for changing dataMaterialize: a platform for changing data
Materialize: a platform for changing dataAltinity Ltd
 
Cfgmgmtcamp 2023 — eBPF Superpowers
Cfgmgmtcamp 2023 — eBPF SuperpowersCfgmgmtcamp 2023 — eBPF Superpowers
Cfgmgmtcamp 2023 — eBPF SuperpowersRaphaël PINSON
 
ContainerDays Hamburg 2023 — Cilium Workshop.pdf
ContainerDays Hamburg 2023 — Cilium Workshop.pdfContainerDays Hamburg 2023 — Cilium Workshop.pdf
ContainerDays Hamburg 2023 — Cilium Workshop.pdfRaphaël PINSON
 
How does PostgreSQL work with disks: a DBA's checklist in detail. PGConf.US 2015
How does PostgreSQL work with disks: a DBA's checklist in detail. PGConf.US 2015How does PostgreSQL work with disks: a DBA's checklist in detail. PGConf.US 2015
How does PostgreSQL work with disks: a DBA's checklist in detail. PGConf.US 2015PostgreSQL-Consulting
 
Redpanda and ClickHouse
Redpanda and ClickHouseRedpanda and ClickHouse
Redpanda and ClickHouseAltinity Ltd
 
OSMC 2022 | VictoriaMetrics: scaling to 100 million metrics per second by Ali...
OSMC 2022 | VictoriaMetrics: scaling to 100 million metrics per second by Ali...OSMC 2022 | VictoriaMetrics: scaling to 100 million metrics per second by Ali...
OSMC 2022 | VictoriaMetrics: scaling to 100 million metrics per second by Ali...NETWAYS
 
eBPF - Rethinking the Linux Kernel
eBPF - Rethinking the Linux KerneleBPF - Rethinking the Linux Kernel
eBPF - Rethinking the Linux KernelThomas Graf
 
Understanding eBPF in a Hurry!
Understanding eBPF in a Hurry!Understanding eBPF in a Hurry!
Understanding eBPF in a Hurry!Ray Jenkins
 

What's hot (20)

Systems@Scale 2021 BPF Performance Getting Started
Systems@Scale 2021 BPF Performance Getting StartedSystems@Scale 2021 BPF Performance Getting Started
Systems@Scale 2021 BPF Performance Getting Started
 
My first 90 days with ClickHouse.pdf
My first 90 days with ClickHouse.pdfMy first 90 days with ClickHouse.pdf
My first 90 days with ClickHouse.pdf
 
Using eBPF for High-Performance Networking in Cilium
Using eBPF for High-Performance Networking in CiliumUsing eBPF for High-Performance Networking in Cilium
Using eBPF for High-Performance Networking in Cilium
 
Cilium - BPF & XDP for containers
 Cilium - BPF & XDP for containers Cilium - BPF & XDP for containers
Cilium - BPF & XDP for containers
 
BPF Internals (eBPF)
BPF Internals (eBPF)BPF Internals (eBPF)
BPF Internals (eBPF)
 
Linux 4.x Tracing: Performance Analysis with bcc/BPF
Linux 4.x Tracing: Performance Analysis with bcc/BPFLinux 4.x Tracing: Performance Analysis with bcc/BPF
Linux 4.x Tracing: Performance Analysis with bcc/BPF
 
DataStax: Extreme Cassandra Optimization: The Sequel
DataStax: Extreme Cassandra Optimization: The SequelDataStax: Extreme Cassandra Optimization: The Sequel
DataStax: Extreme Cassandra Optimization: The Sequel
 
Linux Instrumentation
Linux InstrumentationLinux Instrumentation
Linux Instrumentation
 
Embedded Recipes 2018 - Finding sources of Latency In your system - Steven Ro...
Embedded Recipes 2018 - Finding sources of Latency In your system - Steven Ro...Embedded Recipes 2018 - Finding sources of Latency In your system - Steven Ro...
Embedded Recipes 2018 - Finding sources of Latency In your system - Steven Ro...
 
eBPF maps 101
eBPF maps 101eBPF maps 101
eBPF maps 101
 
Kubernetes Networking - Sreenivas Makam - Google - CC18
Kubernetes Networking - Sreenivas Makam - Google - CC18Kubernetes Networking - Sreenivas Makam - Google - CC18
Kubernetes Networking - Sreenivas Makam - Google - CC18
 
Berkeley Packet Filters
Berkeley Packet FiltersBerkeley Packet Filters
Berkeley Packet Filters
 
Materialize: a platform for changing data
Materialize: a platform for changing dataMaterialize: a platform for changing data
Materialize: a platform for changing data
 
Cfgmgmtcamp 2023 — eBPF Superpowers
Cfgmgmtcamp 2023 — eBPF SuperpowersCfgmgmtcamp 2023 — eBPF Superpowers
Cfgmgmtcamp 2023 — eBPF Superpowers
 
ContainerDays Hamburg 2023 — Cilium Workshop.pdf
ContainerDays Hamburg 2023 — Cilium Workshop.pdfContainerDays Hamburg 2023 — Cilium Workshop.pdf
ContainerDays Hamburg 2023 — Cilium Workshop.pdf
 
How does PostgreSQL work with disks: a DBA's checklist in detail. PGConf.US 2015
How does PostgreSQL work with disks: a DBA's checklist in detail. PGConf.US 2015How does PostgreSQL work with disks: a DBA's checklist in detail. PGConf.US 2015
How does PostgreSQL work with disks: a DBA's checklist in detail. PGConf.US 2015
 
Redpanda and ClickHouse
Redpanda and ClickHouseRedpanda and ClickHouse
Redpanda and ClickHouse
 
OSMC 2022 | VictoriaMetrics: scaling to 100 million metrics per second by Ali...
OSMC 2022 | VictoriaMetrics: scaling to 100 million metrics per second by Ali...OSMC 2022 | VictoriaMetrics: scaling to 100 million metrics per second by Ali...
OSMC 2022 | VictoriaMetrics: scaling to 100 million metrics per second by Ali...
 
eBPF - Rethinking the Linux Kernel
eBPF - Rethinking the Linux KerneleBPF - Rethinking the Linux Kernel
eBPF - Rethinking the Linux Kernel
 
Understanding eBPF in a Hurry!
Understanding eBPF in a Hurry!Understanding eBPF in a Hurry!
Understanding eBPF in a Hurry!
 

Similar to OS caused Large JVM pauses: Deep dive and solutions

Eliminating OS-caused Large JVM Pauses for Latency-sensitive Java-based Cloud...
Eliminating OS-caused Large JVM Pauses for Latency-sensitive Java-based Cloud...Eliminating OS-caused Large JVM Pauses for Latency-sensitive Java-based Cloud...
Eliminating OS-caused Large JVM Pauses for Latency-sensitive Java-based Cloud...Zhenyun Zhuang
 
Introduction to Real Time Java
Introduction to Real Time JavaIntroduction to Real Time Java
Introduction to Real Time JavaDeniz Oguz
 
Best Practices for performance evaluation and diagnosis of Java Applications ...
Best Practices for performance evaluation and diagnosis of Java Applications ...Best Practices for performance evaluation and diagnosis of Java Applications ...
Best Practices for performance evaluation and diagnosis of Java Applications ...IndicThreads
 
JITServerTalk Nebraska 2023.pdf
JITServerTalk Nebraska 2023.pdfJITServerTalk Nebraska 2023.pdf
JITServerTalk Nebraska 2023.pdfRichHagarty
 
GlassFish Update and Directions - Karim Mazouni - November 2007
GlassFish Update and Directions - Karim Mazouni - November 2007GlassFish Update and Directions - Karim Mazouni - November 2007
GlassFish Update and Directions - Karim Mazouni - November 2007JUG Lausanne
 
JITServerTalk JCON World 2023.pdf
JITServerTalk JCON World 2023.pdfJITServerTalk JCON World 2023.pdf
JITServerTalk JCON World 2023.pdfRichHagarty
 
Java-light-speed NebraskaCode.pdf
Java-light-speed NebraskaCode.pdfJava-light-speed NebraskaCode.pdf
Java-light-speed NebraskaCode.pdfRichHagarty
 
Javaland_JITServerTalk.pptx
Javaland_JITServerTalk.pptxJavaland_JITServerTalk.pptx
Javaland_JITServerTalk.pptxGrace Jansen
 
It's always sunny with OpenJ9
It's always sunny with OpenJ9It's always sunny with OpenJ9
It's always sunny with OpenJ9DanHeidinga
 
Java performance monitoring
Java performance monitoringJava performance monitoring
Java performance monitoringSimon Ritter
 
Inside The Java Virtual Machine
Inside The Java Virtual MachineInside The Java Virtual Machine
Inside The Java Virtual Machineelliando dias
 
DevNexus 2024: Just-In-Time Compilation as a Service for cloud-native Java mi...
DevNexus 2024: Just-In-Time Compilation as a Service for cloud-native Java mi...DevNexus 2024: Just-In-Time Compilation as a Service for cloud-native Java mi...
DevNexus 2024: Just-In-Time Compilation as a Service for cloud-native Java mi...RichHagarty
 
USAA Mono-to-Serverless.pdf
USAA Mono-to-Serverless.pdfUSAA Mono-to-Serverless.pdf
USAA Mono-to-Serverless.pdfRichHagarty
 
JPrime_JITServer.pptx
JPrime_JITServer.pptxJPrime_JITServer.pptx
JPrime_JITServer.pptxGrace Jansen
 
Ensuring High-performance of Mission-critical Java Applications in Multi-tena...
Ensuring High-performance of Mission-critical Java Applications in Multi-tena...Ensuring High-performance of Mission-critical Java Applications in Multi-tena...
Ensuring High-performance of Mission-critical Java Applications in Multi-tena...Zhenyun Zhuang
 
Stephan Ewen - Experiences running Flink at Very Large Scale
Stephan Ewen -  Experiences running Flink at Very Large ScaleStephan Ewen -  Experiences running Flink at Very Large Scale
Stephan Ewen - Experiences running Flink at Very Large ScaleVerverica
 
Software Profiling: Understanding Java Performance and how to profile in Java
Software Profiling: Understanding Java Performance and how to profile in JavaSoftware Profiling: Understanding Java Performance and how to profile in Java
Software Profiling: Understanding Java Performance and how to profile in JavaIsuru Perera
 
JITServerTalk-OSS-2023.pdf
JITServerTalk-OSS-2023.pdfJITServerTalk-OSS-2023.pdf
JITServerTalk-OSS-2023.pdfRichHagarty
 

Similar to OS caused Large JVM pauses: Deep dive and solutions (20)

Eliminating OS-caused Large JVM Pauses for Latency-sensitive Java-based Cloud...
Eliminating OS-caused Large JVM Pauses for Latency-sensitive Java-based Cloud...Eliminating OS-caused Large JVM Pauses for Latency-sensitive Java-based Cloud...
Eliminating OS-caused Large JVM Pauses for Latency-sensitive Java-based Cloud...
 
Introduction to Real Time Java
Introduction to Real Time JavaIntroduction to Real Time Java
Introduction to Real Time Java
 
Best Practices for performance evaluation and diagnosis of Java Applications ...
Best Practices for performance evaluation and diagnosis of Java Applications ...Best Practices for performance evaluation and diagnosis of Java Applications ...
Best Practices for performance evaluation and diagnosis of Java Applications ...
 
JITServerTalk Nebraska 2023.pdf
JITServerTalk Nebraska 2023.pdfJITServerTalk Nebraska 2023.pdf
JITServerTalk Nebraska 2023.pdf
 
GlassFish Update and Directions - Karim Mazouni - November 2007
GlassFish Update and Directions - Karim Mazouni - November 2007GlassFish Update and Directions - Karim Mazouni - November 2007
GlassFish Update and Directions - Karim Mazouni - November 2007
 
JITServerTalk JCON World 2023.pdf
JITServerTalk JCON World 2023.pdfJITServerTalk JCON World 2023.pdf
JITServerTalk JCON World 2023.pdf
 
Java-light-speed NebraskaCode.pdf
Java-light-speed NebraskaCode.pdfJava-light-speed NebraskaCode.pdf
Java-light-speed NebraskaCode.pdf
 
Javaland_JITServerTalk.pptx
Javaland_JITServerTalk.pptxJavaland_JITServerTalk.pptx
Javaland_JITServerTalk.pptx
 
It's always sunny with OpenJ9
It's always sunny with OpenJ9It's always sunny with OpenJ9
It's always sunny with OpenJ9
 
Java performance monitoring
Java performance monitoringJava performance monitoring
Java performance monitoring
 
Inside The Java Virtual Machine
Inside The Java Virtual MachineInside The Java Virtual Machine
Inside The Java Virtual Machine
 
DevNexus 2024: Just-In-Time Compilation as a Service for cloud-native Java mi...
DevNexus 2024: Just-In-Time Compilation as a Service for cloud-native Java mi...DevNexus 2024: Just-In-Time Compilation as a Service for cloud-native Java mi...
DevNexus 2024: Just-In-Time Compilation as a Service for cloud-native Java mi...
 
USAA Mono-to-Serverless.pdf
USAA Mono-to-Serverless.pdfUSAA Mono-to-Serverless.pdf
USAA Mono-to-Serverless.pdf
 
JPrime_JITServer.pptx
JPrime_JITServer.pptxJPrime_JITServer.pptx
JPrime_JITServer.pptx
 
Ensuring High-performance of Mission-critical Java Applications in Multi-tena...
Ensuring High-performance of Mission-critical Java Applications in Multi-tena...Ensuring High-performance of Mission-critical Java Applications in Multi-tena...
Ensuring High-performance of Mission-critical Java Applications in Multi-tena...
 
Stephan Ewen - Experiences running Flink at Very Large Scale
Stephan Ewen -  Experiences running Flink at Very Large ScaleStephan Ewen -  Experiences running Flink at Very Large Scale
Stephan Ewen - Experiences running Flink at Very Large Scale
 
Java one 2015 - v1
Java one   2015 - v1Java one   2015 - v1
Java one 2015 - v1
 
Software Profiling: Understanding Java Performance and how to profile in Java
Software Profiling: Understanding Java Performance and how to profile in JavaSoftware Profiling: Understanding Java Performance and how to profile in Java
Software Profiling: Understanding Java Performance and how to profile in Java
 
JITServerTalk-OSS-2023.pdf
JITServerTalk-OSS-2023.pdfJITServerTalk-OSS-2023.pdf
JITServerTalk-OSS-2023.pdf
 
Inside the JVM
Inside the JVMInside the JVM
Inside the JVM
 

More from Zhenyun Zhuang

Designing SSD-friendly Applications for Better Application Performance and Hi...
Designing SSD-friendly Applications for Better Application Performance and Hi...Designing SSD-friendly Applications for Better Application Performance and Hi...
Designing SSD-friendly Applications for Better Application Performance and Hi...Zhenyun Zhuang
 
Optimized Selection of Streaming Servers with GeoDNS for CDN Delivered Live S...
Optimized Selection of Streaming Servers with GeoDNS for CDN Delivered Live S...Optimized Selection of Streaming Servers with GeoDNS for CDN Delivered Live S...
Optimized Selection of Streaming Servers with GeoDNS for CDN Delivered Live S...Zhenyun Zhuang
 
OCPA: An Algorithm for Fast and Effective Virtual Machine Placement and Assig...
OCPA: An Algorithm for Fast and Effective Virtual Machine Placement and Assig...OCPA: An Algorithm for Fast and Effective Virtual Machine Placement and Assig...
OCPA: An Algorithm for Fast and Effective Virtual Machine Placement and Assig...Zhenyun Zhuang
 
Optimizing CDN Infrastructure for Live Streaming with Constrained Server Chai...
Optimizing CDN Infrastructure for Live Streaming with Constrained Server Chai...Optimizing CDN Infrastructure for Live Streaming with Constrained Server Chai...
Optimizing CDN Infrastructure for Live Streaming with Constrained Server Chai...Zhenyun Zhuang
 
Application-Aware Acceleration for Wireless Data Networks: Design Elements an...
Application-Aware Acceleration for Wireless Data Networks: Design Elements an...Application-Aware Acceleration for Wireless Data Networks: Design Elements an...
Application-Aware Acceleration for Wireless Data Networks: Design Elements an...Zhenyun Zhuang
 
PAIDS: A Proximity-Assisted Intrusion Detection System for Unidentified Worms
PAIDS: A Proximity-Assisted Intrusion Detection System for Unidentified WormsPAIDS: A Proximity-Assisted Intrusion Detection System for Unidentified Worms
PAIDS: A Proximity-Assisted Intrusion Detection System for Unidentified WormsZhenyun Zhuang
 
On the Impact of Mobile Hosts in Peer-to-Peer Data Networks
On the Impact of Mobile Hosts in Peer-to-Peer Data NetworksOn the Impact of Mobile Hosts in Peer-to-Peer Data Networks
On the Impact of Mobile Hosts in Peer-to-Peer Data NetworksZhenyun Zhuang
 
WebAccel: Accelerating Web access for low-bandwidth hosts
WebAccel: Accelerating Web access for low-bandwidth hostsWebAccel: Accelerating Web access for low-bandwidth hosts
WebAccel: Accelerating Web access for low-bandwidth hostsZhenyun Zhuang
 
Client-side web acceleration for low-bandwidth hosts
Client-side web acceleration for low-bandwidth hostsClient-side web acceleration for low-bandwidth hosts
Client-side web acceleration for low-bandwidth hostsZhenyun Zhuang
 
A3: application-aware acceleration for wireless data networks
A3: application-aware acceleration for wireless data networksA3: application-aware acceleration for wireless data networks
A3: application-aware acceleration for wireless data networksZhenyun Zhuang
 
Mutual Exclusion in Wireless Sensor and Actor Networks
Mutual Exclusion in Wireless Sensor and Actor NetworksMutual Exclusion in Wireless Sensor and Actor Networks
Mutual Exclusion in Wireless Sensor and Actor NetworksZhenyun Zhuang
 
Hazard avoidance in wireless sensor and actor networks
Hazard avoidance in wireless sensor and actor networksHazard avoidance in wireless sensor and actor networks
Hazard avoidance in wireless sensor and actor networksZhenyun Zhuang
 
Dynamic Layer Management in Super-Peer Architectures
Dynamic Layer Management in Super-Peer ArchitecturesDynamic Layer Management in Super-Peer Architectures
Dynamic Layer Management in Super-Peer ArchitecturesZhenyun Zhuang
 
A Distributed Approach to Solving Overlay Mismatching Problem
A Distributed Approach to Solving Overlay Mismatching ProblemA Distributed Approach to Solving Overlay Mismatching Problem
A Distributed Approach to Solving Overlay Mismatching ProblemZhenyun Zhuang
 
Hybrid Periodical Flooding in Unstructured Peer-to-Peer Networks
Hybrid Periodical Flooding in Unstructured Peer-to-Peer NetworksHybrid Periodical Flooding in Unstructured Peer-to-Peer Networks
Hybrid Periodical Flooding in Unstructured Peer-to-Peer NetworksZhenyun Zhuang
 
AOTO: Adaptive overlay topology optimization in unstructured P2P systems
AOTO: Adaptive overlay topology optimization in unstructured P2P systemsAOTO: Adaptive overlay topology optimization in unstructured P2P systems
AOTO: Adaptive overlay topology optimization in unstructured P2P systemsZhenyun Zhuang
 
Mobile Hosts Participating in Peer-to-Peer Data Networks: Challenges and Solu...
Mobile Hosts Participating in Peer-to-Peer Data Networks: Challenges and Solu...Mobile Hosts Participating in Peer-to-Peer Data Networks: Challenges and Solu...
Mobile Hosts Participating in Peer-to-Peer Data Networks: Challenges and Solu...Zhenyun Zhuang
 
Enhancing Intrusion Detection System with Proximity Information
Enhancing Intrusion Detection System with Proximity InformationEnhancing Intrusion Detection System with Proximity Information
Enhancing Intrusion Detection System with Proximity InformationZhenyun Zhuang
 
Guarding Fast Data Delivery in Cloud: an Effective Approach to Isolating Perf...
Guarding Fast Data Delivery in Cloud: an Effective Approach to Isolating Perf...Guarding Fast Data Delivery in Cloud: an Effective Approach to Isolating Perf...
Guarding Fast Data Delivery in Cloud: an Effective Approach to Isolating Perf...Zhenyun Zhuang
 
SLA-aware Dynamic CPU Scaling in Business Cloud Computing Environments
SLA-aware Dynamic CPU Scaling in Business Cloud Computing EnvironmentsSLA-aware Dynamic CPU Scaling in Business Cloud Computing Environments
SLA-aware Dynamic CPU Scaling in Business Cloud Computing EnvironmentsZhenyun Zhuang
 

More from Zhenyun Zhuang (20)

Designing SSD-friendly Applications for Better Application Performance and Hi...
Designing SSD-friendly Applications for Better Application Performance and Hi...Designing SSD-friendly Applications for Better Application Performance and Hi...
Designing SSD-friendly Applications for Better Application Performance and Hi...
 
Optimized Selection of Streaming Servers with GeoDNS for CDN Delivered Live S...
Optimized Selection of Streaming Servers with GeoDNS for CDN Delivered Live S...Optimized Selection of Streaming Servers with GeoDNS for CDN Delivered Live S...
Optimized Selection of Streaming Servers with GeoDNS for CDN Delivered Live S...
 
OCPA: An Algorithm for Fast and Effective Virtual Machine Placement and Assig...
OCPA: An Algorithm for Fast and Effective Virtual Machine Placement and Assig...OCPA: An Algorithm for Fast and Effective Virtual Machine Placement and Assig...
OCPA: An Algorithm for Fast and Effective Virtual Machine Placement and Assig...
 
Optimizing CDN Infrastructure for Live Streaming with Constrained Server Chai...
Optimizing CDN Infrastructure for Live Streaming with Constrained Server Chai...Optimizing CDN Infrastructure for Live Streaming with Constrained Server Chai...
Optimizing CDN Infrastructure for Live Streaming with Constrained Server Chai...
 
Application-Aware Acceleration for Wireless Data Networks: Design Elements an...
Application-Aware Acceleration for Wireless Data Networks: Design Elements an...Application-Aware Acceleration for Wireless Data Networks: Design Elements an...
Application-Aware Acceleration for Wireless Data Networks: Design Elements an...
 
PAIDS: A Proximity-Assisted Intrusion Detection System for Unidentified Worms
PAIDS: A Proximity-Assisted Intrusion Detection System for Unidentified WormsPAIDS: A Proximity-Assisted Intrusion Detection System for Unidentified Worms
PAIDS: A Proximity-Assisted Intrusion Detection System for Unidentified Worms
 
On the Impact of Mobile Hosts in Peer-to-Peer Data Networks
On the Impact of Mobile Hosts in Peer-to-Peer Data NetworksOn the Impact of Mobile Hosts in Peer-to-Peer Data Networks
On the Impact of Mobile Hosts in Peer-to-Peer Data Networks
 
WebAccel: Accelerating Web access for low-bandwidth hosts
WebAccel: Accelerating Web access for low-bandwidth hostsWebAccel: Accelerating Web access for low-bandwidth hosts
WebAccel: Accelerating Web access for low-bandwidth hosts
 
Client-side web acceleration for low-bandwidth hosts
Client-side web acceleration for low-bandwidth hostsClient-side web acceleration for low-bandwidth hosts
Client-side web acceleration for low-bandwidth hosts
 
A3: application-aware acceleration for wireless data networks
A3: application-aware acceleration for wireless data networksA3: application-aware acceleration for wireless data networks
A3: application-aware acceleration for wireless data networks
 
Mutual Exclusion in Wireless Sensor and Actor Networks
Mutual Exclusion in Wireless Sensor and Actor NetworksMutual Exclusion in Wireless Sensor and Actor Networks
Mutual Exclusion in Wireless Sensor and Actor Networks
 
Hazard avoidance in wireless sensor and actor networks
Hazard avoidance in wireless sensor and actor networksHazard avoidance in wireless sensor and actor networks
Hazard avoidance in wireless sensor and actor networks
 
Dynamic Layer Management in Super-Peer Architectures
Dynamic Layer Management in Super-Peer ArchitecturesDynamic Layer Management in Super-Peer Architectures
Dynamic Layer Management in Super-Peer Architectures
 
A Distributed Approach to Solving Overlay Mismatching Problem
A Distributed Approach to Solving Overlay Mismatching ProblemA Distributed Approach to Solving Overlay Mismatching Problem
A Distributed Approach to Solving Overlay Mismatching Problem
 
Hybrid Periodical Flooding in Unstructured Peer-to-Peer Networks
Hybrid Periodical Flooding in Unstructured Peer-to-Peer NetworksHybrid Periodical Flooding in Unstructured Peer-to-Peer Networks
Hybrid Periodical Flooding in Unstructured Peer-to-Peer Networks
 
AOTO: Adaptive overlay topology optimization in unstructured P2P systems
AOTO: Adaptive overlay topology optimization in unstructured P2P systemsAOTO: Adaptive overlay topology optimization in unstructured P2P systems
AOTO: Adaptive overlay topology optimization in unstructured P2P systems
 
Mobile Hosts Participating in Peer-to-Peer Data Networks: Challenges and Solu...
Mobile Hosts Participating in Peer-to-Peer Data Networks: Challenges and Solu...Mobile Hosts Participating in Peer-to-Peer Data Networks: Challenges and Solu...
Mobile Hosts Participating in Peer-to-Peer Data Networks: Challenges and Solu...
 
Enhancing Intrusion Detection System with Proximity Information
Enhancing Intrusion Detection System with Proximity InformationEnhancing Intrusion Detection System with Proximity Information
Enhancing Intrusion Detection System with Proximity Information
 
Guarding Fast Data Delivery in Cloud: an Effective Approach to Isolating Perf...
Guarding Fast Data Delivery in Cloud: an Effective Approach to Isolating Perf...Guarding Fast Data Delivery in Cloud: an Effective Approach to Isolating Perf...
Guarding Fast Data Delivery in Cloud: an Effective Approach to Isolating Perf...
 
SLA-aware Dynamic CPU Scaling in Business Cloud Computing Environments
SLA-aware Dynamic CPU Scaling in Business Cloud Computing EnvironmentsSLA-aware Dynamic CPU Scaling in Business Cloud Computing Environments
SLA-aware Dynamic CPU Scaling in Business Cloud Computing Environments
 

Recently uploaded

Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.eptoze12
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024Mark Billinghurst
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
Current Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLCurrent Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLDeelipZope
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...VICTOR MAESTRE RAMIREZ
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130Suhani Kapoor
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerAnamika Sarkar
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxDeepakSakkari2
 
Introduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptxIntroduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptxvipinkmenon1
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxwendy cai
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...Soham Mondal
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile servicerehmti665
 
power system scada applications and uses
power system scada applications and usespower system scada applications and uses
power system scada applications and usesDevarapalliHaritha
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AIabhishek36461
 
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfCCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfAsst.prof M.Gokilavani
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSCAESB
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )Tsuyoshi Horigome
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSKurinjimalarL3
 

Recently uploaded (20)

Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
Current Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLCurrent Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCL
 
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCRCall Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptx
 
Introduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptxIntroduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptx
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptx
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile service
 
power system scada applications and uses
power system scada applications and usespower system scada applications and uses
power system scada applications and uses
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AI
 
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfCCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentation
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
 

OS caused Large JVM pauses: Deep dive and solutions

  • 1. OS-caused Long JVM Pauses - Deep Dive and Solutions Zhenyun Zhuang LinkedIn Corp., Mountain View, California, USA https://www.linkedin.com/in/zhenyun Zhenyun@gmail.com
  • 2. Outline  Introduction  Background  Scenario 1: startup state  Scenario 2: steady state with memory pressure  Scenario 3: steady state with heavy IO  Lessons learned 2
  • 3. Introduction  Java + Linux  Java is popular in production deployments  Linux features interact with JVM operations  Unique challenges caused by concurrent applications  Long JVM pauses caused by Linux OS  Production issues, in three scenarios  Root causes  Solutions  References  Ensuring High-performance of Mission-critical Java Applications in Multi- tenant Cloud Platforms, IEEE Cloud 2014  Eliminating Large JVM GC Pauses Caused by Background IO Traffic, LinkedIn Engineering Blog, 2016 (Too many tweets bringing down a twitter server! :) 3
  • 4. Background  JVM and Heap  Oracle HotSpot JVM  Garbage collection  Generations  Garbage collectors  Linux OS  Paging (Regular page, Huge page)  Swapping (Anonymous memory)  Page cache writeback (Batched, Periodic) 4
  • 5. Scenarios  Three scenarios  Startup state  Steady state with memory pressure  Steady state with heavy IO  Workload  Java application keeps allocating/de-allocating objects  Background applications taking memories or issuing disk IO  Performance metrics  Application throughput (K allocations/sec)  Java GC pauses 5
  • 6. Scenario 1: Startup State (App. Symptoms)  When Java applications start  Life is good in the beginning  Then Java throughput drops sharply  Java GC pauses spike during the same period 6
  • 7. Scenario 1: Startup State (Investigations)  Java heap is gradually allocated  Without enough memory, direct page scanning can happen  Heap is swapped out and in  It causes large GC 7
  • 8. Solutions  Pre-allocating JVM heap spaces  JVM “-XX:AlwaysPreTouch”  Protecting JVM heap spaces from being swapped out  Swappoff command  Swappiness • =0 for kernel version before 2.6.32-303 • =1 for kernel version from 2.6.32-303  Cgroup 8
  • 11. Scenario 2: Steady State (App. Symptoms)  During steady state of a Java application, system memory stresses due to other applications  Java throughput drops sharply and performs badly  Java GC pauses spike 11
  • 12. Scenario 2: Steady State (Level-1 Investigations)  During GC pauses, swapping activities persist  Swapping in JVM pages causes GC pauses  However, swapping is not enough  Excessive GC pauses (i.e., 55 seconds)  High sys-cpu usage (swapping is not sys-cpu intensive) 12 [Times: user=0.12 sys=54.67, real=54.83 secs]
  • 13. Scenario 2: Steady State (Level-2 Investigations)  THP (Transparent Huge Pages)  Improved TLB cache-hits  Bi-directional operations  THPs are allocated first, but split during memory pressure  Regular pages are collapsed to make THPs  CPU heavy, and thrashing! 4KB Regular Pages 4KB 4KB 4KB 4KB 4KB …… …… 2MB Transparent Huge Pages (THP) Splitting Collapsing 13
  • 14. Solutions  Dynamically adjusting THP  Enable THP when no memory pressure  Disable THP during memory pressure period  Fine tuning of THP parameters 14
  • 15. Evaluations (Dynamic THP)  Without memory pressure  Dynamic THP delivers similar performance as THP is on Mechanism THP Off THP On Dynamic THP Throughput (K allocations/sec) 12 15 15 Mechanism THP Off THP On Dynamic THP Throughput (K allocations/sec) 13 11 12  With memory pressure  Dynamic THP has some performance overhead  Performance is less than THP-off  But better than THP-on 15
  • 16. Scenario 3: Steady State (Heavy IO)  Production issue  Online products  Applications have light workload  Both CMS and G1 garbage collectors  Preliminary investigations  Examined many layers/metrics  The only suspect: disk IO occasionally is heavy  But all application IO are asynchronous 16
  • 17. Reproducing the problem  Workload  Simplified to avoid complex business logic  https://github.com/zhenyun/JavaGCworkload  Background IO  Saturating HDD 17
  • 18. Case I: Without background IO 18 No single longer-than-200ms pause
  • 19. Case II: With background IO Huge pause! 19
  • 21. Time lines  At time 35.04 (line 2), a young GC starts and takes 0.12 seconds to complete.  The young GC finishes at time 35.16 and JVM tries to output the young GC statistics to gc log file by issuing a write() system call (line 4).  The write() call finishes at time 36.64 after being blocked for 1.47 seconds (line 5)  When write() call returns to JVM, JVM records at time 36.64 this STW pause of 1.59 seconds (i.e., 0.12 + 1.47) (line 3). 21
  • 23. Non-blocking IO can be blocked  Stable page write  For file-backed writing, OS writes to page cache first  OS has write-back mechanism to persist dirty pages  If a page is under write-back, the page is locked  Journal committing  Journals are generated for journaling file system  When appending GC log files needs new blocks, journals need to be committed  Commitment might need to wait 23
  • 24. Background IO activities  OS activity such as swapping  Data writing to underlying disks  Administration and housekeeping software  System-level software such as CFEngine also perform disk IO  Other co-located applications  Co-located applications that share the disk drives, then other applications contend on IO  IO of the same JVM instance  The particular JVM instance may use disk IO in ways other than GC logging 24
  • 25. Solutions  Enhancing JVM  Another thread  Exposing JVM flags  Reducing IO activities  OS, other apps, same app  Latency sensitive applications  Separate disk  High performing disks such as SSD  Tmpfs 25
  • 26. Evaluation  SSD as the disk 26
  • 27. The good, the bad, and the ugly  The good: low real time  Low user time and low sys time  [user=0.18 sys=0.01, real=0.04 secs]  The bad: non-low (but not high) real time  High user time and low sys time  [user=8.00 sys=0.02, real=0.50 secs]  The ugly: high real time  High sys time [user=0.02 sys=1.20, real=1.20 secs]  Low sys time, low user time [Example? ] 27
  • 28. Lessons Learned (I)  Be cautious about Linux’s (and other OS) new features  Constantly incorporating new features to optimize performance  Some features incur performance tradeoff  They may backfire in certain scenarios 28
  • 29. Lessons Learned (II) 29  Root causes can come from seemingly insignificant information  Linux emits significant amount of performance information  Most of us most of the time mostly only examine a small subset of them  Don’t ignore others – understand the interactions of sub-components
  • 30. Lessons Learned (III) 30  Pay attention to multi-layer interaction  Application protocol, JVM, OS, storage/networking  Most people are familiar with a few layers  Optimizations done at one layer may adversely affect other layers  Many performance problems are caused by the cross-layer interactions