配置
-Xms128m #JVM初始分配的堆内存
-Xmx512m #JVM最大允许分配的堆内存,按需分配
-XX:PermSize=64M #JVM初始分配的非堆内存
-XX:MaxPermSize=128M #JVM最大允许分配的非堆内存,按需分配
远程调试
Jdk1.7之前: -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=8000,suspend=n
jdk1.7之后: -agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n
jconsole,VisualVM,JMC 监控配置(rmi)
记录下服务器历史的GC
jvm shut down时,输出dump文件
JVM 内存区域大小参数设置
设置新生代代对象进入老年代的年龄
-XX:MaxTenuringThreshold=15
如果设置为0的话,则新生代对象不经过Survivor区,直接进入老年代。对于老年代比较多的应用,可以提高效率
如果将此值设置为一个较大值,则新生代对象会在Survivor区进行多次复制,这样可以增加对象再新生代的存活时间,增加在新生代即被回收的概论
jvm诊断
jinfo(运行环境)
jstat -gc(GC监视)
栈
jps(java进程)/jstack(线程状态)同Kill -3
堆
jmap -heap(堆信息)/jmap -histo:live(对象内存分布)/jmap -dump(内存镜像)
GC
历史gc过程留存 -Xloggc:webapps/sys/gc.log
工具
jconsole ,VisualVM,JMC,jprofile|GCViewer
JVM
oracle
HotSpot VM
Sun JDK和OpenJDK中所带的虚拟机
参考
什么是HotSpot VM & 深入理解Java虚拟机 JVM - blcblc - 博客园
三大Java 虚拟机垃圾回收机制的比较(HotSpot, JRockit, IBM JVM)
JVM有4垃圾回收器
Serial Collector[默认]:序列垃圾回收器
Parallel Collector:并发垃圾回收器
Parallel Compacting Collector:并行压缩垃圾回收器
Concurrent Mark-Sweep (CMS) Collector:并发标志清除垃圾回收器