美文网首页
JVM进程常用参数

JVM进程常用参数

作者: 枯木风 | 来源:发表于2018-11-30 10:29 被阅读0次

    查看JDK参数

    查看并行收集线程
    /usr/jdk1.8.0_101/bin/java -server -Xmx1024m -Xms1024m -XX:+UseConcMarkSweepGC -XX:+PrintFlagsFinal -version| grep ParallelGCThreads

    内存控制参数

    参数名 说明
    -Xms128m 初始的内存
    -Xmx256m 最大堆内存
    -Xmn128m 设置新生代内存,和NewRatio有相同的作用,可以不用设置
    -Xss256k 线程栈Stack Space,一般情况下可以给256k,实测最小228k,JDK默认给的是1MB的内存
    如果多层递归发现StackOverFlow,可以适当调大,调小这个参数可以开启更多的线程

    -XX参数

    -XX后面有部分参数可以跟+或者-,+表示开启,-表示禁用
    比如
    -XX:+UseGCOverheadLimit,就表示GC时间过长抛OOM
    -XX:-UseGCOverheadLimit,就表示GC时间过长不要抛OOM

    参数名 说明
    -XX:PermSize=64m 初始的永久区大小,<=JDK7可用
    -XX:MaxMaxPermSize=128m 最大的永久区大小,<=JDK7可用
    -XX:MetaspaceSize=64m 初始的永久区大小,>=JDK8可用
    -XX:MaxMetaspaceSize=256m 最大的永久区大小,>=JDK8可用
    -XX:NewRatio=1 新生代占1/2,默认情况,新生代占1/3,公式为1/(1+n)
    -XX:-UseBiasedLocking 取消偏向锁,在synchronized上的 优化,取消对性能有提升
    -XX:AutoBoxCacheMax=20000 Integer i = 3;这语句有着 int自动装箱成Integer的过程,JDK默认只缓存 -128 ~ +127的int 和 long
    -XX:+PerfDisablesharedMem 禁止在/tmp/hperf[用户名] 路径上写入进程统计文件,jps,jstat,远程查看jvm状态也不能用了
    -XX:-UseGCOverheadLimit 限制GC的运行时间。如果GC耗时过长,就抛OOM
    -XX:-OmitStackTraceInFastThrow 2W次异常后,不打印异常栈,建议禁用,不方便查问题
    -XX:+UseParNewGC 新生代并行收集
    -XX:+UseConcMarkSweepGC 老年代并发收集
    -XX:CMSInitiatingOccupancyFraction=75 老年代收集的触发的比例
    -XX:+UseCMSInitiatingOccupancyOnly 强制使用上面的触发比例
    -XX:MaxTenuringThreshold=2 对象在Survivor区熬过多少次Young GC后晋升到年老代
    -XX:+HeapDumpOnOutOfMemoryError 如果出现OutOfMemory,dump内存到文件中,默认情况下dump到当前用户目录
    -XX:HeapDumpPath=/home/checkin/dump 指定dump的目录
    -XX:+ExplicitGCInvokesConcurrent 显式的System.gc()的调用会使用CMS方式
    -XX:+DisableExplicitGC 不允许显式调用System.gc(),此选项最好不要加,有些堆外内存分配依赖显式 gc 调用,关闭之后容易导致 OOM
    -XX:+PrintGCDetails 打印GC详细情况
    -XX:+PrintGCDateStamps 打印GC的时间戳
    -verbose:gc 打印gc日志
    -Xloggc:gc.log 日志存放在当前路径下,文件名为gc.log,可以使用相对路径和绝对路径

    JDK1.7及以下版本参数
    -Xms128m -Xmx512m -Xss256k -server -XX:PermSize=32m -XX:MaxPermSize=256m -XX:NewRatio=1 -XX:-UseBiasedLocking -XX:AutoBoxCacheMax=20000 -XX:-UseGCOverheadLimit -XX:-OmitStackTraceInFastThrow -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:MaxTenuringThreshold=2 -XX:+HeapDumpOnOutOfMemoryError -XX:+ExplicitGCInvokesConcurrent -XX:+PrintGCDetails -XX:+PrintGCDateStamps -verbose:gc -Xloggc:gc.log

    JDK1.8及以上版本参数
    -Xms128m -Xmx512m -Xss256k -server -XX:MetaspaceSize=32m -XX:MaxMetaspaceSize=256m -XX:NewRatio=1 -XX:-UseBiasedLocking -XX:AutoBoxCacheMax=20000 -XX:-UseGCOverheadLimit -XX:-OmitStackTraceInFastThrow -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:MaxTenuringThreshold=2 -XX:+HeapDumpOnOutOfMemoryError -XX:+ExplicitGCInvokesConcurrent -XX:+PrintGCDetails -XX:+PrintGCDateStamps -verbose:gc -Xloggc:gc.log

    参考

    相关文章

      网友评论

          本文标题:JVM进程常用参数

          本文链接:https://www.haomeiwen.com/subject/almccqtx.html