JVM实践

大家好我是小明,今天讲解JVM实践。


文章目录

  • [1. JVM调优的参数可以在那里设置参数值???](#1. JVM调优的参数可以在那里设置参数值???)
  • [2. JVM调优的参数都有哪些???](#2. JVM调优的参数都有哪些???)
  • [3. JVM调优的工具??](#3. JVM调优的工具??)
  • [4. java内存泄漏的排查思路(高频)??](#4. java内存泄漏的排查思路(高频)??)
  • [5. CPU飙高的排查思路???](#5. CPU飙高的排查思路???)

总体学习大纲

1. JVM调优的参数可以在那里设置参数值???

jar 包部署在启动设置参数里

java -Xms512m -Xmx1024m -jar xxx.jar

红色的就是启动参数


2. JVM调优的参数都有哪些???

  • 设置堆空间大小
  • 虚拟机栈的设置
  • 年轻代中 Eden 区和两个 Survivor 区的大小比例
  • 年轻代晋升老年代阈值
  • 设置垃圾回收器

这些命令设置参数可以在开发环境虚拟机参数设置,可以在生产环境启动命令配置相关参数。


3. JVM调优的工具??

基本命令

  • jps 进程状态信息

方式1:直接输出到终端(适合快速查看,日志较短时)

jstack <进程PID>

方式2:导出到文件(推荐,日志较长时,方便后续查找/分析)

jstack <进程PID> > /tmp/thread_stack_20260205.log

  • jstack 查看java进程内线程的堆栈信息
  • jmap 查看堆转信息

jmap -heap <进程PID>

两个可视化工具

  • jconsole 用于JVM的内存,线程,类的监控

  • VisualVM 能够监控线程,内存情况


4. java内存泄漏的排查思路(高频)??

假如说:在生产环境下,因为内存泄漏导致服务宕机

一般在生产环境发生这种事情

所以解决事情的方式是

  1. 通过 jmap 或设置 JVM 参数获取堆内存快照 dump。
  2. 通过工具,VisualVM 去分析 dump 文件,VisualVM 可以加载离线的 dump 文件。
  3. 通过查看堆信息的情况,可以大概定位内存溢出是哪行代码出了问题。

5. CPU飙高的排查思路???

  1. 使用top命令查看系统进程 CPU 占用情况。

  2. 使用ps命令查看进程中的线程信息,对应到具体线程。

  3. 使用jstack命令查看进程中哪些线程出现问题。


好了今天就到这里

相关推荐
阿贵---3 分钟前
定时任务专家:Python Schedule库使用指南
jvm·数据库·python
TsukasaNZ3 分钟前
如何为开源Python项目做贡献?
jvm·数据库·python
浩瀚之水_csdn3 分钟前
++ Lambda 表达式详解
java·jvm·windows
皙然23 分钟前
深入浅出 JVM:从内存结构到性能调优的全维度解析
java·jvm
2401_8319207431 分钟前
Python生成器(Generator)与Yield关键字:惰性求值之美
jvm·数据库·python
2401_842623651 小时前
使用Seaborn绘制统计图形:更美更简单
jvm·数据库·python
2401_832035341 小时前
Python数据库操作:SQLAlchemy ORM指南
jvm·数据库·python
小涛不学习2 小时前
JVM 方法区垃圾回收详解(Metaspace 深度解析)
jvm
Moshow郑锴2 小时前
JAVA JDK26新特性分析 - 一个注重性能优化、生产就绪和前瞻性安全的版本
java·开发语言·jvm
一叶飘零_sweeeet2 小时前
亿级流量系统 JVM 全链路调优:从压测瓶颈定位到线上稳态落地全指南
jvm·jvm调优