
JVM 内存诊断
1、jmap命令
# 显示堆内存的配置(初始/最大大小、各代内存分配)和实时使用情况。
jmap -heap <pid>查看实时的堆内存占用情况
2、jconsole
- 内存监控:
- 实时查看堆内存(Heap)和非堆内存(Non-Heap)的使用情况,包括 Eden 区、Survivor 区、老年代(Old Gen)的详细数据。
- 监控垃圾回收(GC)频率和耗时,手动触发垃圾回收。
- 线程监控:
- 显示所有线程的状态(如运行、等待、阻塞等),分析线程数和线程阻塞问题。
- 生成线程快照(Thread Dump),帮助诊断死锁或线程资源争用。
- 类加载监控:
- 统计已加载和卸载的类数量,分析类加载器的内存占用。
- JVM 概览:
- 显示 CPU 使用率、文件描述符数、JVM 参数等基本信息。
- MBeans 管理:
- 通过 MBeans(Managed Beans)接口管理应用程序的自定义监控指标和配置参数。
3、jvisualvm
位置:在jdk/bin目录下(jdk 9 以后不再集成,需单独下载)
查看堆内存占用的具体情况:连接进程 -> 监视 -> 堆 Dump -> 概要 -> 检查 -> 查找
