View on GitHub

kbase-heap

:coffee: Supported the development team with training for Hotspot JVM

JVM 浅析和线上系统性问题分析思路

JVM内存模型

JVM内存模型

JVM如何判断对象是否可回收

引用计数器

GC Roots

GC算法

标记-清除算法

复制算法

标记-整理算法

分代回收算法

GC回收器

Serial收集器

PerNew收集器

Parallel Scavenge收集器

Serial Old收集器

Parallel Old收集器

CMS收集器

G1收集器

回收期搭配规则

JVM常用配置

内存相关

-Xmn
-Xms
-Xmx
-XX:PermSize
-XX:MaxPermSize
-Xss
-XX:SurvivorRatio=5

回收器相关

-XX:+UseParNewGC 
-XX:+CMSParallelRemarkEnabled 
-XX:+UseConcMarkSweepGC

GC日志相关

-Xloggc:/home/xiaoi/gc_6600.log
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-XX:+PrintHeapAtGC
# 打印对象年龄
-XX:+PrintTenuringDistribution
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/home/xiaoi/dump_logs_search/

jconsole 远程调试相关

-Dcom.sun.management.jmxremote 
-Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.management.jmxremote.authenticate=false 
-Dcom.sun.management.jmxremote.port=22422

demo

JAVA_OPTIONS="-server -Xmn6G -Xms16G -Xmx16G -XX:PermSize=512M -XX:MaxPermSize=512M -Xss256k -Xconcurrentio -XX:SurvivorRatio=5 -XX:TargetSurvivorRatio=90 -XX:MaxTenuringThreshold=31 -XX:CMSInitiatingOccupancyFraction=90 -XX:MaxDirectMemorySize=256M -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+UseConcMarkSweepGC -Djava.nio.channels.spi.SelectorProvider=sun.nio.ch.EPollSelectorProvider -Dsun.net.inetaddr.ttl=60 -Dorg.mortbay.jetty.Request.maxFormContentSize=-1 -Djava.awt.headless=true -Dsolr.solr.home=/home/xiaoi/jetty_search_6600/solr_home/solr -XX:-DontCompileHugeMethods -Xloggc:/home/xiaoi/gc_6600.log -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/xiaoi/dump_logs_search/"

其他

详见 JVM系列三:JVM参数设置、分析

JVM调优总结 -Xms -Xmx -Xmn -Xss

Java中9种常见的CMS GC问题分析与解决-美团技术团队

Java Object Layout (JOL)

jclasslib

线上系统性问题分析思路和常用命令

磁盘大小

内核珠玑:/proc/sys/vm/drop_caches为啥不灵了?

为什么手工DROP_CACHES之后CACHE值并未减少?

常用 Dump 分析工具

IBM J9 VM

详见 垃圾收集策略,第 1 部分 垃圾收集策略,第 2 部分

JRockit

/home/Oracle/Middleware/wlserver_12.1/common/bin/commEnv.sh
/home/Oracle/Middleware/user_projects/domains/srcb/bin/setDomainEnv.sh

G1 GC

Java Hotspot G1 GC的一些关键技术