首页 > 其他分享 >JVM线上问题排查和性能调优案例

JVM线上问题排查和性能调优案例

时间:2024-12-23 16:58:40浏览次数:9  
标签:分析 排查 调优 GC 线上 JVM

JVM线上问题排查和性能调优案例


JVM 线上问题排查和性能调优也是面试常问的一个问题,尤其是社招中大厂的面试。

这篇文章,我会分享一些我看到的相关的案例。

下面是正文。

一次线上 OOM 问题分析 - 艾小仙 - 2023

  • 现象:线上某个服务有接口非常慢,通过监控链路查看发现,中间的 GAP 时间非常大,实际接口并没有消耗很多时间,并且在那段时间里有很多这样的请求。
  • 分析:使用 JDK 自带的jvisualvm分析 dump 文件(MAT 也能分析)。
  • 建议:对于 SQL 语句,如果监测到没有where条件的全表查询应该默认增加一个合适的limit作为限制,防止这种问题拖垮整个系统
  • 资料实战案例:记一次 dump 文件分析历程转载 - HeapDump - 2022

生产事故-记一次特殊的 OOM 排查 - 程语有云 - 2023

  • 现象:网络没有问题的情况下,系统某开放接口从 2023 年 3 月 10 日 14 时许开始无法访问和使用。
  • 临时解决办法:紧急回滚至上一稳定版本。
  • 分析:使用 MAT (Memory Analyzer Tool)工具分析 dump 文件。
  • 建议:正常情况下,-Xmn参数(控制 Young 区的大小)总是应当小于-Xmx参数(控制堆内存的最大大小),否则就会触发 OOM 错误。
  • 资料最重要的 JVM 参数总结 - JavaGuide - 2023

一次大量 JVM Native 内存泄露的排查分析(64M 问题) - 掘金 - 2022

YGC 问题排查,又让我涨姿势了! - IT 人的职场进阶 - 2021

  • 现象:广告服务在新版本上线后,收到了大量的服务超时告警。
  • 分析:使用 MAT (Memory Analyzer Tool) 工具分析 dump 文件。
  • 建议:学会 YGC(Young GC) 问题的排查思路,掌握 YGC 的相关知识点。

听说 JVM 性能优化很难?今天我小试了一把! - 陈树义 - 2021

通过观察 GC 频率和停顿时间,来进行 JVM 内存空间调整,使其达到最合理的状态。调整过程记得小步快跑,避免内存剧烈波动影响线上服务。 这其实是最为简单的一种 JVM 性能调优方式了,可以算是粗调吧。

你们要的线上 GC 问题案例来啦 - 编了个程 - 2021

  • 案例 1:使用 guava cache 的时候,没有设置最大缓存数量和弱引用,导致频繁触发 Young GC
  • 案例 2: 对于一个查询和排序分页的 SQL,同时这个 SQL 需要 join 多张表,在分库分表下,直接调用 SQL 性能很差。于是,查单表,再在内存排序分页,用了一个 List 来保存数据,而有些数据量大,造成了这个现象。

Java 中 9 种常见的 CMS GC 问题分析与解决 - 美团技术团 - 2020

这篇文章共 2w+ 字,详细介绍了 GC 基础,总结了 CMS GC 的一些常见问题分析与解决办法。

给祖传系统做了点 GC 调优,暂停时间降低了 90% - 京东云技术团队 - 2023

这篇文章提到了一个在规则引擎系统中遇到的 GC(垃圾回收)问题,主要表现为系统在启动后发生了一次较长的 Young GC(年轻代垃圾回收)导致性能下降。经过分析,问题的核心在于动态对象年龄判定机制,它导致了过早的对象晋升,引起了长时间的垃圾回收。

上一页

JDK监控和故障处理工具总结

](https://javaguide.cn/java/jvm/jdk-monitoring-and-troubleshooting-tools.html)

标签:分析,排查,调优,GC,线上,JVM
From: https://www.cnblogs.com/firsthelloworld/p/18624504

相关文章

  • JVM简介—1.Java内存区域
    大纲1.运行时数据区的介绍2.运行时数据区各区域的作用3.各个版本内存区域的变化4.直接内存的使用和作用5.站在线程的角度看Java内存区域6.深入分析堆和栈的区别7.方法的出入栈和栈上分配、逃逸分析及TLAB8.虚拟机中的对象创建步骤9.对象的内存布局10.对象的访问定位11.......
  • 精选2025年最新97道Java面试题:spring+Redis+JVM+mysql全在这里了
    一、Java面试题之spring系列(23道)完整版:si我,"666",我一个个发!1、为什么要使用spring?2、解释一下什么是aop?3、解释一下什么是ioc?4、spring有哪些主要模块?5、spring常用的注入方式有哪些?6、spring中的bean是线程安全的吗?7、spring支持几种bean的作用域?8、s......
  • Linux 性能调优命令
    frompixivPSpsauxfps:显示系统中当前的进程信息。a:显示与终端无关的所有进程(即显示所有用户的进程)。u:以用户友好的格式显示进程信息,包括用户、CPU和内存使用情况。x:显示没有控制终端的进程,例如守护进程(daemon)。f:以ASCII字符显示进程的树状结构,表达进程间的相互关系......
  • 如何修改网站的错误,网站错误排查与修复
    网站错误可能由多种原因引起,以下是一些常见的排查和修复步骤:查看错误日志:在服务器上查看错误日志文件,通常位于 logs 文件夹中。分析日志中的错误信息,确定问题原因。浏览器开发者工具:使用浏览器的开发者工具(F12),查看控制台中的错误信息。检查网络请求,查看是否有资源......
  • wordpress系统问题排查
    1.通过FTP或文件管理器访问服务器文件一般情况下,WordPress的错误日志位置取决于服务器的配置和WordPress本身的设置。常见的位置是在/wp-content/目录下,文件名可能是debug.log。使用FTP客户端(如FileZilla)连接到服务器,找到WordPress安装目录下的wp-content/文件夹。......
  • 实战技巧 DevEco Profiler 性能调优 Time
    实战技巧DevEcoProfiler性能调优Time背景DevEcoStudio开发工具中提供了Profiler面板,可以让我们在针对实际开发应用过程中碰到的一些性能相关的问题提供解决方案。如响应速度慢、动画卡顿、内存泄漏、发热、耗电快等等场景。其中Profiler提供了实时监控、深度录......
  • 大数据新视界 -- Hive 集群性能监控与故障排查(2 - 16 - 14)
           ......
  • JVM专题学习之类加载器(二)
    类加载器三层类加载器1.启动类加载器-BootstrapClassLoaderAppClassLoader负责加载核心类,存放在lib目录下的jar包或class文件。2.扩展类加载器-ExtensionClassLoaderExtensionClassLoader负责加载\lib\ext目录下的jar包或class文件,我们可以将通用性的功能,打成jar包放置到ext......
  • 面试官最常问的几个JVM面试题,几乎必考
    此部分内容虽然并非每位面试官都会涉及,但对于应聘高级职位(高P)而言,这一环节至关重要。面试难度因人而异,有的面试官可能仅要求简述虚拟机的内存实现,而有的则可能深入要求解释垃圾回收机制、虚拟机调优实战经验及线上问题排查等。每当我看到简历上提及JVM(Java虚拟机),无论应聘者的......
  • PostgreSQL技术大讲堂 - 第75讲:SQL调优(3)索引调优升级版
    PostgreSQL技术大讲堂-第75讲,主题:PostgreSQLSQL调优三-- 索引调优升级版讲课内容:     一、复合索引(多列索引)    二、部分索引(局部索引)    三、表达式索引    四、覆盖索引    五、唯一索引    六、前匹配LIKE‘prefix%’范围查询索引应......