SlideShare a Scribd company logo
1 of 43
Download to read offline
Oracle OpenWorld | San Francisco | 28.10.2015 |
Miroslaw Bartecki, Capgemini
HOL1997 – How to become a
winner in the JVM performance
tuning battle
2Copyright © 2015 Capgemini and Sogeti. All Rights Reserved
HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015
Agenda
Performance tuning state of art
Key steps to made tuning done successfully
Why milliseconds matter
Performance problems inside overloaded system
 Key performance killers areas
 Big system, big load, big challenge
Web transactional system tuning advices
 How to catch problem evidence
 How to made G1 GC tuning
 When do threads adjustment
Lab tasks uncovered
State of art in performance tuning
4Copyright © 2015 Capgemini and Sogeti. All Rights Reserved
HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015
Performance tuning what is that about
Performance tuning is a response to increased load
and related with that decreased performance.
Modification of system to handle a higher load
is an performance tuning.
5Copyright © 2015 Capgemini and Sogeti. All Rights Reserved
HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015
Technical view on performance tuning steps
Is that what
IT people
like the most
Identify and
diagnose
problem
Prepare
modification with
impact analysis
Collect and
analyze
evidence
Verify and
measure changes
influence
Modifyand
adjusttoremove
bottlenecks
Refine if
measures are
not met target
Document
6Copyright © 2015 Capgemini and Sogeti. All Rights Reserved
HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015
Assumption – Presentation case
Java Enterprise Application with web front end
High end user load – thousands of concurrent users and more
No serious stability issues
Small end user load = Fast processing time
For small load on a system, performance problems are not revealed
Big load makes milliseconds latencies a big problem
Small problem for low loaded system is a big slowness or killer in heavy loaded system
7Copyright © 2015 Capgemini and Sogeti. All Rights Reserved
HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015
Why performance problem happen
Usually it looks like that 
Those problems are not uncovered on test phase
Performance tests are not cover 100% end user behaviors
End user nature of work with a system depends on many factors
e.g. cultural differences, habits, different approach to use functionalities etc.
8Copyright © 2015 Capgemini and Sogeti. All Rights Reserved
HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015
Calculation why milliseconds matter
Short calculation
 One page application with high end user load
 100 000 pages load per hour x 6 ajax calls to server
 = 600 000 end user interactions with server
 One http style interaction with server is about 3 db trasactions and 10 business method calls
 = 6 000 000 method calls
6 mln x 100 ms processing time = 600 000 s = 166,6 hours of processing time
6 mln x 10 ms processing time = 60 000 s = 16, 6 hours of processing time
Is this matter for end user ?
 1 page load = 6 ajax calls * 10 business method calls * 100 ms = 6 seconds 
 1 page load = 6 ajax calls * 10 business method calls * 10 ms = 0,6 seconds 
9Copyright © 2015 Capgemini and Sogeti. All Rights Reserved
HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015
Key performance problems areas in Java Enterprise world
 Slow web components processing (JSF lifecycle etc.)
 Slow business processing inside web application
 Too much method calls
 Slow or too much db queries
 Memory leaks
 Concurrency problems
 Bad JVM garbage collector configuration
 Bad threads parameters adjustment
 To much data processed in one transaction
 To much rely on technology when system is build without considering performance impact
• Data serialization, conversion, mapping
Remark: On the lab we will focus on the marked on blue
SPEED
LIMIT
Problem evidence
11Copyright © 2015 Capgemini and Sogeti. All Rights Reserved
HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015
How to catch production problem evidence
 Measure performance by using
• Application performance monitoring tools like open source Nagios, Zabbix or commercial one
• Java profiler kind tools with code instrumentation features like Zorka, Jensor etc.
 Review application server and OS system configs
 Make java JVM heap dump
 Gather java virtual machine garbage collector logs
 Perform java virtual machine thread dumps
12Copyright © 2015 Capgemini and Sogeti. All Rights Reserved
HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015
Catching production problem evidence – Technical details heap dump
 Making a heap dump is possible by:
• JVM command line parameter: –XX:+HeapDumpOnOutOfMemoryError
• OS command line tool: jmap -dump:file=<<path_to_file>> <<java_process_id>>
• JVM command line parameter and sent OS process signal to JVM
- -XX:+HeapDumpOnCtrlBreak
- Send a SIGQUIT signal (-3 kill for Unix and Ctrl-Break for Windows) to the running Java process
- Signal will create a heap dump without aborting the JVM.
• Via JMX Mbean
- Run jconsole and connect it to the corresponding JVM
- Invoke MBean com.sun.management.HotSpotDiagnostic -> method: dumpHeap (String, boolean)
13Copyright © 2015 Capgemini and Sogeti. All Rights Reserved
HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015
Catching production problem evidence – Thread dump technical details
 Making a thread dump is possible by:
• OS command line tool:
- jstack <pid> >> threaddumps.log
- jcmd <pid> Thread.print >> threaddumps.log
• jconsole tool plugin – for example
- jconsole -pluginpath/path/to/file/tda.jar
• JVM command line parameter and sent OS process signal to JVM
- Send a SIGQUIT signal (-3 kill for Unix and Ctrl-Break for Windows) to the running Java process
- Thread dump will be written to JVM stdout
• To redirect JVM thread dump output on break signal to separate file
- -XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput -XX:LogFile=jvm.log
- Send a SIGQUIT signal (-3 kill for Unix and Ctrl-Break for Windows) to the running Java process
JVM garbage collector
15Copyright © 2015 Capgemini and Sogeti. All Rights Reserved
HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015
Let’s start tuning – Garbage collector (1 of 2)
 Garbage collector (GC) is a JVM subsystem responsible for object allocation
and reclamation
 It can consume big CPU resources if full cleaning cycle will come
 To tune we have to choose what our goals are:
• Pause time
• Throughput
• Footprint
16Copyright © 2015 Capgemini and Sogeti. All Rights Reserved
HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015
Let’s start tuning – Garbage collector (2 of 2)
 Define tuning goal
 Clean all GC parameters
from JVM
 Run application load tests
Good idea to start GC tuning is to:
And
17Copyright © 2015 Capgemini and Sogeti. All Rights Reserved
HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015
What GC algorithms we can pick up
 Serial
 Parallel
 CMS
 G1
 C4 from Azul
 Shenandoah – similar to G1, useful for large heap, JDK 8,9
G1 garbage collector
19Copyright © 2015 Capgemini and Sogeti. All Rights Reserved
HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015
Let’s focus on G1 Garbage collector
 G1 is the HotSpot (concurrent and parallel) low-pause collector
 Work on it initiated in 2004, first supported release JDK 7u4 (April 2012)
 For multi-processor (cores…) machines and large memories
 With new memory structure
What is G1?
 Compact free space without lengthy GC induced pause times
 Need more predictable GC pause durations
 Do not want to sacrifice a lot of throughput performance
 Do not require a much larger Java heap
Like official doc states is good for applications that:
20Copyright © 2015 Capgemini and Sogeti. All Rights Reserved
HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015
Hot sport GC heap structure (serial, parallel, CMS) vs G1
Hotspot Heat Structure
EDEN SO S1 Tenured Permanent
Young
Generation
Old
Generation
Permanent
Generation
Survivor Space
G1 Heap Allocation
O O E E O
E O O S
E O S O
O E E O O
O S S O O
O O E O
E
S
O
Eden Space
Survivor Space
Old Generation
21Copyright © 2015 Capgemini and Sogeti. All Rights Reserved
HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015
 Oracle is planning to make G1 as default in JDK 9 JEP-248
 G1 is good candidate to be used with concurrent no lock memory cleaning
 G1 takes what was best had JRockit JVM like pause targets
 G1 is not a source of JVM crashes like CMS in some conditions had
 Most of web online java apps have target to use low pauses GC throughput – G1 likes that
 G 1 is easier to tune than CMS or parallel
 With every new JVM release G1 is performing better that’s why is good idea to use latest release
Why take care about G1 GC?
22Copyright © 2015 Capgemini and Sogeti. All Rights Reserved
HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015
G1 common myths
 Is self tuning one
 G1 pause target it’s all you need
 G1 will perform on defaults effectively with any object sizes
 There is not too much parameters to setup
?
23Copyright © 2015 Capgemini and Sogeti. All Rights Reserved
HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015
G1 GC most common problems
 Degradation of pause targets which are never met
 To fast or too slow promotion from young to old generation
 Reference processing takes to much time
 Insufficient space to deal with objects by GC
• Evacuation failure or to-space exhausted mean no more free regions to promote
to the old generation
 To much humongous allocations
• [G1Ergonomics (Concurrent Cycles) reason: occupancy higher than threshold, occupancy: x bytes, allocation
request: x bytes, threshold: x bytes (45.00 %), source: concurrent humongous allocation]
 GC CPU utilization is 100%
 Stop the World influence end user application servicing freeze
SLOW
24Copyright © 2015 Capgemini and Sogeti. All Rights Reserved
HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015
What are humongous objects in G1 GC
For G1 GC, any object that is more than half a region size is considered a
“Humongous object”.
Such an object is allocated directly in the old generation into
“Humongous regions”
To have such objects in old gen is
BAD
!
IDEA
25Copyright © 2015 Capgemini and Sogeti. All Rights Reserved
HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015
G1 calculation example for humongous allocations
 Xmx size → 16 GB
 By default divided by 200 regions
 Region size → 8 MB
 Humongous size limit 50% of region size → 4 MB
 You need to deal with objects bigger than 6 MB
 You need to have bigger region size to get bigger humongous limit
 Set -XX:G1HeapRegionSize=16 MB
 Your object will fit under 50% limit 8MB and will be no longer humongous
26Copyright © 2015 Capgemini and Sogeti. All Rights Reserved
HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015
Best practices in G1 setup
 Set occupancy threshold that triggers a marking cycle according to your application needs
• -XX:InitiatingHeapOccupancyPercent=45
 Adjust pause target limits with respect to served application business needs
• Entry rule to adjust maximum pause time limits is 90% on application processing and 10% on GC
• -XX:MaxGCPauseMillis=400
 Avoid low pause targets like 10 ms because they will be not met for typical JEE application
 Speed up marking phase if needed by -XX:ConcGCThreads (default ParallelGCThreads/4)
 Start marking cycle earlier by decrease -XX:InitiatingHeapOccupancyPercent
27Copyright © 2015 Capgemini and Sogeti. All Rights Reserved
HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015
Best practices in G1 setup – Logging
 Thumb rule – always enable G1 logging
• You will know what job is made by GC
• Setup below flags to have detailed G1 logging
– -verbose:gc – to enable GC logging
– -Xloggc:/opt/gclogs/gcg1log – to define GC log place
– -XX:+PrintGCDateStamps – to have date and uptime details information
– -XX:+PrintGCDetails – to have GC phases information
– -XX:+PrintAdaptiveSizePolicy – to have ergonomics information
– -XX:+PrintTenuringDistribution – to have survivor and age information
28Copyright © 2015 Capgemini and Sogeti. All Rights Reserved
HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015
Best practices in G1 setup – Utilization
 Reduce number of G1 Full GCs
• It is single threaded
• G1 + big heap + full GC cycle = super slowness
• Put in runtime prams -XX:+PrintAdaptiveSizePolicy to analyze GC logs also on “Full” cycles presence
 Prevent situation when heap space is over-utilized
• G1 need a free space to operate on objects
• If there is not enough space to operate on objects increase heap size
29Copyright © 2015 Capgemini and Sogeti. All Rights Reserved
HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015
Best practices in G1 setup – Humongous objects
 Prevent to humongous allocations
• G1 has policy to split heap into parts (regions)
• Default is to divide overall size by 2048 (e.g. 2048 M/2048 = 1M region size)
• Region size delimits size humongous object -50% of region size (above example objects bigger than 500 k
are humongous)
• Adaptive size policy parameter will let you know when this will happen
• Adjust max heap and region size -XX:G1HeapRegionSize
30Copyright © 2015 Capgemini and Sogeti. All Rights Reserved
HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015
Best practices in G1 setup – Latencies
 Enable -XX:+ParallelRefProcEnabled to process week references in parallel
• Some application are using weak references (for example session caching)
• GC spends a lot of time to try to figure which references can be cleaned up
• Remark phase is single-threaded by default unless this option
• -XX:+PrintReferenceGC to check details
• Typical root cause of having week references are ThreadLocal, RMI, external libraries
 Do not user G1 for very low latencies because it still based on “stop the world” idea
 Use the latest JDK release to get best/fastest G1 implementation
31Copyright © 2015 Capgemini and Sogeti. All Rights Reserved
HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015
Best practices in G1 setup – Space
 Setup proper segment size to impact eden/survivor space <=32 MB
• You shouldn’t setup NewSpace size because it’s ignored by G1 (except experimental flags)
• You can use only ratio based options
• Good segment size can give better throughput
 Use high waste % of heap to allow effective GC operations like -XX:G1HeapWastePercent=10
 Increase memory for "to-space“ if you will see message like below -XX:G1ReservePercent
• GC pause (G1 Evacuation Pause) (mixed) (to-space overflow)
 Use large pages for bigger than 8GB heaps -XX:+UseLargePages
Threads
33Copyright © 2015 Capgemini and Sogeti. All Rights Reserved
HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015
Java application servers and threads
 All current application servers are using concurrent threads to host deployed applications
 Thread configuration model differs per application server
• Some of them have generic pools used by all embedded subsystems
• Some of them have specific pools specialized to some operations like http pool, asynchronous pool etc.
• Some of the are using mixed model with generic pools and couple of specialized
 One common thing is that if thread locking will happen it can stop entire processing
 Threads health is base knowledge about application server processing condition
34Copyright © 2015 Capgemini and Sogeti. All Rights Reserved
HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015
Why to take care about threads
This man is not multithreaded
 Application server performance depends on
threads “health”
 Thread pool performance have direct influence
on throughput
• To much waits on condition by thread means longer response time
• To much time taken by thread on finish processing means
lower throughput
 More threads doesn’t always means good
• To much threads to review state means a lot of context switching
on OS/CPU level
• In worse example system can spent time only on threads review
with no time to process things
35Copyright © 2015 Capgemini and Sogeti. All Rights Reserved
HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015
Why thread locks happening
 Shared resource used by application is not responding like
• Database transactions stale and all jdbc threads are taken by waiting to close transaction
• File system access has to wait to OS stack response
 Synchronized code block are in frequently used part of source
 Other threads are depending on locked one
• HTTP threads are depended on business processing threads outcome
• Business processing threads are depended on source data from database
36Copyright © 2015 Capgemini and Sogeti. All Rights Reserved
HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015
How to tune threads
 Measure threads behavior by
• Making threads dump
• Compare couple of thread dumps to see difference/progress
 Analyze thread dump on locks and waits presence
 Review suspicious code processed by problematic threads
 Modify threads settings on application server side if needed like too small pool
• Like maxThreads="150" minSpareThreads="25" maxSpareThreads="75“ for Tomcat http
connector settings
• Like core-threads count="10" per-cpu="20“ for JBoss 7 http subsystem
• Like ThreadCount in config.xml for Weblogic HTTP and RMI subsystem
 Suggest architecture or code change if required (if it is a source of problems)
Hands on Labs
38Copyright © 2015 Capgemini and Sogeti. All Rights Reserved
HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015
Lab purpose
Give overall view what are typical tuning tasks
Train skills to gather evidence of performance problems
Analyze example application response times, garbage collector logs and thread health
Emphasize common tuning patterns for G1 garbage collector
1
2
3
4
39Copyright © 2015 Capgemini and Sogeti. All Rights Reserved
HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015
Lab flow tasks
 Trace sample application response time problem using zorka tool
 Enable G1 garbage collector logging
 Analyze collected G1 logs
 Tune G1 parameters accordingly to identified bottlenecks
 Collect and analyze G1 logs after tuning
 Analyze GC throughput
 Make heap dump
 Analyze heap content
 Make thread dump and analyze issues
40Copyright © 2015 Capgemini and Sogeti. All Rights Reserved
HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015
Tools used during labs
 Oracle Linux
 Java 8
 WebLogic Application Server + MariaDB
 Zorka
 Oracle jvisualVM with plugins
 GCViewer
 IBM Heap Analyzer
 Oracle jmap, jstack, jcmd
 IBM Thread and Monitor Dump Analyzer for Java
41Copyright © 2015 Capgemini and Sogeti. All Rights Reserved
HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015
Resources and materials
 Pictures used inside presentation are on Creative Commons licence
 Source of data are taken from
• Official Oracle Java documentation
• Live production experience
• Community knowledge
42Copyright © 2015 Capgemini and Sogeti. All Rights Reserved
HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015
Contact information
Miroslaw
Bartecki
Solution Architect
miroslaw.bartecki@capgemini.com
Capgemini Poland
Uniwersytecka 13
40-007 Katowice
Poland
www.sogeti.com
www.capgemini.com
The information contained in this presentation is proprietary. It is for intermediary use only.
Copyright © 2015 Capgemini and Sogeti. All rights reserved.
Rightshore® is a trademark belonging to Capgemini.
No part of this presentation may be modified, deleted or expanded by any process or means without prior written permission from Capgemini.
About Capgemini and Sogeti
Now with 180,000 people in over 40 countries, Capgemini is one of the world's
foremost providers of consulting, technology and outsourcing services. The Group
reported 2014 global revenues of EUR 10.573 billion. Together with its clients,
Capgemini creates and delivers business, technology and digital solutions that fit
their needs, enabling them to achieve innovation and competitiveness. A deeply
multicultural organization, Capgemini has developed its own way of working, the
Collaborative Business Experience™, and draws on Rightshore®, its worldwide
delivery model.
Sogeti is a leading provider of technology and software testing, specializing in
Application, Infrastructure and Engineering Services. Sogeti offers cutting-edge
solutions around Testing, Business Intelligence & Analytics, Mobile, Cloud and
Cyber Security. Sogeti brings together more than 20,000 professionals in 15
countries and has a strong local presence in over 100 locations in Europe, USA
and India. Sogeti is a wholly-owned subsidiary of Cap Gemini S.A., listed on the
Paris Stock Exchange.

More Related Content

What's hot

Bridging Oracle Database and Hadoop by Alex Gorbachev, Pythian from Oracle Op...
Bridging Oracle Database and Hadoop by Alex Gorbachev, Pythian from Oracle Op...Bridging Oracle Database and Hadoop by Alex Gorbachev, Pythian from Oracle Op...
Bridging Oracle Database and Hadoop by Alex Gorbachev, Pythian from Oracle Op...Alex Gorbachev
 
Build Your Own Middleware Machine
Build Your Own Middleware MachineBuild Your Own Middleware Machine
Build Your Own Middleware MachineSimon Haslam
 
EMC with Mirantis Openstack
EMC with Mirantis OpenstackEMC with Mirantis Openstack
EMC with Mirantis OpenstackEMC
 
10 Tricks to Ensure Your Oracle Coherence Cluster is Not a "Black Box" in Pro...
10 Tricks to Ensure Your Oracle Coherence Cluster is Not a "Black Box" in Pro...10 Tricks to Ensure Your Oracle Coherence Cluster is Not a "Black Box" in Pro...
10 Tricks to Ensure Your Oracle Coherence Cluster is Not a "Black Box" in Pro...SL Corporation
 
The Very Very Latest in Database Development - Oracle Open World 2012
The Very Very Latest in Database Development - Oracle Open World 2012The Very Very Latest in Database Development - Oracle Open World 2012
The Very Very Latest in Database Development - Oracle Open World 2012Lucas Jellema
 
Migration to Oracle Multitenant
Migration to Oracle MultitenantMigration to Oracle Multitenant
Migration to Oracle MultitenantJitendra Singh
 
The Kubernetes WebLogic revival (part 1)
The Kubernetes WebLogic revival (part 1)The Kubernetes WebLogic revival (part 1)
The Kubernetes WebLogic revival (part 1)Simon Haslam
 
Living with the Oracle Database Appliance
Living with the Oracle Database ApplianceLiving with the Oracle Database Appliance
Living with the Oracle Database ApplianceSimon Haslam
 
VMworld 2015: Horizon View Storage - Let's Dive Deep!
VMworld 2015: Horizon View Storage - Let's Dive Deep!VMworld 2015: Horizon View Storage - Let's Dive Deep!
VMworld 2015: Horizon View Storage - Let's Dive Deep!VMworld
 
Web Logic Jboss Final
Web Logic Jboss FinalWeb Logic Jboss Final
Web Logic Jboss FinalMohamed Atef
 
JBoss Architect Meetup - December 2013 - JBoss Fuse in Vodafone’s Global Inte...
JBoss Architect Meetup - December 2013 - JBoss Fuse in Vodafone’s Global Inte...JBoss Architect Meetup - December 2013 - JBoss Fuse in Vodafone’s Global Inte...
JBoss Architect Meetup - December 2013 - JBoss Fuse in Vodafone’s Global Inte...JBossArchitectForum
 
(ZDM) Zero Downtime DB Migration to Oracle Cloud
(ZDM) Zero Downtime DB Migration to Oracle Cloud(ZDM) Zero Downtime DB Migration to Oracle Cloud
(ZDM) Zero Downtime DB Migration to Oracle CloudRuggero Citton
 
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
 
Scaling paypal workloads with oracle rac ss
Scaling paypal workloads with oracle rac ssScaling paypal workloads with oracle rac ss
Scaling paypal workloads with oracle rac ssAnil Nair
 
Oracle Fleet Patching and Provisioning Deep Dive Webcast Slides
Oracle Fleet Patching and Provisioning Deep Dive Webcast SlidesOracle Fleet Patching and Provisioning Deep Dive Webcast Slides
Oracle Fleet Patching and Provisioning Deep Dive Webcast SlidesLudovico Caldara
 
VMworld Europe 204: Technical Deep Dive on EVO: RAIL, the new VMware Hyper-Co...
VMworld Europe 204: Technical Deep Dive on EVO: RAIL, the new VMware Hyper-Co...VMworld Europe 204: Technical Deep Dive on EVO: RAIL, the new VMware Hyper-Co...
VMworld Europe 204: Technical Deep Dive on EVO: RAIL, the new VMware Hyper-Co...VMworld
 
Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.
Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.
Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.Geir Høydalsvik
 

What's hot (20)

Bridging Oracle Database and Hadoop by Alex Gorbachev, Pythian from Oracle Op...
Bridging Oracle Database and Hadoop by Alex Gorbachev, Pythian from Oracle Op...Bridging Oracle Database and Hadoop by Alex Gorbachev, Pythian from Oracle Op...
Bridging Oracle Database and Hadoop by Alex Gorbachev, Pythian from Oracle Op...
 
Zero Downtime Migration
Zero Downtime MigrationZero Downtime Migration
Zero Downtime Migration
 
Build Your Own Middleware Machine
Build Your Own Middleware MachineBuild Your Own Middleware Machine
Build Your Own Middleware Machine
 
AMIS OOW Review 2012 - Deel 7 - Lucas Jellema
AMIS OOW Review 2012 - Deel 7 - Lucas JellemaAMIS OOW Review 2012 - Deel 7 - Lucas Jellema
AMIS OOW Review 2012 - Deel 7 - Lucas Jellema
 
EMC with Mirantis Openstack
EMC with Mirantis OpenstackEMC with Mirantis Openstack
EMC with Mirantis Openstack
 
10 Tricks to Ensure Your Oracle Coherence Cluster is Not a "Black Box" in Pro...
10 Tricks to Ensure Your Oracle Coherence Cluster is Not a "Black Box" in Pro...10 Tricks to Ensure Your Oracle Coherence Cluster is Not a "Black Box" in Pro...
10 Tricks to Ensure Your Oracle Coherence Cluster is Not a "Black Box" in Pro...
 
The Very Very Latest in Database Development - Oracle Open World 2012
The Very Very Latest in Database Development - Oracle Open World 2012The Very Very Latest in Database Development - Oracle Open World 2012
The Very Very Latest in Database Development - Oracle Open World 2012
 
Migration to Oracle Multitenant
Migration to Oracle MultitenantMigration to Oracle Multitenant
Migration to Oracle Multitenant
 
The Kubernetes WebLogic revival (part 1)
The Kubernetes WebLogic revival (part 1)The Kubernetes WebLogic revival (part 1)
The Kubernetes WebLogic revival (part 1)
 
Living with the Oracle Database Appliance
Living with the Oracle Database ApplianceLiving with the Oracle Database Appliance
Living with the Oracle Database Appliance
 
VMworld 2015: Horizon View Storage - Let's Dive Deep!
VMworld 2015: Horizon View Storage - Let's Dive Deep!VMworld 2015: Horizon View Storage - Let's Dive Deep!
VMworld 2015: Horizon View Storage - Let's Dive Deep!
 
Web Logic Jboss Final
Web Logic Jboss FinalWeb Logic Jboss Final
Web Logic Jboss Final
 
JBoss Architect Meetup - December 2013 - JBoss Fuse in Vodafone’s Global Inte...
JBoss Architect Meetup - December 2013 - JBoss Fuse in Vodafone’s Global Inte...JBoss Architect Meetup - December 2013 - JBoss Fuse in Vodafone’s Global Inte...
JBoss Architect Meetup - December 2013 - JBoss Fuse in Vodafone’s Global Inte...
 
(ZDM) Zero Downtime DB Migration to Oracle Cloud
(ZDM) Zero Downtime DB Migration to Oracle Cloud(ZDM) Zero Downtime DB Migration to Oracle Cloud
(ZDM) Zero Downtime DB Migration to Oracle Cloud
 
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
 
Scaling paypal workloads with oracle rac ss
Scaling paypal workloads with oracle rac ssScaling paypal workloads with oracle rac ss
Scaling paypal workloads with oracle rac ss
 
Ronald van Luttikhuizen - Effective fault handling in SOA Suite and OSB 11g
Ronald van Luttikhuizen - Effective fault handling in SOA Suite and OSB 11gRonald van Luttikhuizen - Effective fault handling in SOA Suite and OSB 11g
Ronald van Luttikhuizen - Effective fault handling in SOA Suite and OSB 11g
 
Oracle Fleet Patching and Provisioning Deep Dive Webcast Slides
Oracle Fleet Patching and Provisioning Deep Dive Webcast SlidesOracle Fleet Patching and Provisioning Deep Dive Webcast Slides
Oracle Fleet Patching and Provisioning Deep Dive Webcast Slides
 
VMworld Europe 204: Technical Deep Dive on EVO: RAIL, the new VMware Hyper-Co...
VMworld Europe 204: Technical Deep Dive on EVO: RAIL, the new VMware Hyper-Co...VMworld Europe 204: Technical Deep Dive on EVO: RAIL, the new VMware Hyper-Co...
VMworld Europe 204: Technical Deep Dive on EVO: RAIL, the new VMware Hyper-Co...
 
Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.
Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.
Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.
 

Viewers also liked

Performance tuning jvm
Performance tuning jvmPerformance tuning jvm
Performance tuning jvmPrem Kuppumani
 
Sales Recognition 2013
Sales Recognition 2013Sales Recognition 2013
Sales Recognition 2013achungAC
 
Power Of Motivation benny
Power Of Motivation bennyPower Of Motivation benny
Power Of Motivation bennyscrappyphipsi
 
Hadoop world g1_gc_forh_base_v4
Hadoop world g1_gc_forh_base_v4Hadoop world g1_gc_forh_base_v4
Hadoop world g1_gc_forh_base_v4YanpingWang
 
Moving to g1 gc by Kirk Pepperdine.
Moving to g1 gc by Kirk Pepperdine.Moving to g1 gc by Kirk Pepperdine.
Moving to g1 gc by Kirk Pepperdine.J On The Beach
 
Java7 Garbage Collector G1
Java7 Garbage Collector G1Java7 Garbage Collector G1
Java7 Garbage Collector G1Dmitry Buzdin
 
G1 Garbage Collector - Big Heaps and Low Pauses?
G1 Garbage Collector - Big Heaps and Low Pauses?G1 Garbage Collector - Big Heaps and Low Pauses?
G1 Garbage Collector - Big Heaps and Low Pauses?C2B2 Consulting
 
Optimism in the Modern Workplace Revealed
Optimism in the Modern Workplace RevealedOptimism in the Modern Workplace Revealed
Optimism in the Modern Workplace RevealedChief Optimist
 
Tuning Java for Big Data
Tuning Java for Big DataTuning Java for Big Data
Tuning Java for Big DataScott Seighman
 
Garbage First Garbage Collector (G1 GC) - Migration to, Expectations and Adva...
Garbage First Garbage Collector (G1 GC) - Migration to, Expectations and Adva...Garbage First Garbage Collector (G1 GC) - Migration to, Expectations and Adva...
Garbage First Garbage Collector (G1 GC) - Migration to, Expectations and Adva...Monica Beckwith
 
Introduction of Java GC Tuning and Java Java Mission Control
Introduction of Java GC Tuning and Java Java Mission ControlIntroduction of Java GC Tuning and Java Java Mission Control
Introduction of Java GC Tuning and Java Java Mission ControlLeon Chen
 
Solving Multi-tenancy and G1GC in Apache HBase
Solving Multi-tenancy and G1GC in Apache HBase Solving Multi-tenancy and G1GC in Apache HBase
Solving Multi-tenancy and G1GC in Apache HBase HBaseCon
 
Performance tuning the Spring Pet Clinic sample application
Performance tuning the Spring Pet Clinic sample applicationPerformance tuning the Spring Pet Clinic sample application
Performance tuning the Spring Pet Clinic sample applicationJulien Dubois
 
Introduction to Zabbix - Company, Product, Services and Use Cases
Introduction to Zabbix - Company, Product, Services and Use CasesIntroduction to Zabbix - Company, Product, Services and Use Cases
Introduction to Zabbix - Company, Product, Services and Use CasesZabbix
 
How To Increase Motivation – Make Your Dreams Come True
How To Increase Motivation – Make Your Dreams Come TrueHow To Increase Motivation – Make Your Dreams Come True
How To Increase Motivation – Make Your Dreams Come TrueVKool Magazine - VKool.com
 
Garbage First Garbage Collector: Where the Rubber Meets the Road!
Garbage First Garbage Collector: Where the Rubber Meets the Road!Garbage First Garbage Collector: Where the Rubber Meets the Road!
Garbage First Garbage Collector: Where the Rubber Meets the Road!Monica Beckwith
 
G1 Garbage Collector: Details and Tuning
G1 Garbage Collector: Details and TuningG1 Garbage Collector: Details and Tuning
G1 Garbage Collector: Details and TuningSimone Bordet
 
Kerberos als Unternehmsweites Single Sign On
Kerberos als Unternehmsweites Single Sign OnKerberos als Unternehmsweites Single Sign On
Kerberos als Unternehmsweites Single Sign OnMike Wiesner
 

Viewers also liked (19)

Performance tuning jvm
Performance tuning jvmPerformance tuning jvm
Performance tuning jvm
 
Sales Recognition 2013
Sales Recognition 2013Sales Recognition 2013
Sales Recognition 2013
 
Power Of Motivation benny
Power Of Motivation bennyPower Of Motivation benny
Power Of Motivation benny
 
Hadoop world g1_gc_forh_base_v4
Hadoop world g1_gc_forh_base_v4Hadoop world g1_gc_forh_base_v4
Hadoop world g1_gc_forh_base_v4
 
Moving to g1 gc by Kirk Pepperdine.
Moving to g1 gc by Kirk Pepperdine.Moving to g1 gc by Kirk Pepperdine.
Moving to g1 gc by Kirk Pepperdine.
 
Java7 Garbage Collector G1
Java7 Garbage Collector G1Java7 Garbage Collector G1
Java7 Garbage Collector G1
 
G1 Garbage Collector - Big Heaps and Low Pauses?
G1 Garbage Collector - Big Heaps and Low Pauses?G1 Garbage Collector - Big Heaps and Low Pauses?
G1 Garbage Collector - Big Heaps and Low Pauses?
 
Optimism in the Modern Workplace Revealed
Optimism in the Modern Workplace RevealedOptimism in the Modern Workplace Revealed
Optimism in the Modern Workplace Revealed
 
Tuning Java for Big Data
Tuning Java for Big DataTuning Java for Big Data
Tuning Java for Big Data
 
Garbage First Garbage Collector (G1 GC) - Migration to, Expectations and Adva...
Garbage First Garbage Collector (G1 GC) - Migration to, Expectations and Adva...Garbage First Garbage Collector (G1 GC) - Migration to, Expectations and Adva...
Garbage First Garbage Collector (G1 GC) - Migration to, Expectations and Adva...
 
Introduction of Java GC Tuning and Java Java Mission Control
Introduction of Java GC Tuning and Java Java Mission ControlIntroduction of Java GC Tuning and Java Java Mission Control
Introduction of Java GC Tuning and Java Java Mission Control
 
Solving Multi-tenancy and G1GC in Apache HBase
Solving Multi-tenancy and G1GC in Apache HBase Solving Multi-tenancy and G1GC in Apache HBase
Solving Multi-tenancy and G1GC in Apache HBase
 
Performance tuning the Spring Pet Clinic sample application
Performance tuning the Spring Pet Clinic sample applicationPerformance tuning the Spring Pet Clinic sample application
Performance tuning the Spring Pet Clinic sample application
 
Introduction to Zabbix - Company, Product, Services and Use Cases
Introduction to Zabbix - Company, Product, Services and Use CasesIntroduction to Zabbix - Company, Product, Services and Use Cases
Introduction to Zabbix - Company, Product, Services and Use Cases
 
How To Increase Motivation – Make Your Dreams Come True
How To Increase Motivation – Make Your Dreams Come TrueHow To Increase Motivation – Make Your Dreams Come True
How To Increase Motivation – Make Your Dreams Come True
 
Garbage First Garbage Collector: Where the Rubber Meets the Road!
Garbage First Garbage Collector: Where the Rubber Meets the Road!Garbage First Garbage Collector: Where the Rubber Meets the Road!
Garbage First Garbage Collector: Where the Rubber Meets the Road!
 
G1 Garbage Collector: Details and Tuning
G1 Garbage Collector: Details and TuningG1 Garbage Collector: Details and Tuning
G1 Garbage Collector: Details and Tuning
 
MOTIVATION POWERPOINT
MOTIVATION POWERPOINTMOTIVATION POWERPOINT
MOTIVATION POWERPOINT
 
Kerberos als Unternehmsweites Single Sign On
Kerberos als Unternehmsweites Single Sign OnKerberos als Unternehmsweites Single Sign On
Kerberos als Unternehmsweites Single Sign On
 

Similar to How to Become a Winner in the JVM Performance-Tuning Battle

ITT 2015 - Kirk Pepperdine - The (not so) Dark Art of Performance Tuning, fro...
ITT 2015 - Kirk Pepperdine - The (not so) Dark Art of Performance Tuning, fro...ITT 2015 - Kirk Pepperdine - The (not so) Dark Art of Performance Tuning, fro...
ITT 2015 - Kirk Pepperdine - The (not so) Dark Art of Performance Tuning, fro...Istanbul Tech Talks
 
GC Tuning Confessions Of A Performance Engineer
GC Tuning Confessions Of A Performance EngineerGC Tuning Confessions Of A Performance Engineer
GC Tuning Confessions Of A Performance EngineerMonica Beckwith
 
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
 
Delivering Java Applications? Ensure Top Performance Every Time, with Intell...
 Delivering Java Applications? Ensure Top Performance Every Time, with Intell... Delivering Java Applications? Ensure Top Performance Every Time, with Intell...
Delivering Java Applications? Ensure Top Performance Every Time, with Intell...John Williams
 
JITServerTalk-OSS-2023.pdf
JITServerTalk-OSS-2023.pdfJITServerTalk-OSS-2023.pdf
JITServerTalk-OSS-2023.pdfRichHagarty
 
JITServerTalk JCON World 2023.pdf
JITServerTalk JCON World 2023.pdfJITServerTalk JCON World 2023.pdf
JITServerTalk JCON World 2023.pdfRichHagarty
 
Reducing boot time in embedded Linux
Reducing boot time in embedded LinuxReducing boot time in embedded Linux
Reducing boot time in embedded LinuxChris Simmonds
 
Operating Systems Chapter 6 silberschatz
Operating Systems Chapter 6 silberschatzOperating Systems Chapter 6 silberschatz
Operating Systems Chapter 6 silberschatzGiulianoRanauro
 
Dot Net Application Monitoring
Dot Net Application MonitoringDot Net Application Monitoring
Dot Net Application MonitoringRavi Okade
 
millions-gc-jax-2022.pptx
millions-gc-jax-2022.pptxmillions-gc-jax-2022.pptx
millions-gc-jax-2022.pptxTier1 app
 
Highly Surmountable Challenges in Ruby+OMR JIT Compilation
Highly Surmountable Challenges in Ruby+OMR JIT CompilationHighly Surmountable Challenges in Ruby+OMR JIT Compilation
Highly Surmountable Challenges in Ruby+OMR JIT CompilationMatthew Gaudet
 
Performance Tuning Oracle Weblogic Server 12c
Performance Tuning Oracle Weblogic Server 12cPerformance Tuning Oracle Weblogic Server 12c
Performance Tuning Oracle Weblogic Server 12cAjith Narayanan
 
Java and Serverless - A Match Made In Heaven, Part 2
Java and Serverless - A Match Made In Heaven, Part 2Java and Serverless - A Match Made In Heaven, Part 2
Java and Serverless - A Match Made In Heaven, Part 2Curity
 
Building a µservice with Kotlin, Micronaut & GCP
Building a µservice with Kotlin, Micronaut & GCPBuilding a µservice with Kotlin, Micronaut & GCP
Building a µservice with Kotlin, Micronaut & GCPRobert MacLean
 
JITServerTalk.pdf
JITServerTalk.pdfJITServerTalk.pdf
JITServerTalk.pdfRichHagarty
 
Javaland_JITServerTalk.pptx
Javaland_JITServerTalk.pptxJavaland_JITServerTalk.pptx
Javaland_JITServerTalk.pptxGrace Jansen
 
Skytap parasoft webinar new years resolution- accelerate sdlc
Skytap parasoft webinar new years resolution- accelerate sdlcSkytap parasoft webinar new years resolution- accelerate sdlc
Skytap parasoft webinar new years resolution- accelerate sdlcSkytap Cloud
 

Similar to How to Become a Winner in the JVM Performance-Tuning Battle (20)

ITT 2015 - Kirk Pepperdine - The (not so) Dark Art of Performance Tuning, fro...
ITT 2015 - Kirk Pepperdine - The (not so) Dark Art of Performance Tuning, fro...ITT 2015 - Kirk Pepperdine - The (not so) Dark Art of Performance Tuning, fro...
ITT 2015 - Kirk Pepperdine - The (not so) Dark Art of Performance Tuning, fro...
 
GC Tuning Confessions Of A Performance Engineer
GC Tuning Confessions Of A Performance EngineerGC Tuning Confessions Of A Performance Engineer
GC Tuning Confessions Of A Performance Engineer
 
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...
 
Delivering Java Applications? Ensure Top Performance Every Time, with Intell...
 Delivering Java Applications? Ensure Top Performance Every Time, with Intell... Delivering Java Applications? Ensure Top Performance Every Time, with Intell...
Delivering Java Applications? Ensure Top Performance Every Time, with Intell...
 
FPGA MeetUp
FPGA MeetUpFPGA MeetUp
FPGA MeetUp
 
JavaMicroBenchmarkpptm
JavaMicroBenchmarkpptmJavaMicroBenchmarkpptm
JavaMicroBenchmarkpptm
 
JITServerTalk-OSS-2023.pdf
JITServerTalk-OSS-2023.pdfJITServerTalk-OSS-2023.pdf
JITServerTalk-OSS-2023.pdf
 
JITServerTalk JCON World 2023.pdf
JITServerTalk JCON World 2023.pdfJITServerTalk JCON World 2023.pdf
JITServerTalk JCON World 2023.pdf
 
Reducing boot time in embedded Linux
Reducing boot time in embedded LinuxReducing boot time in embedded Linux
Reducing boot time in embedded Linux
 
Operating Systems Chapter 6 silberschatz
Operating Systems Chapter 6 silberschatzOperating Systems Chapter 6 silberschatz
Operating Systems Chapter 6 silberschatz
 
Dot Net Application Monitoring
Dot Net Application MonitoringDot Net Application Monitoring
Dot Net Application Monitoring
 
Camunda BPM 7.2 - English
Camunda BPM 7.2 - EnglishCamunda BPM 7.2 - English
Camunda BPM 7.2 - English
 
millions-gc-jax-2022.pptx
millions-gc-jax-2022.pptxmillions-gc-jax-2022.pptx
millions-gc-jax-2022.pptx
 
Highly Surmountable Challenges in Ruby+OMR JIT Compilation
Highly Surmountable Challenges in Ruby+OMR JIT CompilationHighly Surmountable Challenges in Ruby+OMR JIT Compilation
Highly Surmountable Challenges in Ruby+OMR JIT Compilation
 
Performance Tuning Oracle Weblogic Server 12c
Performance Tuning Oracle Weblogic Server 12cPerformance Tuning Oracle Weblogic Server 12c
Performance Tuning Oracle Weblogic Server 12c
 
Java and Serverless - A Match Made In Heaven, Part 2
Java and Serverless - A Match Made In Heaven, Part 2Java and Serverless - A Match Made In Heaven, Part 2
Java and Serverless - A Match Made In Heaven, Part 2
 
Building a µservice with Kotlin, Micronaut & GCP
Building a µservice with Kotlin, Micronaut & GCPBuilding a µservice with Kotlin, Micronaut & GCP
Building a µservice with Kotlin, Micronaut & GCP
 
JITServerTalk.pdf
JITServerTalk.pdfJITServerTalk.pdf
JITServerTalk.pdf
 
Javaland_JITServerTalk.pptx
Javaland_JITServerTalk.pptxJavaland_JITServerTalk.pptx
Javaland_JITServerTalk.pptx
 
Skytap parasoft webinar new years resolution- accelerate sdlc
Skytap parasoft webinar new years resolution- accelerate sdlcSkytap parasoft webinar new years resolution- accelerate sdlc
Skytap parasoft webinar new years resolution- accelerate sdlc
 

More from Capgemini

Top Healthcare Trends 2022
Top Healthcare Trends 2022Top Healthcare Trends 2022
Top Healthcare Trends 2022Capgemini
 
Top P&C Insurance Trends 2022
Top P&C Insurance Trends 2022Top P&C Insurance Trends 2022
Top P&C Insurance Trends 2022Capgemini
 
Commercial Banking Trends book 2022
Commercial Banking Trends book 2022Commercial Banking Trends book 2022
Commercial Banking Trends book 2022Capgemini
 
Top Trends in Payments 2022
Top Trends in Payments 2022Top Trends in Payments 2022
Top Trends in Payments 2022Capgemini
 
Top Trends in Wealth Management 2022
Top Trends in Wealth Management 2022Top Trends in Wealth Management 2022
Top Trends in Wealth Management 2022Capgemini
 
Retail Banking Trends book 2022
Retail Banking Trends book 2022Retail Banking Trends book 2022
Retail Banking Trends book 2022Capgemini
 
Top Life Insurance Trends 2022
Top Life Insurance Trends 2022Top Life Insurance Trends 2022
Top Life Insurance Trends 2022Capgemini
 
キャップジェミニ、あなたの『RISE WITH SAP』のパートナーです
キャップジェミニ、あなたの『RISE WITH SAP』のパートナーですキャップジェミニ、あなたの『RISE WITH SAP』のパートナーです
キャップジェミニ、あなたの『RISE WITH SAP』のパートナーですCapgemini
 
Property & Casualty Insurance Top Trends 2021
Property & Casualty Insurance Top Trends 2021Property & Casualty Insurance Top Trends 2021
Property & Casualty Insurance Top Trends 2021Capgemini
 
Life Insurance Top Trends 2021
Life Insurance Top Trends 2021Life Insurance Top Trends 2021
Life Insurance Top Trends 2021Capgemini
 
Top Trends in Commercial Banking: 2021
Top Trends in Commercial Banking: 2021Top Trends in Commercial Banking: 2021
Top Trends in Commercial Banking: 2021Capgemini
 
Top Trends in Wealth Management: 2021
Top Trends in Wealth Management: 2021Top Trends in Wealth Management: 2021
Top Trends in Wealth Management: 2021Capgemini
 
Top Trends in Payments: 2021
Top Trends in Payments: 2021Top Trends in Payments: 2021
Top Trends in Payments: 2021Capgemini
 
Health Insurance Top Trends 2021
Health Insurance Top Trends 2021Health Insurance Top Trends 2021
Health Insurance Top Trends 2021Capgemini
 
Top Trends in Retail Banking: 2021
Top Trends in Retail Banking: 2021Top Trends in Retail Banking: 2021
Top Trends in Retail Banking: 2021Capgemini
 
Capgemini’s Connected Autonomous Planning
Capgemini’s Connected Autonomous PlanningCapgemini’s Connected Autonomous Planning
Capgemini’s Connected Autonomous PlanningCapgemini
 
Top Trends in Retail Banking: 2020
Top Trends in Retail Banking: 2020Top Trends in Retail Banking: 2020
Top Trends in Retail Banking: 2020Capgemini
 
Top Trends in Life Insurance: 2020
Top Trends in Life Insurance: 2020Top Trends in Life Insurance: 2020
Top Trends in Life Insurance: 2020Capgemini
 
Top Trends in Health Insurance: 2020
Top Trends in Health Insurance: 2020Top Trends in Health Insurance: 2020
Top Trends in Health Insurance: 2020Capgemini
 
Top Trends in Payments: 2020
Top Trends in Payments: 2020Top Trends in Payments: 2020
Top Trends in Payments: 2020Capgemini
 

More from Capgemini (20)

Top Healthcare Trends 2022
Top Healthcare Trends 2022Top Healthcare Trends 2022
Top Healthcare Trends 2022
 
Top P&C Insurance Trends 2022
Top P&C Insurance Trends 2022Top P&C Insurance Trends 2022
Top P&C Insurance Trends 2022
 
Commercial Banking Trends book 2022
Commercial Banking Trends book 2022Commercial Banking Trends book 2022
Commercial Banking Trends book 2022
 
Top Trends in Payments 2022
Top Trends in Payments 2022Top Trends in Payments 2022
Top Trends in Payments 2022
 
Top Trends in Wealth Management 2022
Top Trends in Wealth Management 2022Top Trends in Wealth Management 2022
Top Trends in Wealth Management 2022
 
Retail Banking Trends book 2022
Retail Banking Trends book 2022Retail Banking Trends book 2022
Retail Banking Trends book 2022
 
Top Life Insurance Trends 2022
Top Life Insurance Trends 2022Top Life Insurance Trends 2022
Top Life Insurance Trends 2022
 
キャップジェミニ、あなたの『RISE WITH SAP』のパートナーです
キャップジェミニ、あなたの『RISE WITH SAP』のパートナーですキャップジェミニ、あなたの『RISE WITH SAP』のパートナーです
キャップジェミニ、あなたの『RISE WITH SAP』のパートナーです
 
Property & Casualty Insurance Top Trends 2021
Property & Casualty Insurance Top Trends 2021Property & Casualty Insurance Top Trends 2021
Property & Casualty Insurance Top Trends 2021
 
Life Insurance Top Trends 2021
Life Insurance Top Trends 2021Life Insurance Top Trends 2021
Life Insurance Top Trends 2021
 
Top Trends in Commercial Banking: 2021
Top Trends in Commercial Banking: 2021Top Trends in Commercial Banking: 2021
Top Trends in Commercial Banking: 2021
 
Top Trends in Wealth Management: 2021
Top Trends in Wealth Management: 2021Top Trends in Wealth Management: 2021
Top Trends in Wealth Management: 2021
 
Top Trends in Payments: 2021
Top Trends in Payments: 2021Top Trends in Payments: 2021
Top Trends in Payments: 2021
 
Health Insurance Top Trends 2021
Health Insurance Top Trends 2021Health Insurance Top Trends 2021
Health Insurance Top Trends 2021
 
Top Trends in Retail Banking: 2021
Top Trends in Retail Banking: 2021Top Trends in Retail Banking: 2021
Top Trends in Retail Banking: 2021
 
Capgemini’s Connected Autonomous Planning
Capgemini’s Connected Autonomous PlanningCapgemini’s Connected Autonomous Planning
Capgemini’s Connected Autonomous Planning
 
Top Trends in Retail Banking: 2020
Top Trends in Retail Banking: 2020Top Trends in Retail Banking: 2020
Top Trends in Retail Banking: 2020
 
Top Trends in Life Insurance: 2020
Top Trends in Life Insurance: 2020Top Trends in Life Insurance: 2020
Top Trends in Life Insurance: 2020
 
Top Trends in Health Insurance: 2020
Top Trends in Health Insurance: 2020Top Trends in Health Insurance: 2020
Top Trends in Health Insurance: 2020
 
Top Trends in Payments: 2020
Top Trends in Payments: 2020Top Trends in Payments: 2020
Top Trends in Payments: 2020
 

Recently uploaded

Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 

Recently uploaded (20)

Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 

How to Become a Winner in the JVM Performance-Tuning Battle

  • 1. Oracle OpenWorld | San Francisco | 28.10.2015 | Miroslaw Bartecki, Capgemini HOL1997 – How to become a winner in the JVM performance tuning battle
  • 2. 2Copyright © 2015 Capgemini and Sogeti. All Rights Reserved HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015 Agenda Performance tuning state of art Key steps to made tuning done successfully Why milliseconds matter Performance problems inside overloaded system  Key performance killers areas  Big system, big load, big challenge Web transactional system tuning advices  How to catch problem evidence  How to made G1 GC tuning  When do threads adjustment Lab tasks uncovered
  • 3. State of art in performance tuning
  • 4. 4Copyright © 2015 Capgemini and Sogeti. All Rights Reserved HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015 Performance tuning what is that about Performance tuning is a response to increased load and related with that decreased performance. Modification of system to handle a higher load is an performance tuning.
  • 5. 5Copyright © 2015 Capgemini and Sogeti. All Rights Reserved HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015 Technical view on performance tuning steps Is that what IT people like the most Identify and diagnose problem Prepare modification with impact analysis Collect and analyze evidence Verify and measure changes influence Modifyand adjusttoremove bottlenecks Refine if measures are not met target Document
  • 6. 6Copyright © 2015 Capgemini and Sogeti. All Rights Reserved HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015 Assumption – Presentation case Java Enterprise Application with web front end High end user load – thousands of concurrent users and more No serious stability issues Small end user load = Fast processing time For small load on a system, performance problems are not revealed Big load makes milliseconds latencies a big problem Small problem for low loaded system is a big slowness or killer in heavy loaded system
  • 7. 7Copyright © 2015 Capgemini and Sogeti. All Rights Reserved HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015 Why performance problem happen Usually it looks like that  Those problems are not uncovered on test phase Performance tests are not cover 100% end user behaviors End user nature of work with a system depends on many factors e.g. cultural differences, habits, different approach to use functionalities etc.
  • 8. 8Copyright © 2015 Capgemini and Sogeti. All Rights Reserved HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015 Calculation why milliseconds matter Short calculation  One page application with high end user load  100 000 pages load per hour x 6 ajax calls to server  = 600 000 end user interactions with server  One http style interaction with server is about 3 db trasactions and 10 business method calls  = 6 000 000 method calls 6 mln x 100 ms processing time = 600 000 s = 166,6 hours of processing time 6 mln x 10 ms processing time = 60 000 s = 16, 6 hours of processing time Is this matter for end user ?  1 page load = 6 ajax calls * 10 business method calls * 100 ms = 6 seconds   1 page load = 6 ajax calls * 10 business method calls * 10 ms = 0,6 seconds 
  • 9. 9Copyright © 2015 Capgemini and Sogeti. All Rights Reserved HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015 Key performance problems areas in Java Enterprise world  Slow web components processing (JSF lifecycle etc.)  Slow business processing inside web application  Too much method calls  Slow or too much db queries  Memory leaks  Concurrency problems  Bad JVM garbage collector configuration  Bad threads parameters adjustment  To much data processed in one transaction  To much rely on technology when system is build without considering performance impact • Data serialization, conversion, mapping Remark: On the lab we will focus on the marked on blue SPEED LIMIT
  • 11. 11Copyright © 2015 Capgemini and Sogeti. All Rights Reserved HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015 How to catch production problem evidence  Measure performance by using • Application performance monitoring tools like open source Nagios, Zabbix or commercial one • Java profiler kind tools with code instrumentation features like Zorka, Jensor etc.  Review application server and OS system configs  Make java JVM heap dump  Gather java virtual machine garbage collector logs  Perform java virtual machine thread dumps
  • 12. 12Copyright © 2015 Capgemini and Sogeti. All Rights Reserved HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015 Catching production problem evidence – Technical details heap dump  Making a heap dump is possible by: • JVM command line parameter: –XX:+HeapDumpOnOutOfMemoryError • OS command line tool: jmap -dump:file=<<path_to_file>> <<java_process_id>> • JVM command line parameter and sent OS process signal to JVM - -XX:+HeapDumpOnCtrlBreak - Send a SIGQUIT signal (-3 kill for Unix and Ctrl-Break for Windows) to the running Java process - Signal will create a heap dump without aborting the JVM. • Via JMX Mbean - Run jconsole and connect it to the corresponding JVM - Invoke MBean com.sun.management.HotSpotDiagnostic -> method: dumpHeap (String, boolean)
  • 13. 13Copyright © 2015 Capgemini and Sogeti. All Rights Reserved HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015 Catching production problem evidence – Thread dump technical details  Making a thread dump is possible by: • OS command line tool: - jstack <pid> >> threaddumps.log - jcmd <pid> Thread.print >> threaddumps.log • jconsole tool plugin – for example - jconsole -pluginpath/path/to/file/tda.jar • JVM command line parameter and sent OS process signal to JVM - Send a SIGQUIT signal (-3 kill for Unix and Ctrl-Break for Windows) to the running Java process - Thread dump will be written to JVM stdout • To redirect JVM thread dump output on break signal to separate file - -XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput -XX:LogFile=jvm.log - Send a SIGQUIT signal (-3 kill for Unix and Ctrl-Break for Windows) to the running Java process
  • 15. 15Copyright © 2015 Capgemini and Sogeti. All Rights Reserved HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015 Let’s start tuning – Garbage collector (1 of 2)  Garbage collector (GC) is a JVM subsystem responsible for object allocation and reclamation  It can consume big CPU resources if full cleaning cycle will come  To tune we have to choose what our goals are: • Pause time • Throughput • Footprint
  • 16. 16Copyright © 2015 Capgemini and Sogeti. All Rights Reserved HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015 Let’s start tuning – Garbage collector (2 of 2)  Define tuning goal  Clean all GC parameters from JVM  Run application load tests Good idea to start GC tuning is to: And
  • 17. 17Copyright © 2015 Capgemini and Sogeti. All Rights Reserved HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015 What GC algorithms we can pick up  Serial  Parallel  CMS  G1  C4 from Azul  Shenandoah – similar to G1, useful for large heap, JDK 8,9
  • 19. 19Copyright © 2015 Capgemini and Sogeti. All Rights Reserved HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015 Let’s focus on G1 Garbage collector  G1 is the HotSpot (concurrent and parallel) low-pause collector  Work on it initiated in 2004, first supported release JDK 7u4 (April 2012)  For multi-processor (cores…) machines and large memories  With new memory structure What is G1?  Compact free space without lengthy GC induced pause times  Need more predictable GC pause durations  Do not want to sacrifice a lot of throughput performance  Do not require a much larger Java heap Like official doc states is good for applications that:
  • 20. 20Copyright © 2015 Capgemini and Sogeti. All Rights Reserved HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015 Hot sport GC heap structure (serial, parallel, CMS) vs G1 Hotspot Heat Structure EDEN SO S1 Tenured Permanent Young Generation Old Generation Permanent Generation Survivor Space G1 Heap Allocation O O E E O E O O S E O S O O E E O O O S S O O O O E O E S O Eden Space Survivor Space Old Generation
  • 21. 21Copyright © 2015 Capgemini and Sogeti. All Rights Reserved HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015  Oracle is planning to make G1 as default in JDK 9 JEP-248  G1 is good candidate to be used with concurrent no lock memory cleaning  G1 takes what was best had JRockit JVM like pause targets  G1 is not a source of JVM crashes like CMS in some conditions had  Most of web online java apps have target to use low pauses GC throughput – G1 likes that  G 1 is easier to tune than CMS or parallel  With every new JVM release G1 is performing better that’s why is good idea to use latest release Why take care about G1 GC?
  • 22. 22Copyright © 2015 Capgemini and Sogeti. All Rights Reserved HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015 G1 common myths  Is self tuning one  G1 pause target it’s all you need  G1 will perform on defaults effectively with any object sizes  There is not too much parameters to setup ?
  • 23. 23Copyright © 2015 Capgemini and Sogeti. All Rights Reserved HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015 G1 GC most common problems  Degradation of pause targets which are never met  To fast or too slow promotion from young to old generation  Reference processing takes to much time  Insufficient space to deal with objects by GC • Evacuation failure or to-space exhausted mean no more free regions to promote to the old generation  To much humongous allocations • [G1Ergonomics (Concurrent Cycles) reason: occupancy higher than threshold, occupancy: x bytes, allocation request: x bytes, threshold: x bytes (45.00 %), source: concurrent humongous allocation]  GC CPU utilization is 100%  Stop the World influence end user application servicing freeze SLOW
  • 24. 24Copyright © 2015 Capgemini and Sogeti. All Rights Reserved HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015 What are humongous objects in G1 GC For G1 GC, any object that is more than half a region size is considered a “Humongous object”. Such an object is allocated directly in the old generation into “Humongous regions” To have such objects in old gen is BAD ! IDEA
  • 25. 25Copyright © 2015 Capgemini and Sogeti. All Rights Reserved HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015 G1 calculation example for humongous allocations  Xmx size → 16 GB  By default divided by 200 regions  Region size → 8 MB  Humongous size limit 50% of region size → 4 MB  You need to deal with objects bigger than 6 MB  You need to have bigger region size to get bigger humongous limit  Set -XX:G1HeapRegionSize=16 MB  Your object will fit under 50% limit 8MB and will be no longer humongous
  • 26. 26Copyright © 2015 Capgemini and Sogeti. All Rights Reserved HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015 Best practices in G1 setup  Set occupancy threshold that triggers a marking cycle according to your application needs • -XX:InitiatingHeapOccupancyPercent=45  Adjust pause target limits with respect to served application business needs • Entry rule to adjust maximum pause time limits is 90% on application processing and 10% on GC • -XX:MaxGCPauseMillis=400  Avoid low pause targets like 10 ms because they will be not met for typical JEE application  Speed up marking phase if needed by -XX:ConcGCThreads (default ParallelGCThreads/4)  Start marking cycle earlier by decrease -XX:InitiatingHeapOccupancyPercent
  • 27. 27Copyright © 2015 Capgemini and Sogeti. All Rights Reserved HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015 Best practices in G1 setup – Logging  Thumb rule – always enable G1 logging • You will know what job is made by GC • Setup below flags to have detailed G1 logging – -verbose:gc – to enable GC logging – -Xloggc:/opt/gclogs/gcg1log – to define GC log place – -XX:+PrintGCDateStamps – to have date and uptime details information – -XX:+PrintGCDetails – to have GC phases information – -XX:+PrintAdaptiveSizePolicy – to have ergonomics information – -XX:+PrintTenuringDistribution – to have survivor and age information
  • 28. 28Copyright © 2015 Capgemini and Sogeti. All Rights Reserved HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015 Best practices in G1 setup – Utilization  Reduce number of G1 Full GCs • It is single threaded • G1 + big heap + full GC cycle = super slowness • Put in runtime prams -XX:+PrintAdaptiveSizePolicy to analyze GC logs also on “Full” cycles presence  Prevent situation when heap space is over-utilized • G1 need a free space to operate on objects • If there is not enough space to operate on objects increase heap size
  • 29. 29Copyright © 2015 Capgemini and Sogeti. All Rights Reserved HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015 Best practices in G1 setup – Humongous objects  Prevent to humongous allocations • G1 has policy to split heap into parts (regions) • Default is to divide overall size by 2048 (e.g. 2048 M/2048 = 1M region size) • Region size delimits size humongous object -50% of region size (above example objects bigger than 500 k are humongous) • Adaptive size policy parameter will let you know when this will happen • Adjust max heap and region size -XX:G1HeapRegionSize
  • 30. 30Copyright © 2015 Capgemini and Sogeti. All Rights Reserved HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015 Best practices in G1 setup – Latencies  Enable -XX:+ParallelRefProcEnabled to process week references in parallel • Some application are using weak references (for example session caching) • GC spends a lot of time to try to figure which references can be cleaned up • Remark phase is single-threaded by default unless this option • -XX:+PrintReferenceGC to check details • Typical root cause of having week references are ThreadLocal, RMI, external libraries  Do not user G1 for very low latencies because it still based on “stop the world” idea  Use the latest JDK release to get best/fastest G1 implementation
  • 31. 31Copyright © 2015 Capgemini and Sogeti. All Rights Reserved HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015 Best practices in G1 setup – Space  Setup proper segment size to impact eden/survivor space <=32 MB • You shouldn’t setup NewSpace size because it’s ignored by G1 (except experimental flags) • You can use only ratio based options • Good segment size can give better throughput  Use high waste % of heap to allow effective GC operations like -XX:G1HeapWastePercent=10  Increase memory for "to-space“ if you will see message like below -XX:G1ReservePercent • GC pause (G1 Evacuation Pause) (mixed) (to-space overflow)  Use large pages for bigger than 8GB heaps -XX:+UseLargePages
  • 33. 33Copyright © 2015 Capgemini and Sogeti. All Rights Reserved HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015 Java application servers and threads  All current application servers are using concurrent threads to host deployed applications  Thread configuration model differs per application server • Some of them have generic pools used by all embedded subsystems • Some of them have specific pools specialized to some operations like http pool, asynchronous pool etc. • Some of the are using mixed model with generic pools and couple of specialized  One common thing is that if thread locking will happen it can stop entire processing  Threads health is base knowledge about application server processing condition
  • 34. 34Copyright © 2015 Capgemini and Sogeti. All Rights Reserved HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015 Why to take care about threads This man is not multithreaded  Application server performance depends on threads “health”  Thread pool performance have direct influence on throughput • To much waits on condition by thread means longer response time • To much time taken by thread on finish processing means lower throughput  More threads doesn’t always means good • To much threads to review state means a lot of context switching on OS/CPU level • In worse example system can spent time only on threads review with no time to process things
  • 35. 35Copyright © 2015 Capgemini and Sogeti. All Rights Reserved HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015 Why thread locks happening  Shared resource used by application is not responding like • Database transactions stale and all jdbc threads are taken by waiting to close transaction • File system access has to wait to OS stack response  Synchronized code block are in frequently used part of source  Other threads are depending on locked one • HTTP threads are depended on business processing threads outcome • Business processing threads are depended on source data from database
  • 36. 36Copyright © 2015 Capgemini and Sogeti. All Rights Reserved HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015 How to tune threads  Measure threads behavior by • Making threads dump • Compare couple of thread dumps to see difference/progress  Analyze thread dump on locks and waits presence  Review suspicious code processed by problematic threads  Modify threads settings on application server side if needed like too small pool • Like maxThreads="150" minSpareThreads="25" maxSpareThreads="75“ for Tomcat http connector settings • Like core-threads count="10" per-cpu="20“ for JBoss 7 http subsystem • Like ThreadCount in config.xml for Weblogic HTTP and RMI subsystem  Suggest architecture or code change if required (if it is a source of problems)
  • 38. 38Copyright © 2015 Capgemini and Sogeti. All Rights Reserved HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015 Lab purpose Give overall view what are typical tuning tasks Train skills to gather evidence of performance problems Analyze example application response times, garbage collector logs and thread health Emphasize common tuning patterns for G1 garbage collector 1 2 3 4
  • 39. 39Copyright © 2015 Capgemini and Sogeti. All Rights Reserved HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015 Lab flow tasks  Trace sample application response time problem using zorka tool  Enable G1 garbage collector logging  Analyze collected G1 logs  Tune G1 parameters accordingly to identified bottlenecks  Collect and analyze G1 logs after tuning  Analyze GC throughput  Make heap dump  Analyze heap content  Make thread dump and analyze issues
  • 40. 40Copyright © 2015 Capgemini and Sogeti. All Rights Reserved HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015 Tools used during labs  Oracle Linux  Java 8  WebLogic Application Server + MariaDB  Zorka  Oracle jvisualVM with plugins  GCViewer  IBM Heap Analyzer  Oracle jmap, jstack, jcmd  IBM Thread and Monitor Dump Analyzer for Java
  • 41. 41Copyright © 2015 Capgemini and Sogeti. All Rights Reserved HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015 Resources and materials  Pictures used inside presentation are on Creative Commons licence  Source of data are taken from • Official Oracle Java documentation • Live production experience • Community knowledge
  • 42. 42Copyright © 2015 Capgemini and Sogeti. All Rights Reserved HOL1997 – How to become a winner in the JVM performance tuning battle I 28.10.2015 Contact information Miroslaw Bartecki Solution Architect miroslaw.bartecki@capgemini.com Capgemini Poland Uniwersytecka 13 40-007 Katowice Poland
  • 43. www.sogeti.com www.capgemini.com The information contained in this presentation is proprietary. It is for intermediary use only. Copyright © 2015 Capgemini and Sogeti. All rights reserved. Rightshore® is a trademark belonging to Capgemini. No part of this presentation may be modified, deleted or expanded by any process or means without prior written permission from Capgemini. About Capgemini and Sogeti Now with 180,000 people in over 40 countries, Capgemini is one of the world's foremost providers of consulting, technology and outsourcing services. The Group reported 2014 global revenues of EUR 10.573 billion. Together with its clients, Capgemini creates and delivers business, technology and digital solutions that fit their needs, enabling them to achieve innovation and competitiveness. A deeply multicultural organization, Capgemini has developed its own way of working, the Collaborative Business Experience™, and draws on Rightshore®, its worldwide delivery model. Sogeti is a leading provider of technology and software testing, specializing in Application, Infrastructure and Engineering Services. Sogeti offers cutting-edge solutions around Testing, Business Intelligence & Analytics, Mobile, Cloud and Cyber Security. Sogeti brings together more than 20,000 professionals in 15 countries and has a strong local presence in over 100 locations in Europe, USA and India. Sogeti is a wholly-owned subsidiary of Cap Gemini S.A., listed on the Paris Stock Exchange.