JVM内存监控,详细说明纠结很长时间的问题

垃圾收集器对应我们配置的垃圾回收方式,每种方式的名称会有所不同,当我们没有配置垃圾回收方式时一般为UseParallelGC这种方式
(1)-XX:+UseConcMarkSweepGC 并行的CMS垃圾回收方式
GC名:ParNew ConcurrentMarkSweep
内存池名:

CMS Perm Gen    Par Eden Space    Par Survivor Space    Code Cache    CMS Old Gen

(2)-XX:+UseParallelGC 并行垃圾回收
GC名:

PS Scavenge    PS MarkSweep

内存池名:

PS Survivor Space    PS Perm Gen 	PS Old Gen    PS Eden Space    Code Cache

(3)-XX:+UseParallelOldGC 并行垃圾回收
GC名:

PS Scavenge    PS MarkSweep

内存池名:

PS Survivor Space    PS Perm Gen    PS Old Gen    PS Eden Space    Code Cache

(4)-XX:+UseSerialGC 串行垃圾回收
GC名: Copy MarkSweepCompact
内存池名:

Survivor Space    Perm Gen    Tenured Gen    Eden Space    Code Cache


年轻代:PS Eden Space和PS Survivor Space 
对应配置参数:-Xmn256M -XX:MaxNewSize=256M -XX:SurvivorRatio=2 -XX:MaxTenuringThreshold=5等 
老年代:PS Old Gen 
其值是:Old = Heap – Young={Eden,from,to} 
对应配置参数包括:-Xms512m -Xmx1024m和年轻代的配置参数,from,to的值取决于SurvivorRatio这个参数的设置 
持久代:PS Perm Gen 
对应的配置参数:-XX:PermSize=256M -XX:MaxPermSize=512m 
注:在观察内存的使用情况时首先保证相关的线条不是持续增长的,需要有
对应SO、S1区,Eden,old以及Perm和cache 

回收的动作出现,并且可以估计其回收的内存大小,如果回收始终没有增长的多,特别是内存增长很多的情况,这时系统很可能存在内存泄露。这时我们可能需要通过其他的更详细的工具对系统的类及内存进行分析,如JMap等。