VisualVM

284 阅读1分钟

一 基于JDK命令行工具的监控

1.X参数
-Xint 解释执行
-Xcomp 第一次使用就编译成本地代码
-Xmixed 混合模式,JVM自己来决定是否编译成本地代码
2.XX参数
boolean类型
-XX:[+-]表示启用或者禁用name属性
比如:-XX:[+]UseConcMarkSweepGC
非boolean类型
-XX:MaxGCPauseMillis=500(最大停顿时间500ms)
常用
-Xms <=> -XX:InitialHeapSize
-Xmx <=> -XX:MaxHeapSize
3.查询jvm运行时参数
jps 查看java进程
jinfo -flag MaxHeapSize 进程id(查看最大的堆内存)
jinfo -flags 进程id(被我们手动赋值的参数/tomcat设置的)
jstat 查看jvm统计信息
jstat -class 进程id 1000(每隔1s) 10(输入10次)
4.OOM异常
堆内存溢出
list狂加对象,不释放
非堆溢出(metaspace)
list狂加class,不释放
5.内存溢出自动导出
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeadDumpPath=./
6.内存溢出手动导出
jmap -dump:format:b,file=heap.hprof 进程id
7.查看线程状态
jstack 进程id > 123.txt(文件名)
8.可视化工具VisualVM
插件下载先设置地址后下载
9.远程
先设置tomcat里的catalina.sh