基于jstack、jmap、jstat 进行JVM监控
文章目录
- 引言
- I jmap 内存映像工具
-
- 格式
- 内存分配情况
- 查看内存的对象
- II manager webapp
-
- /manager/status 查看服务器状态
- manager/jmxproxy 查询Tomcat指标
- III jps 查看本机的Java中进程信息
-
- 语法格式如下
- 只显示JVM的进程id
- 输出传入main方法的参数
- 输出main类或Jar的全限名
- 输出传入JVM的参数
- 其他例子
- IV jinfo 查看扩展参数
- V jstack 堆栈跟踪工具
-
- 格式
- Thread的状态转换
- 应用场景:用jstack加进程id查找死锁
- VI ps
-
- 找出该进程内最耗费 CPU 的线程
- 分析线程堆栈信息
引言
- 分析方法:通过Tomcat的jmap工具、jstat 、服务器状态页面: /manager/status,查看JVM情况,解决问题。
- 常见问题: OutOfMemoryError,内存不足;内存泄露;线程死锁;锁争用(Lock Contention);Java进程消耗CPU过高
- 解决方案: https://blog.csdn.net/z929118967/article/details/141241950
- 分析工具:在JDK的bin目彔下,包含了java命令及其他实用工具。
-
jps:查看本机的Java中进程信息。
-
jstack: 堆栈跟踪工具,打印线程的栈信息,制作线程Dump。 jstack 可以定位到线程堆栈,根据堆栈信息我们可以定位到具体代码,所以它在 JVM 性能调优中使用得非常多。
-
jmap:打印内存映射,制作堆Dump。
-
jstat:性能监控工具。