性能优化jinfo

jinfo用来查看正在运行的java程序的扩展参数,甚至支持在运行时修改部分参数。

  jinfo [option] <pid>


C:\Users\cmcc>jinfo -h
Usage:
    jinfo [option] <pid>
        (to connect to running process)
    jinfo [option] <executable <core>
        (to connect to a core file)
    jinfo [option] [server_id@]<remote server IP or hostname>
        (to connect to remote debug server)

where <option> is one of:
    -flag <name>         to print the value of the named VM flag
    -flag [+|-]<name>    to enable or disable the named VM flag
    -flag <name>=<value> to set the named VM flag to the given value
    -flags               to print VM flags
    -sysprops            to print Java system properties
    <no option>          to print both of the above
    -h | -help           to print this help message

C:\Users\cmcc>

实例1、jinfo -flag MaxTenuringThreshold 6268

查看正在运行的进程:::::新生代晋升到老年代对象的最大年龄。
C:\Users\cmcc>jinfo -flag MaxTenuringThreshold 6268
-XX:MaxTenuringThreshold=15
 

实例2、jinfo -flag PrintGCDetails 6268

显示是否打印GC详细信息


C:\Users\cmcc>jinfo -flag PrintGCDetails 6268
-XX:-PrintGCDetails
 

 

实例3、jinfo -flags pid

查看参数名称: 


C:\Users\cmcc>jinfo -flags 6268
Attaching to process ID 6268, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.91-b15
Non-default VM flags: -XX:CICompilerCount=3 -XX:+DisableExplicitGC -XX:InitialHe
apSize=536870912 -XX:+ManagementServer -XX:MaxHeapSize=536870912 -XX:MaxNewSize=
268435456 -XX:MinHeapDeltaBytes=524288 -XX:NewSize=268435456 -XX:OldSize=2684354
56 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseFastUnorderedT
imeStamps -XX:-UseLargePagesIndividualAllocation -XX:+UseParallelGC
Command line:  -Djava.util.logging.config.file=E:\install\tomcat8\apache-tomcat-
8.5.23\conf\logging.properties -Djava.util.logging.manager=org.apache.juli.Class
LoaderLogManager -Xms512m -Xmx512m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:Perm
Size=512m -XX:MaxPermSize=512m -XX:+DisableExplicitGC -Djava.rmi.server.hostname
=127.0.0.1 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=88
88 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authe
nticate=false -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org
.apache.catalina.webresources -Dcatalina.base=E:\install\tomcat8\apache-tomcat-8
.5.23 -Dcatalina.home=E:\install\tomcat8\apache-tomcat-8.5.23 -Djava.io.tmpdir=E
:\install\tomcat8\apache-tomcat-8.5.23\temp
 

实例4、jinfo可以部分修复参数的数值。如GC详细日志。

C:\Users\cmcc>jinfo -flag PrintGCDetails 6268
-XX:-PrintGCDetails

修改:

jinfo -flag +PrintGCDetails 6268

C:\Users\cmcc>jinfo -flag PrintGCDetails 6268
-XX:-PrintGCDetails

C:\Users\cmcc>jinfo -flag +PrintGCDetails 6268

C:\Users\cmcc>
C:\Users\cmcc>jinfo -flag PrintGCDetails 6268
-XX:+PrintGCDetails

 

其他:

-Xss:每个线程的堆栈大小。JDK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K。应根据应用的线程所需内存大小进行适当调整。在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右。一般小的应用, 如果栈不是很深, 应该是128k够用的,大的应用建议使用256k。这个选项对性能影响比较大,需要严格的测试。和threadstacksize选项解释很类似,官方文档似乎没有解释,在论坛中有这样一句话:"-Xss is translated in a VM flag named ThreadStackSize”一般设置这个值就可以了。

-XX:PermSize:设置永久代(perm gen)初始值。默认值为物理内存的1/64。

-XX:MaxPermSize:设置持久代最大值。物理内存的1/4。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值