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命令查看进程中哪些线程出现问题。


好了今天就到这里

相关推荐
akinggw4 小时前
libagentcore - 一个基于c++的AI多agent系统升级到2.0版本
开发语言·jvm·c++
yh弓长10 小时前
JVM 核心机制
jvm
tg_xianheyun1 天前
腾讯云国际账号注册代充值适合哪些海外业务场景?
jvm
yuniko-n1 天前
【JVM】对象内存布局
java·开发语言·jvm
wuminyu1 天前
JVM执行引擎学习总结:热点字节码编译成本地机器码
java·linux·c语言·jvm·c++
wuminyu2 天前
JVM规范学习总结:解释器与JIT编译器如何处理JVM字节码
java·linux·c语言·jvm·c++
骑着蜗牛撵大象3272 天前
大模型 Agent 的沙箱护栏:gVisor 隔离、出口白名单与审计闭环
java·开发语言·jvm·安全·agent沙箱·gvisor·microvm
tryxr2 天前
JVM 垃圾回收机制
java·jvm·gc·垃圾回收
我就是不信2 天前
JVM 调优实战:从排查思路到落地参数
jvm
LMT流氓兔3 天前
第五单元——第十六课:给书店助手加上网页界面
java·开发语言·jvm·人工智能·oracle·langchain·1024程序员节