1.查看当前进程的jvm设置:
jps 之后找到自己java进程的PID, 使用jinfo pid 可以看到:
写道
。。。。。
。。。。。
user.name = libin
java.vm.specification.version = 1.0
sun.java.command = com.yoyosys.datacellplus.api.TestAdmin
java.home = /home/libin/software/jdk1.6.0_31/jre
sun.arch.data.model = 64
user.language = zh
java.specification.vendor = Sun Microsystems Inc.
java.vm.info = mixed mode
java.version = 1.6.0_31
java.ext.dirs = /home/libin/software/jdk1.6.0_31/jre/lib/ext:/usr/java/packages/lib/ext
sun.boot.class.path = /home/libin/software/jdk1.6.0_31/jre/lib/resources.jar:/home/libin/software/jdk1.6.0_31/jre/lib/rt.jar:/home/libin/software/jdk1.6.0_31/jre/lib/sunrsasign.jar:/home/libin/software/jdk1.6.0_31/jre/lib/jsse.jar:/home/libin/software/jdk1.6.0_31/jre/lib/jce.jar:/home/libin/software/jdk1.6.0_31/jre/lib/charsets.jar:/home/libin/software/jdk1.6.0_31/jre/lib/modules/jdk.boot.jar:/home/libin/software/jdk1.6.0_31/jre/classes
java.vendor = Sun Microsystems Inc.
file.separator = /
java.vendor.url.bug = http://java.sun.com/cgi-bin/bugreport.cgi
sun.io.unicode.encoding = UnicodeLittle
sun.cpu.endian = little
sun.desktop = gnome
sun.cpu.isalist =
VM Flags:
-Dfile.encoding=UTF-8
。。。。
。。。。。
user.name = libin
java.vm.specification.version = 1.0
sun.java.command = com.yoyosys.datacellplus.api.TestAdmin
java.home = /home/libin/software/jdk1.6.0_31/jre
sun.arch.data.model = 64
user.language = zh
java.specification.vendor = Sun Microsystems Inc.
java.vm.info = mixed mode
java.version = 1.6.0_31
java.ext.dirs = /home/libin/software/jdk1.6.0_31/jre/lib/ext:/usr/java/packages/lib/ext
sun.boot.class.path = /home/libin/software/jdk1.6.0_31/jre/lib/resources.jar:/home/libin/software/jdk1.6.0_31/jre/lib/rt.jar:/home/libin/software/jdk1.6.0_31/jre/lib/sunrsasign.jar:/home/libin/software/jdk1.6.0_31/jre/lib/jsse.jar:/home/libin/software/jdk1.6.0_31/jre/lib/jce.jar:/home/libin/software/jdk1.6.0_31/jre/lib/charsets.jar:/home/libin/software/jdk1.6.0_31/jre/lib/modules/jdk.boot.jar:/home/libin/software/jdk1.6.0_31/jre/classes
java.vendor = Sun Microsystems Inc.
file.separator = /
java.vendor.url.bug = http://java.sun.com/cgi-bin/bugreport.cgi
sun.io.unicode.encoding = UnicodeLittle
sun.cpu.endian = little
sun.desktop = gnome
sun.cpu.isalist =
VM Flags:
-Dfile.encoding=UTF-8
。。。。
我们可以看到vm中设置的参数,这里如果没有显示说明 采用了jvm的默认设置,这个和你的使用的jvm版本有关。
关于 jvm 的设置:
ant中设置:
写道
<jvmarg value="-Xms2g"/>
<jvmarg value="-Xmx2g"/>
<!--
<jvmarg value="-Xrunhprof:heap=sites,depth=20"/>
<jvmarg value="-Xmx2g"/>
<!--
<jvmarg value="-Xrunhprof:heap=sites,depth=20"/>
配置参考:
写道
java -Xmx3550m -Xms3550m -Xmn2g -Xss128k
-Xmx3550m:设置JVM最大可用内存为3550M。
-Xms3550m:设置JVM促使内存为3550m。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。
-Xmn2g:设置年轻代大小为2G。整个JVM内存大小=年轻代大小 + 年老代大小 + 持久代大小。持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小。此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8。
-Xss128k:设置每个线程的堆栈大小。JDK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K。更具应用的线程所需内存大小进行调整。在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右。
-Xmx3550m:设置JVM最大可用内存为3550M。
-Xms3550m:设置JVM促使内存为3550m。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。
-Xmn2g:设置年轻代大小为2G。整个JVM内存大小=年轻代大小 + 年老代大小 + 持久代大小。持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小。此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8。
-Xss128k:设置每个线程的堆栈大小。JDK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K。更具应用的线程所需内存大小进行调整。在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右。
更加详细信息:
查看 附件,解压后是 chm
jvm性能调优 :下载地址: chm: http://pan.baidu.com/s/1mYaAW