首页 > 编程语言 > 详细

java-jvm usage analytics

时间:2015-07-16 02:18:36      阅读:382      评论:0      收藏:0      [点我收藏+]

? as mentioned in title,i will make ?analytics between two tomcats which both running a solr app.

?

1.cases comparison

2.analytics

?

1.cases comparison

tomcat Xms Xmx Xmn NewRatio

SurvivorRatio

mem used by

checking ‘top-RES‘ item

resulted: actual new size

A 6g 8g 1.5g - 6 4.1g 1.5g
B 20g 20g - 4 6 4.9g 4g
? ? ? ? ? ? ? ?

?these are the jvm allocation by checking ‘jmap -heap pid‘

?tomcat A

Heap Configuration:
   MinHeapFreeRatio = 40
   MaxHeapFreeRatio = 70
   MaxHeapSize      = 8589934592 (8192.0MB)
   NewSize          = 1572864000 (1500.0MB)
   MaxNewSize       = 1572864000 (1500.0MB)
   OldSize          = 5439488 (5.1875MB)
   NewRatio         = 4
   SurvivorRatio    = 6
   PermSize         = 67108864 (64.0MB)
   MaxPermSize      = 104857600 (100.0MB)

Heap Usage:
New Generation (Eden + 1 Survivor Space):
   capacity = 1376256000 (1312.5MB)
   used     = 782190664 (745.9551467895508MB)
   free     = 594065336 (566.5448532104492MB)
   56.83467785063244% used
Eden Space:
   capacity = 1179648000 (1125.0MB)
   used     = 738672576 (704.4530639648438MB)
   free     = 440975424 (420.54693603515625MB)
   62.61805013020833% used
From Space:
   capacity = 196608000 (187.5MB)
   used     = 43518088 (41.50208282470703MB)
   free     = 153089912 (145.99791717529297MB)
   22.134444173177084% used
To Space:
   capacity = 196608000 (187.5MB)
   used     = 0 (0.0MB)
   free     = 196608000 (187.5MB)
   0.0% used
concurrent mark-sweep generation:
   capacity = 4869586944 (4644.0MB)
   used     = 2786356080 (2657.2762298583984MB)
   free     = 2083230864 (1986.7237701416016MB)
   57.2195570598277% used
Perm Generation:
   capacity = 67108864 (64.0MB)
   used     = 37844912 (36.09172058105469MB)
   free     = 29263952 (27.908279418945312MB)
   56.39331340789795% used

?

?tomcat B

Heap Configuration:
   MinHeapFreeRatio = 40
   MaxHeapFreeRatio = 70
   MaxHeapSize      = 21474836480 (20480.0MB)
   NewSize          = 1310720 (1.25MB)
   MaxNewSize       = 17592186044415 MB
   OldSize          = 5439488 (5.1875MB)
   NewRatio         = 4
   SurvivorRatio    = 6
   PermSize         = 67108864 (64.0MB)
   MaxPermSize      = 104857600 (100.0MB)

Heap Usage:
New Generation (Eden + 1 Survivor Space):
   capacity = 3758096384 (3584.0MB)
   used     = 1372982952 (1309.3785781860352MB)
   free     = 2385113432 (2274.621421813965MB)
   36.53400050742285% used
Eden Space:
   capacity = 3221225472 (3072.0MB)
   used     = 1277111448 (1217.948387145996MB)
   free     = 1944114024 (1854.051612854004MB)
   39.646757394075394% used
From Space:
   capacity = 536870912 (512.0MB)
   used     = 95871504 (91.43019104003906MB)
   free     = 440999408 (420.56980895996094MB)
   17.85745918750763% used
To Space:
   capacity = 536870912 (512.0MB)
   used     = 0 (0.0MB)
   free     = 536870912 (512.0MB)
   0.0% used
concurrent mark-sweep generation:
   capacity = 17179869184 (16384.0MB)
   used     = 1514222648 (1444.0752487182617MB)
   free     = 15665646536 (14939.924751281738MB)
   8.813935844227672% used
Perm Generation:
   capacity = 67108864 (64.0MB)
   used     = 37938264 (36.180747985839844MB)
   free     = 29170600 (27.819252014160156MB)
   56.532418727874756% used

?

2.analytics

? A.from all of info above,we know that :

   RES~new gen-size + one survivor-size+ old gen‘s used-size + perm used= new eden + 2* survivor + old gen‘s used + perm used

? ?so the above tomcat A‘s RES = 4.1g ~?1312.5MB +?187.5MB + 2657mb + 36mb= 4193mb?

? ?that means the total mem used is always couted by base part say ‘new size‘ ,added by actual used old size and used perm size.in fact it‘s reasonable.

? B.the Xmx is the large size of the heap ,so jvm does not always reach it,but what about Xms?is it the min pre-allocated size guaranteed by jvm ?

? nope,we know,the RES is far less than it.

? C.jvm misc gen allcotion for mem.the tomcat B ‘s ‘actual new size‘ is 4g >> 1.5g which tomcat A used,but u will find that the actual used mem size is less than the A.

? A current used mem:704+41+2657 ~2.4g

? B ‘s one:1217+91 +1444 ~ 2.7g

? ?that means 2.7-2.4=300mb objects have been destroyed in ‘new area‘;

? ?and the old size used:A/2657 ~ 2 * B/1444, that means the Tomcat A jvm will first come into CMS compared to B;and of course,the A ‘s new-collection-time is much less than B,about half of time saved,say ~25ms .

?

?

java-jvm usage analytics

原文:http://leibnitz.iteye.com/blog/2227489

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!