oow2013 ef final_4_3

18

Upload: euegene-fedorenko

Post on 29-Nov-2014

836 views

Category:

Technology


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Oow2013 ef final_4_3
Page 2: Oow2013 ef final_4_3

Eugene Fedorenkoadfpractice-fedor.blogspot.com 2

About me

Page 3: Oow2013 ef final_4_3

Eugene Fedorenkoadfpractice-fedor.blogspot.com 3

Performance Testing

Base Oracle Solution Center. Linlithgow, Scotland, UK.

Application JetB2. Core Banking System.ADF Faces, ADF Controller, ADF Model, ADF BCJDeveloper R2 11.1.2.3.0

Application ServerOracle WebLogic 10.3.6Jrockit VM R28.2.5-4.1.0

TargetsMaximum number of users per JVM, per BoxMinimum number of database connectionsDetect memory leaksCheck application scalabilityTune JVM to get the best response timeGet 6000 simultaneously working users

DatabaseOracle RDBMS 11g R2

Page 4: Oow2013 ef final_4_3

Eugene Fedorenkoadfpractice-fedor.blogspot.com 4

Tools

JRockit Mission Control Online JVM monitoring and flight recording

JRockit Memory Leak Detector Analyzing heap contentsDetecting memory leaks

Oracle Enterprise Manager Cloud Control Monitoring database connectionsDetecting heavy SQL queries

Oracle Diagnostic Log Analyzer Exploring request structure and SQL executions

Oracle Application Testing Suite Load generatingResponse time monitoring

NMON Gathering operating system statistics

Page 5: Oow2013 ef final_4_3

Eugene Fedorenkoadfpractice-fedor.blogspot.com 5

Mission

Page 6: Oow2013 ef final_4_3

Eugene Fedorenkoadfpractice-fedor.blogspot.com 6

Let’s go!

Page 7: Oow2013 ef final_4_3

Eugene Fedorenkoadfpractice-fedor.blogspot.com 7

The Heap

-Xms

0

-Xmx

Hard Reference Soft Reference Weak Reference

java –Xms:4G –Xmx:8G

Page 8: Oow2013 ef final_4_3

Eugene Fedorenkoadfpractice-fedor.blogspot.com 8

Garbage Collector

Mark

Sweep

Reachable Softly Reachable Weakly Reachable Garbage

0

-Xmx

Page 9: Oow2013 ef final_4_3

Eugene Fedorenkoadfpractice-fedor.blogspot.com 9

Parallel Garbage Collector

Frequent garbage collections (every ~40s)Long pauses (~8s and longer)Frequent and huge peaks in response time line

Page 10: Oow2013 ef final_4_3

Eugene Fedorenkoadfpractice-fedor.blogspot.com 10

Generational Parallel Garbage CollectorNursery (Young Generation) Tenured (Old Generation)

Young Collection

Old Collection

Reachable Softly Reachable Weakly Reachable Garbage

0

-Xns -Xmx

Page 11: Oow2013 ef final_4_3

Eugene Fedorenkoadfpractice-fedor.blogspot.com 11

Generational Parallel Garbage Collector

Frequent young GC (every ~8s). Rare old GC (every ~3min) Short pauses for young GC (<300ms). Quite long pauses for old GC (~3.5s-4s).Infrequent but still high peaks in response time line

Page 12: Oow2013 ef final_4_3

Eugene Fedorenkoadfpractice-fedor.blogspot.com 12

2. Concurrent Marking

Weakly ReachableSoftly Reachable

Concurrent Garbage Collector: Mark

1. Initial Marking

3. Precleaning

4. Final Marking

Reachable Garbage

-Xns

-Xmx

Page 13: Oow2013 ef final_4_3

Eugene Fedorenkoadfpractice-fedor.blogspot.com 13

Concurrent Garbage Collector: Sweep

1. Sweep first half

2. Switch halves

3. Sweep second half

4. Synchronize

Reachable Softly Reachable Weakly Reachable Garbage

-Xns

-Xmx

Page 14: Oow2013 ef final_4_3

Eugene Fedorenkoadfpractice-fedor.blogspot.com 14

Generational Concurrent Garbage Collector

Frequent young GC (every ~8s). Rare old GC (every ~2min 40s) Short pauses for young GC (<300ms). Short pauses for old GC (<700ms).Long old GC duration (~12s)

Page 15: Oow2013 ef final_4_3

Eugene Fedorenkoadfpractice-fedor.blogspot.com 15

Lessons

Parallel Garbage Collector High performance between collectionsShort collection duration but long pausesGood for applications with high throughput requirement. Batch processing

Concurrent Garbage Collector Sharing CPU between GC and Java threadsLong collection duration but short pausesGood for applications sensitive to long pauses. Transaction based systems

Single-generational Garbage CollectorAll garbage is collected at onceGood for set of stable long living objects

Two-generational Garbage CollectorShort-living objects live shortGood for applications with large number of temporary objects

Page 16: Oow2013 ef final_4_3

Eugene Fedorenkoadfpractice-fedor.blogspot.com 16

What is good for ADF?

Sensitive to long pauses?

Yes No

A lot

of

tem

pora

ry o

bje

cts

?

No

Yes

Generational Concurrent

-Xgc:gencon

Single Concurrent

-Xgc:singlecon

Generational Parallel

-Xgc:genpar

Single Parallel

-Xgc:singlepar

Page 17: Oow2013 ef final_4_3

Eugene Fedorenkoadfpractice-fedor.blogspot.com 17

Useful Links

Understanding Memory Managementhttp://docs.oracle.com/cd/E13150_01/jrockit_jvm/jrockit/geninfo/diagnos/garbage_collect.html

Tuning the Memory Management Systemhttp://docs.oracle.com/cd/E13150_01/jrockit_jvm/jrockit/geninfo/diagnos/memman.html

JRockit GC in Actionhttp://java.dzone.com/articles/jrockit-gc-action

Page 18: Oow2013 ef final_4_3

Eugene Fedorenkoadfpractice-fedor.blogspot.com 18

Mission Completed