JVM的那些常用参数以及命令

本文介绍了JVM的各类参数,包括调试参数、内存类和GC类。调试参数涉及打印启动参数、GC日志等;内存类讨论了新生代、老年代大小设置;GC类讲解了Serial、ParNew、Parallel Scavenge、CMS和G1等垃圾回收器的工作原理和组合使用。同时,文中还提到了不同JDK版本下的常用JVM参数组合。
摘要由CSDN通过智能技术生成

简介

java启动参数共分为三类

  • 其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容
  • 其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容
  • 其三是非Stable参数(-XX),此类参数各个jvm实现会有所不同,将来可能会随时取消,需要慎重使用

调试参数

打印启动参数

可以查看默认参数

java -XX:+PrintCommandLineFlags -version

打印GC日志

不要用XX:+UseGCLogFileRotation,这个会丢失旧的日志文件,而且重启会覆盖当前日志文件:

-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/home/GCEASY/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=20M

应该用下面这个

-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/home/GCEASY/gc-%t.log

打印ClassLoader日志

这个参数会在控制台打印所有类加载/卸载信息

-XX:+TraceClassLoading -XX:+TraceClassUnloading

OOM时Dump内存

 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/crashes/my-heap-dump.hprof

OOM时执行脚本(比如重启)

 -XX:OnOutOfMemoryError=/scripts/restart-myapp.sh

打印JIT时间

-XX:-CITime

方法被编译时打印相关信息

-XX:-PrintCompilation

内存类

JVM设置内存的单位默认是字节(不加单位的情况下)。

也可以在大小后面增加单位,例如:

-Xmn256m
-Xmn262144k
-Xmn268435456

设置初始新生代大小

-XX:NewSize=2G(也可以是2M)

设置最大新生代大小

-XX:MaxNewSize=2G(也可以是2M)

注意:-Xmn优先级大于-XX:NewRatio

设置Eden/Survivor比例

表示两

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值