jvm常用工具-jps

JPS-虚拟机进程状况工具 JVM Processs Status Tool,显示指定系统内,所有HotSpot虚拟机进程。
jps [ options ] [hostid]
jps 可以通过RMI协议查询开启了RMI服务的远程虚拟机进程状态,hostid为RMI注册表中注册的主机名。
参数如下:

  1. -q 只输出LVMID,省略主类的名称
  2. -m 输出虚拟机进程启动时传递给主类main()方法的参数
  3. -l 输出主类全名,如果进程执行的是jar包,则输出jar路径
  4. -v 输出虚拟机进程启动时JVM参数

下面主要详述一下 jps -v
这里写图片描述

参数说明:
-Xms:设置JVM初始堆内存
-Xmx:设置JVM最大内存
-XX:InitialCodeCacheSize and -XX:ReservedCodeCacheSize:
JVM一个有趣的,但往往被忽视的内存区域是“代码缓存”,它是用来存储已编译方法生成的本地代码。代码缓存确实很少引起性能问题,但是一旦发生其影响可能是毁灭性的。如果代码缓存被占满,JVM会打印出一条警告消息,并切换到interpreted-only 模式:JIT编译器被停用,字节码将不再会被编译成机器码。因此,应用程序将继续运行,但运行速度会降低一个数量级,直到有人注意到这个问题。就像其他内存区域一样,我们可以自定义代码缓存的大小。相关的参数是-XX:InitialCodeCacheSize 和-XX:ReservedCodeCacheSize,它们的参数和上面介绍的参数一样,都是字节值。
-XX:+UseConcMarkSweepGC:
打开此开关后,使用ParNew+CMS+Serial Old的收集器组合进行内存回收,Serial Old收集器将作为CMS出现失败后的后备收集器使用。
-XX:SoftRefLRUPolicyMSPerMB=N
这个参数比较有用的,官方解释是:Soft reference在虚拟机中比在客户集中存活的更长一些。其清除频率可以用命令行参数 -XX:SoftRefLRUPolicyMSPerMB=来控制,这可以指定每兆堆空闲空间的软引用保持存活(一旦它不强可达了)的毫秒数,这意味着每兆堆中的空闲空间中的软引用会(在最后一个强引用被回收之后)存活1秒钟。注意,这是一个近似的值,因为软引用只会在垃圾回收时才会被清除,而垃圾回收并不总在发生。系统默认为一秒,我觉得没必要等1秒,客户集中不用就立刻清除,改为 -XX:SoftRefLRUPolicyMSPerMB=0;
-XX:+HeapDumpOnOutOfMemoryError:
命令行参数-XX:+HeapDumpOnOutOfMemoryError是最简单的方式生成内存转储。就像它的名字所说的,它会在内存被用完的时候(发生OOM)进行转储,这在产品环境非常好用。但是由于这个是一种事后转储(已经发生了OOM),它只能提供一种历史性的数据。它会产生一个二进制文件,你可以使用jhat来操作该文件(这个工具在JDK1.6中已经提供,但是可以读取JDK1.5产生的文件)。

其他常用JVM参数:
-XX:NewSize=n:设置年轻代大小
-XX:NewRatio=n:设置年轻代和年老代的比值。如:为3,表示年轻代与年老代比值为1:3,年轻代占整个年轻代年老代和的1/4
-XX:SurvivorRatio=n:年轻代中Eden区与两个Survivor区的比值。注意Survivor区有两个。如:3,表示Eden:Survivor=3:2,一个Survivor区占整个年轻代的1/5
-XX:MaxPermSize=n:设置持久代大小
-XX:+UseSerialGC:虚拟机运行在client模式下默认打开,使用Serial和Serial Old收集器组合回收
-XX:+UseParallelGC:虚拟机在server模式下默认打开,垃圾收集器为Parallel Scavenge+Serial Old的收集器组合进行垃圾回收
-XX:+UseParalledlOldGC:打开此开关以后,使用Parallel Scavenge+Parallel Old进行垃圾回收
-XX:+PertenureSizeThreshold:直接晋升到老年代的对象大小,设置这个参数后,大于这个参数的对象将直接被放入老年代
-XX:MaxTenuringThreshold:晋升到老年代的对象年龄,每个对象在坚持过一次MinirGC之后 年龄会加1,当超过这个参数的值时就会进入老年代
-XX:UseAdaptiveSizePolicy:动态调整java堆中各个区域的大小以及进入老年代的年龄
-XX:HandlePromotionFailure:是否允许分配担保失败,即老年代的剩余空间不足以应付新生代的整个Eden和Surivior区的所有对象都存活的极端情况
-XX:ParallelGCThreads:设置并行GC时进行内存回收的线程数
**-XX:GCTimeRatio:**GC时间占总时间的比率,默认为99%,即允许1%的GC时间,仅仅在使用Parallel Scavenge生效
-XX:MaxGCPauseMills:设置GC的最大停顿时间,仅仅在使用Parallel Scavenge生效
-XX:CMSInitiatingOccupancyFraction:设置CMS收集器在老年代空间被使用多少后触发垃圾收集,默认为68%,仅在使用CMS时生效
-XX:UseCMSCompactAtFullCollection:设置CMS垃圾收集以后是否要进行一次内存碎片整理。仅在CMS使用时生效
-XX:CMSFullGCsBeforeCompaction:设置CMS在进行若干次垃圾收集以后再启动一次内存碎片整理。仅在使用CMS时生效

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值