文章目录
- 引言
- I jstat 统计信息工具
- JVM 堆内存布局
- 命令格式
- 元数据空间统计
- 堆内存统计
- JVM编译方法统计
- 编译统计
- 类加载统计
- II JVM调优
- 基本概念: 应用程序的响应时间(RT)和吞吐量(QPS)
- JVM调优原理
- 调优思路
- 调优方法
- JVM调优技巧
- 建议
- III 基于jstat 分析垃圾回收情况,进行JVM调优
- 优化思路
- 估算年轻代对象增长速率
- Young GC的触发频率和每次耗时
- 每次Young GC后有多少对象存活和进入老年代
- Full GC的触发频率和每次耗时
- IV Survivor区过早晋升 "premature promotion"
- 优化Survivor区过早晋升
引言
- 分析方法:通过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。