GC调优思路:调整JVM参数,尽量不发生full gc ,具体系统运行情况可已利用JAVA自带工具查看内存使用情况。
JAVA常用指令:
java/jdk/bin目录下自带一些工具
jps:查看当前运行的java程序进程ID
jmap:查看内存信息、实例个数以及占用内存大小
jmap -histo pid
jmap -heap pid 查看堆信息
jmap ‐dump:format=b,file=eureka.hprof pid查看dump快照
jstack pid可以查看线程状态,可以直接显示死锁;
top -p pid显示进程的内存情况
jinfo -flags pid 查看正在运行的Java应用程序的扩展参数
jinfo -sysprops pid 查看java系统参数
jstat命令可以查看堆内存各部分的使用量,以及加载类的数量
jstat -gc pid [时间间隔] [执行次数]
jvisualvm
jvisualvm等可视化工具实质是对上述命令的封装
Authas
阿里巴巴开源的一个工具,具体详见Authas官方文档
gc日志分析
‐Xloggc:./gc‐%t.log ‐XX:+PrintGCDetails ‐XX:+PrintGCDateStamps ‐XX:+PrintGCTimeStamps ‐XX:+PrintGCCause
‐XX:+UseGCLogFileRotation ‐XX:NumberOfGCLogFiles=10 ‐XX:GCLogFileSize=100M
GCeasy