Jvm常用参数笔记

1.Jvm启动程序
最大堆内存-Xmx默认为:当前系统内存的1/4
初始化堆内存-Xms默认为:当前系统内存的1/64
每个线程分配的内存-Xss默认为:1M
查看当前Java进程jvm参数配置:
1.jps -l
查询出所有Java进程号Pid
2.jinfo  -flags  pid
常用jvm参数:
# JVM启动参数不换行
# 设置堆内存
‐Xmx4g ‐Xms4g
# 指定GC算法
‐XX:+UseG1GC ‐XX:MaxGCPauseMillis=50
# 指定GC并行线程数
‐XX:ParallelGCThreads=4
# 打印GC日志
‐XX:+PrintGCDetails ‐XX:+PrintGCDateStamps
# 指定GC日志文件
‐Xloggc:gc.log
# 指定Meta区的最大值
‐XX:MaxMetaspaceSize=2g
# 设置单个线程栈的大小
‐Xss1m
# 指定堆内存溢出时自动进行Dump
‐XX:+HeapDumpOnOutOfMemoryError
‐XX:HeapDumpPath=/usr/local/

常见的垃圾收集器包括:
串行垃圾收集器: ‐XX:+UseSerialGC        单个worker线程进行垃圾回收
并行垃圾收集器: ‐XX:+UseParallelGC     是指使用多个GC worker 线程并行地执行垃圾收集
CMS垃圾收集器: ‐XX:+UseConcMarkSweepGC
G1垃圾收集器: ‐XX:+UseG1GC

并发垃圾收集器,是指在应用程序在正常执行时,有一部分GC任务,由GC线程在应
用线程一起并发执行。例如CMS/G1的各种并发阶段。

G1的堆内存不在单纯的划分为年轻代和老年代,而是划分为多个(通常是2048个)可以存放对象的小块堆区域。

G1不必每次都去回收整个堆空间,而是以增量的方式进行处理:每次只处理一部分内存块,大大的降低单词GC的暂停时间。

posted @ 2021-04-14 16:24  山沟君  阅读(103)  评论(0)    收藏  举报