arthas查看Spring Env配置值
vmtool --action getInstances --className org.springframework.core.env.Environment --express 'instances.{#this.getProperty("spring.application.name")}'
dump线上.jfr 文件命令
jcmd < pid > VM.unlock_commercial_features
jcmd < pid > JFR.start name=2min.jfr settings=profile delay=3s duration=2m filename=/opt/2_min.jfr compress=true
可以通过java8 jmc.exe文件解析
手动开启
-Djava.rmi.server.hostname=localhost
-Dcom.sun.management.jmxremote.port=18888
-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.managementote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-XX:+UnlockCommercialFeatures
-XX:+FlightRecorder
后台启动java,并远程调试
nohup java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -XX:+UseConcMarkSweepGC -Dspring.profiles.active=fat,server2 -Dregistry.server.id=127.0.0.1:3 -jar app-server-0.0.2.jar &
java获取内存dump的几种方式
- 获取内存详情:jmap -dump:format=b,file=e.bin pid
这种方式可以用 jvisualvm.exe 进行内存分析,或者采用 Eclipse Memory Analysis Tools (MAT)这个工具
获取内存dump: jmap -histo:live pid
这种方式会先出发fullgc,所有如果不希望触发fullgc 可以使用jmap -histo pid
- 第三种方式:jdk启动加参数:
-XX:+HeapDumpBeforeFullGC
-XX:HeapDumpPath=/httx/logs/dump
这种方式会产生dump日志,再通过jvisualvm.exe 或者Eclipse Memory Analysis Tools 工具进行分析