idea配置
-Dspring.profiles.active=dev
--spring.profiles.active=prod -Xms8g -Xmx8g -XX:+UseG1GC
bin目录工具
jmap
jmap -histo 进程ID
显示实例数,总字节大小,className
CSIBI
[C:CHAR
[S:SHORT
[I:INT
[B:BYTE
[[I:INT[]
jmap -heap 进程ID
查看当前堆(年轻代,S1,S2,老年代)的使用情况,总,剩余,已使用
jmap -dump:format=b,file=xx.hprof 进程ID
jmap ‐dump:format=b,file=xxx.hprof xxx
自动到处dump文件 内存很大的时候,可能会导不出来
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=./
dump文件 xx.hprof 可以使用JavavisualVM载入找到系统问题
jstack和top找出占用cpu最高的进程
top -p 进程ID
按H
3629转成16进制 18e3
jstack 进程id | grep -A 10 18e3
获取堆栈信息
查看实时JVM信息
jstat -gc 2421 3000 10000
S0C S0?
S1C S1?
S0U S0使用情况
S1U S1使用情况
EC 伊甸园区?
EU 伊甸园区使用
GC日志
JVM参数
# 最大并行编译数 如果设置大于1,虽然编译速度会提高,但是同样影响系统稳定性,会增加JVM崩溃的可能
-XX:CICompilerCount=12
# 初始化堆大小 512兆
-XX:InitialHeapSize=536870912
# 1024MB
-XX:MaxHeapSize=1073741824
# 年轻代最大值(for 1.3/1.4) 341MB
-XX:MaxNewSize=357564416
# 表示当JVM决定是否要做或者尝试扩容的时候最小扩/缩多少 512K
-XX:MinHeapDeltaBytes=524288
# 设置年轻代大小(for 1.3/1.4) 170.5MB
-XX:NewSize=178782208
# 设置老年代大小 341.5MB
-XX:OldSize=358088704
# 类指针压缩 jdk6之后默认开启,jdk7下 xmx小于32g默认开启。
-XX:+UseCompressedClassPointers
# 普通对象指针压缩 Enables the use of compressed pointers (object references represented as 32 bit offsets instead of 64-bit pointers) for optimized 64-bit performance with Java heap sizes less than 32gb.
-XX:+UseCompressedOops
# ?
-XX:+UseFastUnorderedTimeStamps
# 选择垃圾收集器为并行收集器.此配置仅对年轻代有效
-XX:+UseParallelGC
# 初始堆大小
-Xms512m
# 最大堆大小
-Xmx1024m
# 设置持久代最大值 Size of the Permanent Generation. [5.0 and newer: 64 bit VMs are scaled 30% larger; 1.4 amd64: 96m; 1.3.1 -client: 32m.] ?
-XX:MaxPermSize=512m