際際滷

際際滷Share a Scribd company logo
Memory
Tuning
Test
JVM 覃覈襴 れ 覲蟆曙 牛 GC Throughput 焔 ろ
2014 @ S/W Archtecture Team
ろ 螳
覦  危襴貅伎 麹   覃覈襴 螻螳 
伎   豌 覦 覃覈襴 譟一 牛 朱襷
殊 焔 レ 螳ロ讌 覲碁.
 覿襯 譯朱 JVM 旧 覲蟆渚覃 蟆郁骸襯 豸′螻,
覿 蠍一   危襴貅伎 peak time 企手 螳
.
危襴貅伎 れ 蟆
 AWS c3.xlarge (4core, 7.5G memory)
 RHEL-6.4_GA-x86_64
 JDK 1.6.0_45
 haksvn-0.3.2
 Subversion, mysql 14.14 Distrib 5.1.73, apache-tomcat-
7.0.47
 覯  危襴貅伎 れ覃 企  覿襯
蟆 覩襦 觜螻 4core 襯 朱 , JDK  
  襦語 螳 襴 一企 1.6 覯朱 .
haksvn 伎 h2 DB  螳 貉るレ 覯  蠍一
mysql  れ .
覿 覦蠍 れ 蟆
 AWS c3.large (2core, 3.75G memory)
 Windows_Server-2012-RTM-English-64Bit
 Apache-jmeter-2.11
100 覈 襦 蠍磯 蟆一蠍一 炎 襦語 譬
蠏碁螻 豕 覃一 覯襦 .
覈 焔
 GC Throughput 95% 伎
general guide line  磯 95殊狩碁 覈襯 れ.
蠏手碓 一危磯 朱 HostSpot JVM 讌 覦 IBM 
螳企 煙  蠍一企. max gc pause
duration/interval  螻ろ讌 .
企 危襴貅伎  覃覈襴
 512M ~ 2G
螳 襷 磯 1~1.5G 蠍一朱 +/- 覯朱ゼ 螻 願 
蠍一企.
覿 伎 (jMeter script 谿語^)
 Number of Threads: 100
 Ramp-up period: 60 seconds
 Thread Loop Count: 20
豐蠍 1覿  企 ろ襴渚 ろ  譬襭. WAS  
豌覿 覿螳 れ願 磯 煙 襷 CPU 螳 
  蟆郁骸襯 詞 覈詩. 豌 渚 覿襯 譯
螻 譬襭 , CPU 螳  蟆 覲願 覲 ろ碁ゼ 
.
2014 @ S/W Archtecture Team 2
JVM Options
-Xmx256m -Xms256m
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-XX:+PrintTenuringDistribution
-XX:+PrintAdaptiveSizePolicy
-Xloggc:/home/ec2-user/haksvn/logs/gc.log
ろ 蟆郁骸
GC Throughput   蟆郁骸  谿 覩語讌 . 10覿
 蠍郁 100 覯 full gc 螳 覦る 蟆 
 覃覈襴 覿譟煙 螳レ煙 .
 Live Data 觜 Old generation 覿譟
 Promote Data 觜 Survivor space 覿譟
 Perm generation 覿譟
煙 伎螳  蟆企 豸′ 豺襯 牛 誤企蓋.
TEST CASE 01
JVM 旧 覓願  讌  企, 蠍磯蓋 覃覈襴 覦 GC  誤蠍  譟郁 覈 苦 襦 heap size
襯 れ. 豢螳襦 GC 蟯 襴壱 旧 k. Garbage collector  吴 れ parallel gc 螳  蟆企 讌蠍 
覯 襦語  4螳襦 parallel 蟆 .
Result
jMeter Throughput 184.3 /sec
Total Time 9m 38s
GC Throughput 79.1%
Number of Full GC 95
Number of GC 1883
Avg Full GC pause 0.376s
Avg GC pause 0.045s
2014 @ S/W Archtecture Team 3
Perm Generation
GC Log襯 牛 豕  Perm generation  一
 . Full gc 伎  譴 豕螳 谿場朱 67.334M 螳 
. 讌蠍 覓企 旧 譯殊 朱襦 perm 豕豺 蠍
覲 螳 64M 64bit 蟆曙 30% 豢螳螳 覩襦 83.2M 螳 
. permgen 覿譟煙  gc throughput 譯 語 
   .
朱 螳企殊語 磯ゴ覃 permgen   1.2
覦~1.5覦 覯襦 ′ . permgen  覲螳 讌 
覃 讌蠍 worst case  螳覃 螳企殊 譴 豕 蠍一
朱 °.
豕/豕 伎 覈 語 伎 れ螻 螳 旧
 豢螳.
-XX:PermSize=82M -XX:MaxPermSize=82M
Live Data & Old Generation
豌 heap螻 oldgen    誤蠍   
 live data 蠍磯ゼ  . Java Performance
 蟠ロ 覯 豌 heap 蠍磯 live data 3~4覦
企 oldgen  2~3覦 企.
Live data full gc    oldgen 蠍磯 豸′  
 豕豺襯 蠍一朱 .
 豌 heap 蠍一 256M 蟠 覯  谿 覩語讌 
. 讌蠍 oldgen 蠍一 170M 豕 蟠ル慨 . 豌
heap 蠍磯ゼ  蠍一 2覦一 512M朱 °る 蟠 覯
  覃, default newRatio  2 企襦
Heap size * ( New Ratio / New Ratio+1 )
螻壱覃 341M   覯 .
-Xmx512M -Xms512M
TEST CASE 01
[PSYoungGen: 3056K->0K(76160K)]
[PSOldGen: 169371K->122923K(174784K)]
172427K->122923K(250944K)
[PSPermGen: 68886K->68881K(69568K)]
, 0.3871880 secs]
[Times: user=0.36 sys=0.00, real=0.39 secs]
Max x1.2 x1.5
Size 67M 82M 101M
[PSYoungGen: 6496K->0K(79104K)]
[PSOldGen: 170654K->134903K(174784K)]
177150K->134903K(253888K)
[PSPermGen: 68883K->68883K(69504K)]
, 0.3599300 secs]
[Times: user=0.33 sys=0.00, real=0.36 secs]
Max x2 x3 x4
Size 161M 320M 480M 641M
2014 @ S/W Archtecture Team 4
JVM Options
-Xmx512m Xms512m
-XX:PermSize=82M -XX:MaxPermSize=82M
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-XX:+PrintTenuringDistribution
-XX:+PrintAdaptiveSizePolicy
-Xloggc:/home/ec2-user/haksvn/logs/gc.log
JMap Check
 旧 れ , JVM  覃覈襴襯 麹讌 jmap 
牛 覲企 蟆 螻磯襦 覦磯   . 豌
 れ襦 伎讌襷 AdaptivePolicy  企
 螳 讌  觜 覲蟆暑 蟆企.
ろ 蟆郁骸
GC Throughput  蟆曙伎朱 譬譟. 蠍磯蓋 螳企 殊語
襷 磯朱 蠍磯蓋 焔レ る 蟆   . 讌襷
覈豺 95%襯 襷譟煙れ . 蠍一 譟郁  
覲伎 . 襾殊 full gc 螳 1覿 襷 覦 Live Data襯
豸′伎  oldgen 蠍磯ゼ ′ 企襦 survivor 蠍
覿譟煙  overflow promote螳 覦 oldgen  螳
谿 蟆 伎  . 襦蠏碁ゼ 覲企 覿 企蓋.
TEST CASE 02
TEST CASE 01 蟆郁骸襯 覿覃 螻壱 JVM 旧 豢螳 ろ碁ゼ . 豌 覃覈襴  覦 蠏語 磯ジ oldgen  
朱, permgen  蠍磯 覈朱 誤. Garbage Collector  蠍一ヾ螻 狩 4螳 parallel gc 企.
Result
jMeter Throughput 197.0 /sec
Total Time 10m 19s
GC Throughput 93.35%
Number of Full GC 10
Number of GC 827
Avg Full GC pause 0.437s
Avg GC pause 0.045s
MaxHeapSize = 536870912 (512.0MB)

PS Old Generation
capacity = 357957632 (341.375MB)

PS Perm Generation
capacity = 85983232 (82.0MB)
2014 @ S/W Archtecture Team 5
Survivor Overflow
GC Log adaptiveSizePolicy 襦蠏碁ゼ 誤企慨覃 overflow
覿襯   .  overflow螳 譯 覦螻 朱 
蟆 覿 promote螳 覦 full gc襯 覦  訖 
 survivor  oldgen 覃覈襴 覲旧襷朱 焔レ襯 
覦.
overflow 覦   survivor 蠍一 eden  蠍 豕
豺  螳.
eden螻 survivor 蠍磯 豺襦 譴  螻 觜襦 譯殊伎 
覩襦 れ  襷豢一  蠍磯ゼ 蟲伎 .
Young = eden + survivor*2
survivor = young/survivorRatio
eden = (young/survivorRatio * surviorRatio-2
  襷豢 螻壱蠍 所 8 覦一襦 蠍磯ゼ 譟一覃
 螳 .
 Young Generation Size: 320M
 Eden Size: 192M
 Survivor Size: 64M
 Survivor Ratio: 5
 豺 襷豢 れ螻 螳 旧 豢螳.
-XX:NewSize=320m
-XX:MaxNewSize=320m
-XX:SurvivorRatio=5
-XX:InitialSurvivorRatio=5
豺  伎 JVM 蠍磯蓋朱 螻牛
adaptiveSizePolicy襯 off 貅 .
-XX:-UseAdaptiveSizePolicy
young  企 襷 豌 heap 蠍磯ゼ れ. 豌
512M伎  newRatio=2 企襦 young 蠍磯 150M 
朱襦 170M  企. 豌 heap 170M  
れ.
-Xmx682m -Xms682m
TEST CASE 02
602.010: [GCAdaptiveSizePolicy::
compute_survivor_space_size_and_thresh:
survived: 7503904
promoted: 1818880
overflow: true
AdaptiveSizeStart: 602.058
collection: 284

Desired survivor size 9043968 bytes, new threshold 1
(max 15)
Survivor Eden
Max Desired Size 57M 182M
2014 @ S/W Archtecture Team 6
JVM Options
-Xmx682m Xms682m
-XX:NewSize=320m -XX:MaxNewSize=320m
-XX:SurvivorRatio=5 -XX:InitialSurvivorRatio=5
-XX:-UseAdaptiveSizePolicy
-XX:PermSize=82M -XX:MaxPermSize=82M
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-XX:+PrintTenuringDistribution
-XX:+PrintAdaptiveSizePolicy
-Xloggc:/home/ec2-user/haksvn/logs/gc.log
JMap Check
螻壱 豺襦 蟆 覦 誤  .
ろ 蟆郁骸
GC Throughput 伎螻  谿企ゼ 覲伎伎 . gc 
 譴企れ朱 焔レ 谿願  蟆朱 覲伎  るジ 螻
 覺 . overflow襯  full gc 襯 譴朱
minor gc  譴企れ朱 minor gc  譬讌 .
overflow 襦 願 覃覈襴 覲旧螳 殊螻 from  to
螳 覲旧螳  企 蟇磯手 豢 螳ロ.
TEST CASE 03
TEST CASE 02 蟆郁骸襯 覿覃 螻壱 JVM 旧 豢螳 ろ碁ゼ . Survivor overflow  磯ジ 覦企 覦 蠏語 
襯 young螻 豌 heap  讀螳貅一朱  れ 旧 讌 蟆 .
Result
jMeter Throughput 208.4 /sec
Total Time 8m 41s
GC Throughput 93.11%
Number of Full GC 1
Number of GC 614
Avg Full GC pause 0.415s
Avg GC pause 0.058sMaxHeapSize = 715128832 (682.0MB)

Eden Space:
capacity = 201326592 (192.0MB)

From Space:
capacity = 67108864 (64.0MB)
2014 @ S/W Archtecture Team 7
Tenuring Threshold
襦蠏語 threshold 螳 讌 . adaptivePolicy螳 
伎 襦蠏語 谿場覲  朱, 企 旧 disabled
 襦蠏語 企 覲願 殊. Parallel GC 
讌 る 覲企 讌襷,    蟆朱 覲
   .  蠍磯蓋 螳 initial  7企 max 15
襦 ″朱襦 朱 螳企殊語 磯 襦語 襦
襷豢磯蓋.
-XX:InitialTenuringThreshold=4
-XX:MaxTenuringThreshold=4
TEST CASE 03
2014 @ S/W Archtecture Team 8
JVM Options
-Xmx682m Xms682m
-XX:NewSize=320m -XX:MaxNewSize=320m
-XX:SurvivorRatio=5 -XX:InitialSurvivorRatio=5
-XX:-UseAdaptiveSizePolicy
-XX:InitialTenuringThreshold=4
-XX:MaxTenuringThreshold=4
-XX:PermSize=82M -XX:MaxPermSize=82M
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-XX:+PrintTenuringDistribution
-XX:+PrintAdaptiveSizePolicy
-Xloggc:/home/ec2-user/haksvn/logs/gc.log
ろ 蟆郁骸
GC Throughput 譟郁 譬讌 蟆 誤  . gc log襯
覿 覲企 豌 promote 蠍郁 企   
企ゼ 牛 tenuringthreshold れ  誤 
. 覿 survivor 覲旧螳 譴企れ朱 覓 企ジ
promote 覦朱 oldgen  伎覲企 觜襴 谿るゴ minor
gc 焔レ 覲伎  蟯谿 trade off 企. minor gc 
襯 譴碁る 譬  譬 蟆郁骸襯 覦   蟆企.
TEST CASE 04
TEST CASE 03  れ 覃覈襴 旧 蠏碁襦 螻 tenuringthreshold 襷  覯 襦語 襷豢 豢螳 ろ碁ゼ
讌.
Result
jMeter Throughput 213.7 /sec
Total Time 8m 26s
GC Throughput 94.32%
Number of Full GC 1
Number of GC 608
Avg Full GC pause 0.363s
Avg GC pause 0.047s
2014 @ S/W Archtecture Team 9
Young Generation
GC Log襯 牛   survivor 蠍磯ゼ 蟲  . 豕
 survived 蠍磯ゼ 譟一 覲企 16M 讌 . 
64M朱 ″ survivor space襯 16M朱 譴碁.
minor gc 襯 譴願鍵 伎 豌 younggen 蠍磯ゼ
れ 覃 survivor 蠍磯 16M朱 伎朱 eden 
蠍磯ゼ 襴磯.
蠍一ヾ younggen 320M朱 ″朱 2覦  れ
螻 螳覃 TEST CASE 002  覦覯 磯  蠍磯ゼ 一
企慨覃  螳 .
 Young Generation Size: 704M
 Eden Size: 672M
 Survivor Size: 16M
 Survivor Ratio: 44
 豺 襷豢 れ螻 螳 旧 豢螳.
-XX:NewSize=704m
-XX:MaxNewSize=704m
-XX:SurvivorRatio=44
-XX:InitialSurvivorRatio=44
young  企 襷 豌 heap 蠍磯ゼ れ. 320M
 704M朱 企朱襦 384M  れ.
-Xmx1066m Xms1066m
TEST CASE 04
142.608: [GCAdaptiveSizePolicy::
compute_survivor_space_size_and_thresh:
survived: 2392064 promoted: 3700256 overflow: false
[PSYoungGen: 202208K->2336K(262144K)]
486579K->290321K(632832K), 0.0162330 secs]
2014 @ S/W Archtecture Team 10
JVM Options
-Xmx1066m Xms1066m
-XX:NewSize=704m -XX:MaxNewSize=704m
-XX:SurvivorRatio=44 -XX:InitialSurvivorRatio=44
-XX:-UseAdaptiveSizePolicy
-XX:InitialTenuringThreshold=4
-XX:MaxTenuringThreshold=4
-XX:PermSize=82M -XX:MaxPermSize=82M
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-XX:+PrintTenuringDistribution
-XX:+PrintAdaptiveSizePolicy
-Xloggc:/home/ec2-user/haksvn/logs/gc.log
JMap Check
螻壱 豺襦 蟆 覦 誤  .
ろ 蟆郁骸
GC Throughput 螻 觜蟲 襷 譬譟朱 覈豺
95%  燕. Full GC   覯 覦讌  
朱 伎 牛  覯 覦貅磯.    2G  
 覦  覃 覈豺襯 燕朱 讌 
蟆郁骸手 螳. 覿 蟆郁骸襯 覿覃  危襴貅伎
蟇一 覈 蟆 eden 襴 襦 焔レ レ   
. 覿覿 螳豌願 讌ъ 覈 譯手鍵襯 螳讌覃 蟲褐 old 襦 螳
螳  蟆れ伎. 襷  heap 蠍磯ゼ 螳讌螻 るジ
 旧れ 誤覃 企 蟆郁骸螳 蟾.
TEST CASE 05
minor gc 襯 譴願鍵 伎 young generation 蠍磯ゼ 瑚 survivor 豕豺 襷 譯手 襾語 覈 eden 朱 
螻 ろ碁ゼ 讌.
Result
jMeter Throughput 218.5 /sec
Total Time 8m 17s
GC Throughput 97.93%
Number of Full GC 1 (螳覦)
Number of GC 173
Avg Full GC pause 0.361s (螳覦)
Avg GC pause 0.057s
MaxHeapSize = 17782016 (1066.0MB)

Eden Space:
capacity = 704643072 (672.0MB)

From Space:
capacity = 16777216 (16.0MB)
2014 @ S/W Archtecture Team 11
JVM Options
-Xmx1066m Xms1066m
-XX:PermSize=82M -XX:MaxPermSize=82M
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-XX:+PrintTenuringDistribution
-XX:+PrintAdaptiveSizePolicy
-Xloggc:/home/ec2-user/haksvn/logs/gc.log
ろ 蟆郁骸
GC Throughput 覈豺 95%螳 る 伎覲企る 譟郁
伎 蟆 誤  . full gc  覯 覦朱 
豌 gc  襷譟. 讌襷 蟆 2% 谿伎企.
TEST CASE 06
襷讌襷 05覯 ろ語 狩 heap 蠍磯 れ螻 JVM  れ 旧 り 觜蟲襯 企蓋. り 蠍磯ゼ 豸′ 觜
襷豢 蟆螻 谿願 讌 ろ 企蓋.
Result
jMeter Throughput 214.6 /sec
Total Time 8m 17s
GC Throughput 96.16%
Number of Full GC 1
Number of GC 355
Avg Full GC pause 0.386s
Avg GC pause 0.056s
2014 @ S/W Archtecture Team 12
JVM Options
-Xmx1g Xms1g
-XX:+UseConcMarkSweepGC
-XX:+CMSIncrementalMode
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-XX:+PrintTenuringDistribution
-XX:+PrintAdaptiveSizePolicy
-Xloggc:/home/ec2-user/haksvn/logs/gc.log
JMap Check
parallel gc oldgen 企麹  940M朱 ″覃
eden螻 survivor  蟲ロ 蟆 ″ 誤  
.
ろ 蟆郁骸
GC Throughput 蟲ロ  譬蟆 .  young 
襦 誤 襷 gc 螳 覦   朱, 危襴貅伎
 轟煙 磯  garbage collector 襯 覲蟆渚り 焔
 譬讌 蟆    .  蟆郁骸 覓企 れ
 256M Parallel GC 覲企  譬 蟆郁骸企.
TEST CASE 07
蟾讌 ろ碁 Garbage Collector 襯 覦蠑語 螻 讌. 襷  譬る CMS 襦 れ 覃 企 蟆郁骸螳 蟾.
CMS襦 旧 豕襯 讌讌 螻 蠍磯蓋 誤朱 ろ碁ゼ 企蓋. 覃覈襴 伎 ろ語 1066M螻 觜訣 1G襦 れ 
.
Result
jMeter Throughput 202.8 /sec
Total Time 8m 42s
GC Throughput 78.52%
Number of Full GC 0
Number of GC 1693
Avg Full GC pause N/A
Avg GC pause 0.066s
MaxHeapSize = 1073741824 (1024.0MB)

Eden Space:
capacity = 69795840 (66.5625MB)

From Space:
capacity = 8716288 (8.3125MB)

concurrent mark-sweep generation:
capacity = 986513408 (940.8125MB)
2014 @ S/W Archtecture Team 13
觜蟲 
Case 01 Case 02 Case 03 Case 04 Case 05 Case 06 Case 07
256M 512M
682M
young 320M
682M
young 320M
threshold 4
1066M
young 704M
threshold 4
1066M
1G
CMS
jMeter
Throughput
184.3 /sec 197.0 /sec 208.4 /sec 213.7 /sec 218.5 /sec 214.6 /sec 202.8 /sec
Total Time 9m 38s 10m 19s 8m 41s 8m 26s 8m 17s 8m 17s 8m 42s
GC
Throughput
79.1% 93.35% 93.11% 94.32% 97.93% 96.16% 78.52%
Number of
Full GC
95 10 1 1 1 (螳覦) 1 0
Number of
GC
1883 827 614 608 173 355 1693
Avg Full GC
pause
0.376s 0.437s 0.415s 0.363s
0.361s (螳
覦)
0.386s N/A
Avg GC
pause
0.045s 0.045s 0.058s 0.047s 0.057s 0.056s 0.066s
 ろ語 覈豺襦 ′ GC Thoughput 蠍一朱 覲伎 蟆曙, Parallel GC 襦  young 觜 譟一 蟆 螳 譬 蟆
螻手 . 豕讌  CMS  ろ 譬讌  蟆郁骸襯 覲伎朱 覈豺襯 燕 蟆覲企  語 譟一 螳螻
蠏殊煙 覿譟煙朱 讌 覈詩.
2014 @ S/W Archtecture Team 14
蟆磯
   豕 危襴貅伎 螳螻 
 螳  企 ろ碁ゼ 讌 覲伎. GC 蟯 
 蟲螳  襦碁 讌伎蠍一 襷 蟆れ 讌
覿譟燕る 蟆   .
谿瑚 襭れ 谿場覲企伎 gc throughput, full gc max pause
time, full gc frequency 煙 焔 蟲 る 蟆 
蟆 螻 企 蟆れ 蟲  蟆 谿 ろ企手
  .
襷 危襴貅伎 焔レ 蠍磯豺 覩語讌 る 襦
朱 牛 襴一錆 襦讌  蟆  
譬 蟆企.
ろ 蟆曙 讌ъ 螳朱 ろ碁ゼ 讌朱, ろ
蟆曙企朱  殊 蟇語 襦蠏碁ゼ 讌螻 覿螻  , 
   讌 蟆讀 伎  蟆企. 蠏碁 碁リ骸 
螳 れ 覦 蠍磯蓋 螳企殊語 磯 豌 heap 蠍磯
  蟆 螳   蟆企.
 ろ碁 危襴貅伎 焔ロレ 覈螳 , る讌
覃覈襴 れ 覲蟆暑 牛 焔 覲襯 蠍  蟆企. 
ロレ 伎朱 WAS れ, OS れ  覈 蟆  
エ覺  蟆企.
2014 @ S/W Archtecture Team 15

More Related Content

What's hot (20)

[135] 梶 求メ求, 梶≡ メ求梶 メ罪=梶 ≡求.
[135] 梶 求メ求, 梶≡ メ求梶 メ罪=梶 ≡求.[135] 梶 求メ求, 梶≡ メ求梶 メ罪=梶 ≡求.
[135] 梶 求メ求, 梶≡ メ求梶 メ罪=梶 ≡求.
NAVER D2
[164] pinpoint
[164] pinpoint[164] pinpoint
[164] pinpoint
NAVER D2
K8s in action chap15
K8s in action chap15K8s in action chap15
K8s in action chap15
Sunggon Song
[231]п釈 メ 求メ求 メ釈梶 メ メ
[231]п釈 メ 求メ求 メ釈梶 メ メ[231]п釈 メ 求メ求 メ釈梶 メ メ
[231]п釈 メ 求メ求 メ釈梶 メ メ
NAVER D2
[D2]thread dump メ求メ午 =
[D2]thread dump メ求メ午 =[D2]thread dump メ求メ午 =
[D2]thread dump メ求メ午 =
NAVER D2
[D2] java ≡梶求求п 梶メ梶 過求 = & pinpoint
[D2] java ≡梶求求п 梶メ梶 過求 = & pinpoint [D2] java ≡梶求求п 梶メ梶 過求 = & pinpoint
[D2] java ≡梶求求п 梶メ梶 過求 = & pinpoint
NAVER D2
Redis
RedisRedis
Redis
DaeMyung Kang
[232] メメ戟過求釈 求 メ≡求求
[232] メメ戟過求釈 求 メ≡求求[232] メメ戟過求釈 求 メ≡求求
[232] メメ戟過求釈 求 メ≡求求
NAVER D2
[234]メ求メ = 梶メ梶 п п釈メ戟
[234]メ求メ = 梶メ梶 п п釈メ戟[234]メ求メ = 梶メ梶 п п釈メ戟
[234]メ求メ = 梶メ梶 п п釈メ戟
NAVER D2
覿一レろ 螳覦 12螳讌 伎手鍵
覿一レろ 螳覦  12螳讌 伎手鍵覿一レろ 螳覦  12螳讌 伎手鍵
覿一レろ 螳覦 12螳讌 伎手鍵
NAVER D2
Cassandra education material
Cassandra education materialCassandra education material
Cassandra education material
Youngki Kim
Cassandra 覃覿蠍 | Devon 2012
Cassandra 覃覿蠍 | Devon 2012Cassandra 覃覿蠍 | Devon 2012
Cassandra 覃覿蠍 | Devon 2012
Daum DNA
[223]rye, a求釈梶 求=梶 梶 п dbms
[223]rye, a求釈梶 求=梶 梶 п dbms[223]rye, a求釈梶 求=梶 梶 п dbms
[223]rye, a求釈梶 求=梶 梶 п dbms
NAVER D2
豺伎磯朱ゼ れ伎 ろ 企慨 with virtualbox
豺伎磯朱ゼ れ伎 ろ 企慨 with virtualbox豺伎磯朱ゼ れ伎 ろ 企慨 with virtualbox
豺伎磯朱ゼ れ伎 ろ 企慨 with virtualbox
る企 覦一磯 ろ 焔 豕 - 4覿. 襦語 危危蠍
る企 覦一磯 ろ 焔 豕 - 4覿. 襦語 危危蠍る企 覦一磯 ろ 焔 豕 - 4覿. 襦語 危危蠍
る企 覦一磯 ろ 焔 豕 - 4覿. 襦語 危危蠍
Minchul Jung
求釈求梶釈メ求梶 airs≡=_求釈求梶
求釈求梶釈メ求梶 airs≡=_求釈求梶求釈求梶釈メ求梶 airs≡=_求釈求梶
求釈求梶釈メ求梶 airs≡=_求釈求梶
NAVER D2
[232] メ釈梶釈メ求=求堰メ=氏 釈≡
[232] メ釈梶釈メ求=求堰メ=氏 釈≡[232] メ釈梶釈メ求=求堰メ=氏 釈≡
[232] メ釈梶釈メ求=求堰メ=氏 釈≡
NAVER D2
Genomics and BigData - case study
Genomics and BigData - case studyGenomics and BigData - case study
Genomics and BigData - case study
Hong ChangBum
Garbage Collection
Garbage CollectionGarbage Collection
Garbage Collection
Samsung Electronics
[211] HBase 求= メ戟≡ 求 メ=釈 (釈≡)
[211] HBase 求= メ戟≡ 求 メ=釈 (釈≡)[211] HBase 求= メ戟≡ 求 メ=釈 (釈≡)
[211] HBase 求= メ戟≡ 求 メ=釈 (釈≡)
NAVER D2
[135] 梶 求メ求, 梶≡ メ求梶 メ罪=梶 ≡求.
[135] 梶 求メ求, 梶≡ メ求梶 メ罪=梶 ≡求.[135] 梶 求メ求, 梶≡ メ求梶 メ罪=梶 ≡求.
[135] 梶 求メ求, 梶≡ メ求梶 メ罪=梶 ≡求.
NAVER D2
[164] pinpoint
[164] pinpoint[164] pinpoint
[164] pinpoint
NAVER D2
K8s in action chap15
K8s in action chap15K8s in action chap15
K8s in action chap15
Sunggon Song
[231]п釈 メ 求メ求 メ釈梶 メ メ
[231]п釈 メ 求メ求 メ釈梶 メ メ[231]п釈 メ 求メ求 メ釈梶 メ メ
[231]п釈 メ 求メ求 メ釈梶 メ メ
NAVER D2
[D2]thread dump メ求メ午 =
[D2]thread dump メ求メ午 =[D2]thread dump メ求メ午 =
[D2]thread dump メ求メ午 =
NAVER D2
[D2] java ≡梶求求п 梶メ梶 過求 = & pinpoint
[D2] java ≡梶求求п 梶メ梶 過求 = & pinpoint [D2] java ≡梶求求п 梶メ梶 過求 = & pinpoint
[D2] java ≡梶求求п 梶メ梶 過求 = & pinpoint
NAVER D2
[232] メメ戟過求釈 求 メ≡求求
[232] メメ戟過求釈 求 メ≡求求[232] メメ戟過求釈 求 メ≡求求
[232] メメ戟過求釈 求 メ≡求求
NAVER D2
[234]メ求メ = 梶メ梶 п п釈メ戟
[234]メ求メ = 梶メ梶 п п釈メ戟[234]メ求メ = 梶メ梶 п п釈メ戟
[234]メ求メ = 梶メ梶 п п釈メ戟
NAVER D2
覿一レろ 螳覦 12螳讌 伎手鍵
覿一レろ 螳覦  12螳讌 伎手鍵覿一レろ 螳覦  12螳讌 伎手鍵
覿一レろ 螳覦 12螳讌 伎手鍵
NAVER D2
Cassandra education material
Cassandra education materialCassandra education material
Cassandra education material
Youngki Kim
Cassandra 覃覿蠍 | Devon 2012
Cassandra 覃覿蠍 | Devon 2012Cassandra 覃覿蠍 | Devon 2012
Cassandra 覃覿蠍 | Devon 2012
Daum DNA
[223]rye, a求釈梶 求=梶 梶 п dbms
[223]rye, a求釈梶 求=梶 梶 п dbms[223]rye, a求釈梶 求=梶 梶 п dbms
[223]rye, a求釈梶 求=梶 梶 п dbms
NAVER D2
豺伎磯朱ゼ れ伎 ろ 企慨 with virtualbox
豺伎磯朱ゼ れ伎 ろ 企慨 with virtualbox豺伎磯朱ゼ れ伎 ろ 企慨 with virtualbox
豺伎磯朱ゼ れ伎 ろ 企慨 with virtualbox
る企 覦一磯 ろ 焔 豕 - 4覿. 襦語 危危蠍
る企 覦一磯 ろ 焔 豕 - 4覿. 襦語 危危蠍る企 覦一磯 ろ 焔 豕 - 4覿. 襦語 危危蠍
る企 覦一磯 ろ 焔 豕 - 4覿. 襦語 危危蠍
Minchul Jung
求釈求梶釈メ求梶 airs≡=_求釈求梶
求釈求梶釈メ求梶 airs≡=_求釈求梶求釈求梶釈メ求梶 airs≡=_求釈求梶
求釈求梶釈メ求梶 airs≡=_求釈求梶
NAVER D2
[232] メ釈梶釈メ求=求堰メ=氏 釈≡
[232] メ釈梶釈メ求=求堰メ=氏 釈≡[232] メ釈梶釈メ求=求堰メ=氏 釈≡
[232] メ釈梶釈メ求=求堰メ=氏 釈≡
NAVER D2
Genomics and BigData - case study
Genomics and BigData - case studyGenomics and BigData - case study
Genomics and BigData - case study
Hong ChangBum
[211] HBase 求= メ戟≡ 求 メ=釈 (釈≡)
[211] HBase 求= メ戟≡ 求 メ=釈 (釈≡)[211] HBase 求= メ戟≡ 求 メ=釈 (釈≡)
[211] HBase 求= メ戟≡ 求 メ=釈 (釈≡)
NAVER D2

Similar to JVM Memory And GC Tuning Test (20)

JVM Memory And GC Tuning Workflow
JVM Memory And GC Tuning WorkflowJVM Memory And GC Tuning Workflow
JVM Memory And GC Tuning Workflow
豪Π
JVM螻 一今
JVM螻 一今 JVM螻 一今
JVM螻 一今
Mungyu Choi
Tajo TPC-H Benchmark Test on AWS
Tajo TPC-H Benchmark Test on AWSTajo TPC-H Benchmark Test on AWS
Tajo TPC-H Benchmark Test on AWS
Gruter
[215]求メ梶釈メ求梶 求戟求п
[215]求メ梶釈メ求梶 求戟求п[215]求メ梶釈メ求梶 求戟求п
[215]求メ梶釈メ求梶 求戟求п
NAVER D2
Java performance and trouble shooting
Java performance and trouble shootingJava performance and trouble shooting
Java performance and trouble shooting
Anna Choi
Hotspot JVM GC_Wh apm
Hotspot JVM GC_Wh apmHotspot JVM GC_Wh apm
Hotspot JVM GC_Wh apm
[OpenStack Days Korea 2016] Track3 - 覦′ UHD ろ碁讌 蟲 覦 ろ
[OpenStack Days Korea 2016] Track3 - 覦′ UHD ろ碁讌 蟲 覦 ろ[OpenStack Days Korea 2016] Track3 - 覦′ UHD ろ碁讌 蟲 覦 ろ
[OpenStack Days Korea 2016] Track3 - 覦′ UHD ろ碁讌 蟲 覦 ろ
OpenStack Korea Community
釈= 1= 2求 戟堰 = =.pptx
釈= 1= 2求 戟堰  = =.pptx釈= 1= 2求 戟堰  = =.pptx
釈= 1= 2求 戟堰 = =.pptx
YeongKiKim1
Geo server 焔ロレ 蠍磯 20111028
Geo server 焔ロレ   蠍磯 20111028Geo server 焔ロレ   蠍磯 20111028
Geo server 焔ロレ 蠍磯 20111028
BJ Jang
Node.js襯 Big Data 襦郁規
Node.js襯  Big Data 襦郁規Node.js襯  Big Data 襦郁規
Node.js襯 Big Data 襦郁規
ByungJoon Lee
IBM JVM GC_Wh apm
IBM JVM GC_Wh apmIBM JVM GC_Wh apm
IBM JVM GC_Wh apm
Image Deep Learning る伎
Image Deep Learning る伎Image Deep Learning る伎
Image Deep Learning る伎
Youngjae Kim
Bag of Tricks for Image Classification with Convolutional Neural Networks (C...
Bag of Tricks for Image Classification  with Convolutional Neural Networks (C...Bag of Tricks for Image Classification  with Convolutional Neural Networks (C...
Bag of Tricks for Image Classification with Convolutional Neural Networks (C...
gohyunwoong
[PHPFest 2013] High performance Javascript
[PHPFest 2013] High performance Javascript[PHPFest 2013] High performance Javascript
[PHPFest 2013] High performance Javascript
phpkorea
Apache kafka performance(throughput) - without data loss and guaranteeing dat...
Apache kafka performance(throughput) - without data loss and guaranteeing dat...Apache kafka performance(throughput) - without data loss and guaranteeing dat...
Apache kafka performance(throughput) - without data loss and guaranteeing dat...
SANG WON PARK
AWS 企殊磯 觜 豕襯 覈覯 襦-AWS Summit Seoul 2017
AWS 企殊磯 觜 豕襯  覈覯 襦-AWS Summit Seoul 2017AWS 企殊磯 觜 豕襯  覈覯 襦-AWS Summit Seoul 2017
AWS 企殊磯 觜 豕襯 覈覯 襦-AWS Summit Seoul 2017
Amazon Web Services Korea
誤 覯れ襷 ろ 企慨蠍 れ.pdf
誤 覯れ襷 ろ  企慨蠍 れ.pdf誤 覯れ襷 ろ  企慨蠍 れ.pdf
誤 覯れ襷 ろ 企慨蠍 れ.pdf
SeoyulYoon
[OpenInfra Days Korea 2018] Day 2 - E1: ルれ企 - OpenStack 譟願鍵
[OpenInfra Days Korea 2018] Day 2 - E1: ルれ企 - OpenStack 譟願鍵[OpenInfra Days Korea 2018] Day 2 - E1: ルれ企 - OpenStack 譟願鍵
[OpenInfra Days Korea 2018] Day 2 - E1: ルれ企 - OpenStack 譟願鍵
OpenStack Korea Community
轟覯 覿ろ れ 誤
轟覯 覿ろ れ 誤轟覯 覿ろ れ 誤
轟覯 覿ろ れ 誤
IMQA
JVM Memory And GC Tuning Workflow
JVM Memory And GC Tuning WorkflowJVM Memory And GC Tuning Workflow
JVM Memory And GC Tuning Workflow
豪Π
JVM螻 一今
JVM螻 一今 JVM螻 一今
JVM螻 一今
Mungyu Choi
Tajo TPC-H Benchmark Test on AWS
Tajo TPC-H Benchmark Test on AWSTajo TPC-H Benchmark Test on AWS
Tajo TPC-H Benchmark Test on AWS
Gruter
[215]求メ梶釈メ求梶 求戟求п
[215]求メ梶釈メ求梶 求戟求п[215]求メ梶釈メ求梶 求戟求п
[215]求メ梶釈メ求梶 求戟求п
NAVER D2
Java performance and trouble shooting
Java performance and trouble shootingJava performance and trouble shooting
Java performance and trouble shooting
Anna Choi
Hotspot JVM GC_Wh apm
Hotspot JVM GC_Wh apmHotspot JVM GC_Wh apm
Hotspot JVM GC_Wh apm
[OpenStack Days Korea 2016] Track3 - 覦′ UHD ろ碁讌 蟲 覦 ろ
[OpenStack Days Korea 2016] Track3 - 覦′ UHD ろ碁讌 蟲 覦 ろ[OpenStack Days Korea 2016] Track3 - 覦′ UHD ろ碁讌 蟲 覦 ろ
[OpenStack Days Korea 2016] Track3 - 覦′ UHD ろ碁讌 蟲 覦 ろ
OpenStack Korea Community
釈= 1= 2求 戟堰 = =.pptx
釈= 1= 2求 戟堰  = =.pptx釈= 1= 2求 戟堰  = =.pptx
釈= 1= 2求 戟堰 = =.pptx
YeongKiKim1
Geo server 焔ロレ 蠍磯 20111028
Geo server 焔ロレ   蠍磯 20111028Geo server 焔ロレ   蠍磯 20111028
Geo server 焔ロレ 蠍磯 20111028
BJ Jang
Node.js襯 Big Data 襦郁規
Node.js襯  Big Data 襦郁規Node.js襯  Big Data 襦郁規
Node.js襯 Big Data 襦郁規
ByungJoon Lee
IBM JVM GC_Wh apm
IBM JVM GC_Wh apmIBM JVM GC_Wh apm
IBM JVM GC_Wh apm
Image Deep Learning る伎
Image Deep Learning る伎Image Deep Learning る伎
Image Deep Learning る伎
Youngjae Kim
Bag of Tricks for Image Classification with Convolutional Neural Networks (C...
Bag of Tricks for Image Classification  with Convolutional Neural Networks (C...Bag of Tricks for Image Classification  with Convolutional Neural Networks (C...
Bag of Tricks for Image Classification with Convolutional Neural Networks (C...
gohyunwoong
[PHPFest 2013] High performance Javascript
[PHPFest 2013] High performance Javascript[PHPFest 2013] High performance Javascript
[PHPFest 2013] High performance Javascript
phpkorea
Apache kafka performance(throughput) - without data loss and guaranteeing dat...
Apache kafka performance(throughput) - without data loss and guaranteeing dat...Apache kafka performance(throughput) - without data loss and guaranteeing dat...
Apache kafka performance(throughput) - without data loss and guaranteeing dat...
SANG WON PARK
AWS 企殊磯 觜 豕襯 覈覯 襦-AWS Summit Seoul 2017
AWS 企殊磯 觜 豕襯  覈覯 襦-AWS Summit Seoul 2017AWS 企殊磯 觜 豕襯  覈覯 襦-AWS Summit Seoul 2017
AWS 企殊磯 觜 豕襯 覈覯 襦-AWS Summit Seoul 2017
Amazon Web Services Korea
誤 覯れ襷 ろ 企慨蠍 れ.pdf
誤 覯れ襷 ろ  企慨蠍 れ.pdf誤 覯れ襷 ろ  企慨蠍 れ.pdf
誤 覯れ襷 ろ 企慨蠍 れ.pdf
SeoyulYoon
[OpenInfra Days Korea 2018] Day 2 - E1: ルれ企 - OpenStack 譟願鍵
[OpenInfra Days Korea 2018] Day 2 - E1: ルれ企 - OpenStack 譟願鍵[OpenInfra Days Korea 2018] Day 2 - E1: ルれ企 - OpenStack 譟願鍵
[OpenInfra Days Korea 2018] Day 2 - E1: ルれ企 - OpenStack 譟願鍵
OpenStack Korea Community
轟覯 覿ろ れ 誤
轟覯 覿ろ れ 誤轟覯 覿ろ れ 誤
轟覯 覿ろ れ 誤
IMQA

JVM Memory And GC Tuning Test

  • 1. Memory Tuning Test JVM 覃覈襴 れ 覲蟆曙 牛 GC Throughput 焔 ろ 2014 @ S/W Archtecture Team
  • 2. ろ 螳 覦 危襴貅伎 麹 覃覈襴 螻螳 伎 豌 覦 覃覈襴 譟一 牛 朱襷 殊 焔 レ 螳ロ讌 覲碁. 覿襯 譯朱 JVM 旧 覲蟆渚覃 蟆郁骸襯 豸′螻, 覿 蠍一 危襴貅伎 peak time 企手 螳 . 危襴貅伎 れ 蟆 AWS c3.xlarge (4core, 7.5G memory) RHEL-6.4_GA-x86_64 JDK 1.6.0_45 haksvn-0.3.2 Subversion, mysql 14.14 Distrib 5.1.73, apache-tomcat- 7.0.47 覯 危襴貅伎 れ覃 企 覿襯 蟆 覩襦 觜螻 4core 襯 朱 , JDK 襦語 螳 襴 一企 1.6 覯朱 . haksvn 伎 h2 DB 螳 貉るレ 覯 蠍一 mysql れ . 覿 覦蠍 れ 蟆 AWS c3.large (2core, 3.75G memory) Windows_Server-2012-RTM-English-64Bit Apache-jmeter-2.11 100 覈 襦 蠍磯 蟆一蠍一 炎 襦語 譬 蠏碁螻 豕 覃一 覯襦 . 覈 焔 GC Throughput 95% 伎 general guide line 磯 95殊狩碁 覈襯 れ. 蠏手碓 一危磯 朱 HostSpot JVM 讌 覦 IBM 螳企 煙 蠍一企. max gc pause duration/interval 螻ろ讌 . 企 危襴貅伎 覃覈襴 512M ~ 2G 螳 襷 磯 1~1.5G 蠍一朱 +/- 覯朱ゼ 螻 願 蠍一企. 覿 伎 (jMeter script 谿語^) Number of Threads: 100 Ramp-up period: 60 seconds Thread Loop Count: 20 豐蠍 1覿 企 ろ襴渚 ろ 譬襭. WAS 豌覿 覿螳 れ願 磯 煙 襷 CPU 螳 蟆郁骸襯 詞 覈詩. 豌 渚 覿襯 譯 螻 譬襭 , CPU 螳 蟆 覲願 覲 ろ碁ゼ . 2014 @ S/W Archtecture Team 2
  • 3. JVM Options -Xmx256m -Xms256m -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintTenuringDistribution -XX:+PrintAdaptiveSizePolicy -Xloggc:/home/ec2-user/haksvn/logs/gc.log ろ 蟆郁骸 GC Throughput 蟆郁骸 谿 覩語讌 . 10覿 蠍郁 100 覯 full gc 螳 覦る 蟆 覃覈襴 覿譟煙 螳レ煙 . Live Data 觜 Old generation 覿譟 Promote Data 觜 Survivor space 覿譟 Perm generation 覿譟 煙 伎螳 蟆企 豸′ 豺襯 牛 誤企蓋. TEST CASE 01 JVM 旧 覓願 讌 企, 蠍磯蓋 覃覈襴 覦 GC 誤蠍 譟郁 覈 苦 襦 heap size 襯 れ. 豢螳襦 GC 蟯 襴壱 旧 k. Garbage collector 吴 れ parallel gc 螳 蟆企 讌蠍 覯 襦語 4螳襦 parallel 蟆 . Result jMeter Throughput 184.3 /sec Total Time 9m 38s GC Throughput 79.1% Number of Full GC 95 Number of GC 1883 Avg Full GC pause 0.376s Avg GC pause 0.045s 2014 @ S/W Archtecture Team 3
  • 4. Perm Generation GC Log襯 牛 豕 Perm generation 一 . Full gc 伎 譴 豕螳 谿場朱 67.334M 螳 . 讌蠍 覓企 旧 譯殊 朱襦 perm 豕豺 蠍 覲 螳 64M 64bit 蟆曙 30% 豢螳螳 覩襦 83.2M 螳 . permgen 覿譟煙 gc throughput 譯 語 . 朱 螳企殊語 磯ゴ覃 permgen 1.2 覦~1.5覦 覯襦 ′ . permgen 覲螳 讌 覃 讌蠍 worst case 螳覃 螳企殊 譴 豕 蠍一 朱 °. 豕/豕 伎 覈 語 伎 れ螻 螳 旧 豢螳. -XX:PermSize=82M -XX:MaxPermSize=82M Live Data & Old Generation 豌 heap螻 oldgen 誤蠍 live data 蠍磯ゼ . Java Performance 蟠ロ 覯 豌 heap 蠍磯 live data 3~4覦 企 oldgen 2~3覦 企. Live data full gc oldgen 蠍磯 豸′ 豕豺襯 蠍一朱 . 豌 heap 蠍一 256M 蟠 覯 谿 覩語讌 . 讌蠍 oldgen 蠍一 170M 豕 蟠ル慨 . 豌 heap 蠍磯ゼ 蠍一 2覦一 512M朱 °る 蟠 覯 覃, default newRatio 2 企襦 Heap size * ( New Ratio / New Ratio+1 ) 螻壱覃 341M 覯 . -Xmx512M -Xms512M TEST CASE 01 [PSYoungGen: 3056K->0K(76160K)] [PSOldGen: 169371K->122923K(174784K)] 172427K->122923K(250944K) [PSPermGen: 68886K->68881K(69568K)] , 0.3871880 secs] [Times: user=0.36 sys=0.00, real=0.39 secs] Max x1.2 x1.5 Size 67M 82M 101M [PSYoungGen: 6496K->0K(79104K)] [PSOldGen: 170654K->134903K(174784K)] 177150K->134903K(253888K) [PSPermGen: 68883K->68883K(69504K)] , 0.3599300 secs] [Times: user=0.33 sys=0.00, real=0.36 secs] Max x2 x3 x4 Size 161M 320M 480M 641M 2014 @ S/W Archtecture Team 4
  • 5. JVM Options -Xmx512m Xms512m -XX:PermSize=82M -XX:MaxPermSize=82M -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintTenuringDistribution -XX:+PrintAdaptiveSizePolicy -Xloggc:/home/ec2-user/haksvn/logs/gc.log JMap Check 旧 れ , JVM 覃覈襴襯 麹讌 jmap 牛 覲企 蟆 螻磯襦 覦磯 . 豌 れ襦 伎讌襷 AdaptivePolicy 企 螳 讌 觜 覲蟆暑 蟆企. ろ 蟆郁骸 GC Throughput 蟆曙伎朱 譬譟. 蠍磯蓋 螳企 殊語 襷 磯朱 蠍磯蓋 焔レ る 蟆 . 讌襷 覈豺 95%襯 襷譟煙れ . 蠍一 譟郁 覲伎 . 襾殊 full gc 螳 1覿 襷 覦 Live Data襯 豸′伎 oldgen 蠍磯ゼ ′ 企襦 survivor 蠍 覿譟煙 overflow promote螳 覦 oldgen 螳 谿 蟆 伎 . 襦蠏碁ゼ 覲企 覿 企蓋. TEST CASE 02 TEST CASE 01 蟆郁骸襯 覿覃 螻壱 JVM 旧 豢螳 ろ碁ゼ . 豌 覃覈襴 覦 蠏語 磯ジ oldgen 朱, permgen 蠍磯 覈朱 誤. Garbage Collector 蠍一ヾ螻 狩 4螳 parallel gc 企. Result jMeter Throughput 197.0 /sec Total Time 10m 19s GC Throughput 93.35% Number of Full GC 10 Number of GC 827 Avg Full GC pause 0.437s Avg GC pause 0.045s MaxHeapSize = 536870912 (512.0MB) PS Old Generation capacity = 357957632 (341.375MB) PS Perm Generation capacity = 85983232 (82.0MB) 2014 @ S/W Archtecture Team 5
  • 6. Survivor Overflow GC Log adaptiveSizePolicy 襦蠏碁ゼ 誤企慨覃 overflow 覿襯 . overflow螳 譯 覦螻 朱 蟆 覿 promote螳 覦 full gc襯 覦 訖 survivor oldgen 覃覈襴 覲旧襷朱 焔レ襯 覦. overflow 覦 survivor 蠍一 eden 蠍 豕 豺 螳. eden螻 survivor 蠍磯 豺襦 譴 螻 觜襦 譯殊伎 覩襦 れ 襷豢一 蠍磯ゼ 蟲伎 . Young = eden + survivor*2 survivor = young/survivorRatio eden = (young/survivorRatio * surviorRatio-2 襷豢 螻壱蠍 所 8 覦一襦 蠍磯ゼ 譟一覃 螳 . Young Generation Size: 320M Eden Size: 192M Survivor Size: 64M Survivor Ratio: 5 豺 襷豢 れ螻 螳 旧 豢螳. -XX:NewSize=320m -XX:MaxNewSize=320m -XX:SurvivorRatio=5 -XX:InitialSurvivorRatio=5 豺 伎 JVM 蠍磯蓋朱 螻牛 adaptiveSizePolicy襯 off 貅 . -XX:-UseAdaptiveSizePolicy young 企 襷 豌 heap 蠍磯ゼ れ. 豌 512M伎 newRatio=2 企襦 young 蠍磯 150M 朱襦 170M 企. 豌 heap 170M れ. -Xmx682m -Xms682m TEST CASE 02 602.010: [GCAdaptiveSizePolicy:: compute_survivor_space_size_and_thresh: survived: 7503904 promoted: 1818880 overflow: true AdaptiveSizeStart: 602.058 collection: 284 Desired survivor size 9043968 bytes, new threshold 1 (max 15) Survivor Eden Max Desired Size 57M 182M 2014 @ S/W Archtecture Team 6
  • 7. JVM Options -Xmx682m Xms682m -XX:NewSize=320m -XX:MaxNewSize=320m -XX:SurvivorRatio=5 -XX:InitialSurvivorRatio=5 -XX:-UseAdaptiveSizePolicy -XX:PermSize=82M -XX:MaxPermSize=82M -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintTenuringDistribution -XX:+PrintAdaptiveSizePolicy -Xloggc:/home/ec2-user/haksvn/logs/gc.log JMap Check 螻壱 豺襦 蟆 覦 誤 . ろ 蟆郁骸 GC Throughput 伎螻 谿企ゼ 覲伎伎 . gc 譴企れ朱 焔レ 谿願 蟆朱 覲伎 るジ 螻 覺 . overflow襯 full gc 襯 譴朱 minor gc 譴企れ朱 minor gc 譬讌 . overflow 襦 願 覃覈襴 覲旧螳 殊螻 from to 螳 覲旧螳 企 蟇磯手 豢 螳ロ. TEST CASE 03 TEST CASE 02 蟆郁骸襯 覿覃 螻壱 JVM 旧 豢螳 ろ碁ゼ . Survivor overflow 磯ジ 覦企 覦 蠏語 襯 young螻 豌 heap 讀螳貅一朱 れ 旧 讌 蟆 . Result jMeter Throughput 208.4 /sec Total Time 8m 41s GC Throughput 93.11% Number of Full GC 1 Number of GC 614 Avg Full GC pause 0.415s Avg GC pause 0.058sMaxHeapSize = 715128832 (682.0MB) Eden Space: capacity = 201326592 (192.0MB) From Space: capacity = 67108864 (64.0MB) 2014 @ S/W Archtecture Team 7
  • 8. Tenuring Threshold 襦蠏語 threshold 螳 讌 . adaptivePolicy螳 伎 襦蠏語 谿場覲 朱, 企 旧 disabled 襦蠏語 企 覲願 殊. Parallel GC 讌 る 覲企 讌襷, 蟆朱 覲 . 蠍磯蓋 螳 initial 7企 max 15 襦 ″朱襦 朱 螳企殊語 磯 襦語 襦 襷豢磯蓋. -XX:InitialTenuringThreshold=4 -XX:MaxTenuringThreshold=4 TEST CASE 03 2014 @ S/W Archtecture Team 8
  • 9. JVM Options -Xmx682m Xms682m -XX:NewSize=320m -XX:MaxNewSize=320m -XX:SurvivorRatio=5 -XX:InitialSurvivorRatio=5 -XX:-UseAdaptiveSizePolicy -XX:InitialTenuringThreshold=4 -XX:MaxTenuringThreshold=4 -XX:PermSize=82M -XX:MaxPermSize=82M -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintTenuringDistribution -XX:+PrintAdaptiveSizePolicy -Xloggc:/home/ec2-user/haksvn/logs/gc.log ろ 蟆郁骸 GC Throughput 譟郁 譬讌 蟆 誤 . gc log襯 覿 覲企 豌 promote 蠍郁 企 企ゼ 牛 tenuringthreshold れ 誤 . 覿 survivor 覲旧螳 譴企れ朱 覓 企ジ promote 覦朱 oldgen 伎覲企 觜襴 谿るゴ minor gc 焔レ 覲伎 蟯谿 trade off 企. minor gc 襯 譴碁る 譬 譬 蟆郁骸襯 覦 蟆企. TEST CASE 04 TEST CASE 03 れ 覃覈襴 旧 蠏碁襦 螻 tenuringthreshold 襷 覯 襦語 襷豢 豢螳 ろ碁ゼ 讌. Result jMeter Throughput 213.7 /sec Total Time 8m 26s GC Throughput 94.32% Number of Full GC 1 Number of GC 608 Avg Full GC pause 0.363s Avg GC pause 0.047s 2014 @ S/W Archtecture Team 9
  • 10. Young Generation GC Log襯 牛 survivor 蠍磯ゼ 蟲 . 豕 survived 蠍磯ゼ 譟一 覲企 16M 讌 . 64M朱 ″ survivor space襯 16M朱 譴碁. minor gc 襯 譴願鍵 伎 豌 younggen 蠍磯ゼ れ 覃 survivor 蠍磯 16M朱 伎朱 eden 蠍磯ゼ 襴磯. 蠍一ヾ younggen 320M朱 ″朱 2覦 れ 螻 螳覃 TEST CASE 002 覦覯 磯 蠍磯ゼ 一 企慨覃 螳 . Young Generation Size: 704M Eden Size: 672M Survivor Size: 16M Survivor Ratio: 44 豺 襷豢 れ螻 螳 旧 豢螳. -XX:NewSize=704m -XX:MaxNewSize=704m -XX:SurvivorRatio=44 -XX:InitialSurvivorRatio=44 young 企 襷 豌 heap 蠍磯ゼ れ. 320M 704M朱 企朱襦 384M れ. -Xmx1066m Xms1066m TEST CASE 04 142.608: [GCAdaptiveSizePolicy:: compute_survivor_space_size_and_thresh: survived: 2392064 promoted: 3700256 overflow: false [PSYoungGen: 202208K->2336K(262144K)] 486579K->290321K(632832K), 0.0162330 secs] 2014 @ S/W Archtecture Team 10
  • 11. JVM Options -Xmx1066m Xms1066m -XX:NewSize=704m -XX:MaxNewSize=704m -XX:SurvivorRatio=44 -XX:InitialSurvivorRatio=44 -XX:-UseAdaptiveSizePolicy -XX:InitialTenuringThreshold=4 -XX:MaxTenuringThreshold=4 -XX:PermSize=82M -XX:MaxPermSize=82M -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintTenuringDistribution -XX:+PrintAdaptiveSizePolicy -Xloggc:/home/ec2-user/haksvn/logs/gc.log JMap Check 螻壱 豺襦 蟆 覦 誤 . ろ 蟆郁骸 GC Throughput 螻 觜蟲 襷 譬譟朱 覈豺 95% 燕. Full GC 覯 覦讌 朱 伎 牛 覯 覦貅磯. 2G 覦 覃 覈豺襯 燕朱 讌 蟆郁骸手 螳. 覿 蟆郁骸襯 覿覃 危襴貅伎 蟇一 覈 蟆 eden 襴 襦 焔レ レ . 覿覿 螳豌願 讌ъ 覈 譯手鍵襯 螳讌覃 蟲褐 old 襦 螳 螳 蟆れ伎. 襷 heap 蠍磯ゼ 螳讌螻 るジ 旧れ 誤覃 企 蟆郁骸螳 蟾. TEST CASE 05 minor gc 襯 譴願鍵 伎 young generation 蠍磯ゼ 瑚 survivor 豕豺 襷 譯手 襾語 覈 eden 朱 螻 ろ碁ゼ 讌. Result jMeter Throughput 218.5 /sec Total Time 8m 17s GC Throughput 97.93% Number of Full GC 1 (螳覦) Number of GC 173 Avg Full GC pause 0.361s (螳覦) Avg GC pause 0.057s MaxHeapSize = 17782016 (1066.0MB) Eden Space: capacity = 704643072 (672.0MB) From Space: capacity = 16777216 (16.0MB) 2014 @ S/W Archtecture Team 11
  • 12. JVM Options -Xmx1066m Xms1066m -XX:PermSize=82M -XX:MaxPermSize=82M -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintTenuringDistribution -XX:+PrintAdaptiveSizePolicy -Xloggc:/home/ec2-user/haksvn/logs/gc.log ろ 蟆郁骸 GC Throughput 覈豺 95%螳 る 伎覲企る 譟郁 伎 蟆 誤 . full gc 覯 覦朱 豌 gc 襷譟. 讌襷 蟆 2% 谿伎企. TEST CASE 06 襷讌襷 05覯 ろ語 狩 heap 蠍磯 れ螻 JVM れ 旧 り 觜蟲襯 企蓋. り 蠍磯ゼ 豸′ 觜 襷豢 蟆螻 谿願 讌 ろ 企蓋. Result jMeter Throughput 214.6 /sec Total Time 8m 17s GC Throughput 96.16% Number of Full GC 1 Number of GC 355 Avg Full GC pause 0.386s Avg GC pause 0.056s 2014 @ S/W Archtecture Team 12
  • 13. JVM Options -Xmx1g Xms1g -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintTenuringDistribution -XX:+PrintAdaptiveSizePolicy -Xloggc:/home/ec2-user/haksvn/logs/gc.log JMap Check parallel gc oldgen 企麹 940M朱 ″覃 eden螻 survivor 蟲ロ 蟆 ″ 誤 . ろ 蟆郁骸 GC Throughput 蟲ロ 譬蟆 . young 襦 誤 襷 gc 螳 覦 朱, 危襴貅伎 轟煙 磯 garbage collector 襯 覲蟆渚り 焔 譬讌 蟆 . 蟆郁骸 覓企 れ 256M Parallel GC 覲企 譬 蟆郁骸企. TEST CASE 07 蟾讌 ろ碁 Garbage Collector 襯 覦蠑語 螻 讌. 襷 譬る CMS 襦 れ 覃 企 蟆郁骸螳 蟾. CMS襦 旧 豕襯 讌讌 螻 蠍磯蓋 誤朱 ろ碁ゼ 企蓋. 覃覈襴 伎 ろ語 1066M螻 觜訣 1G襦 れ . Result jMeter Throughput 202.8 /sec Total Time 8m 42s GC Throughput 78.52% Number of Full GC 0 Number of GC 1693 Avg Full GC pause N/A Avg GC pause 0.066s MaxHeapSize = 1073741824 (1024.0MB) Eden Space: capacity = 69795840 (66.5625MB) From Space: capacity = 8716288 (8.3125MB) concurrent mark-sweep generation: capacity = 986513408 (940.8125MB) 2014 @ S/W Archtecture Team 13
  • 14. 觜蟲 Case 01 Case 02 Case 03 Case 04 Case 05 Case 06 Case 07 256M 512M 682M young 320M 682M young 320M threshold 4 1066M young 704M threshold 4 1066M 1G CMS jMeter Throughput 184.3 /sec 197.0 /sec 208.4 /sec 213.7 /sec 218.5 /sec 214.6 /sec 202.8 /sec Total Time 9m 38s 10m 19s 8m 41s 8m 26s 8m 17s 8m 17s 8m 42s GC Throughput 79.1% 93.35% 93.11% 94.32% 97.93% 96.16% 78.52% Number of Full GC 95 10 1 1 1 (螳覦) 1 0 Number of GC 1883 827 614 608 173 355 1693 Avg Full GC pause 0.376s 0.437s 0.415s 0.363s 0.361s (螳 覦) 0.386s N/A Avg GC pause 0.045s 0.045s 0.058s 0.047s 0.057s 0.056s 0.066s ろ語 覈豺襦 ′ GC Thoughput 蠍一朱 覲伎 蟆曙, Parallel GC 襦 young 觜 譟一 蟆 螳 譬 蟆 螻手 . 豕讌 CMS ろ 譬讌 蟆郁骸襯 覲伎朱 覈豺襯 燕 蟆覲企 語 譟一 螳螻 蠏殊煙 覿譟煙朱 讌 覈詩. 2014 @ S/W Archtecture Team 14
  • 15. 蟆磯 豕 危襴貅伎 螳螻 螳 企 ろ碁ゼ 讌 覲伎. GC 蟯 蟲螳 襦碁 讌伎蠍一 襷 蟆れ 讌 覿譟燕る 蟆 . 谿瑚 襭れ 谿場覲企伎 gc throughput, full gc max pause time, full gc frequency 煙 焔 蟲 る 蟆 蟆 螻 企 蟆れ 蟲 蟆 谿 ろ企手 . 襷 危襴貅伎 焔レ 蠍磯豺 覩語讌 る 襦 朱 牛 襴一錆 襦讌 蟆 譬 蟆企. ろ 蟆曙 讌ъ 螳朱 ろ碁ゼ 讌朱, ろ 蟆曙企朱 殊 蟇語 襦蠏碁ゼ 讌螻 覿螻 , 讌 蟆讀 伎 蟆企. 蠏碁 碁リ骸 螳 れ 覦 蠍磯蓋 螳企殊語 磯 豌 heap 蠍磯 蟆 螳 蟆企. ろ碁 危襴貅伎 焔ロレ 覈螳 , る讌 覃覈襴 れ 覲蟆暑 牛 焔 覲襯 蠍 蟆企. ロレ 伎朱 WAS れ, OS れ 覈 蟆 エ覺 蟆企. 2014 @ S/W Archtecture Team 15