【个人技术经验及开发技巧分享】 【个人技术经验及开发技巧分享】
首页
  • 操作系统初识
  • JAVA基础
  • JVM
  • 开发框架
  • Redis
  • Zookeeper
  • 消息中间件
  • 持久化
  • 算法
  • 网络
  • 系统架构
  • 并发编程
  • 框架
  • 开发杂货
  • 线上排查
  • 技巧备忘
  • 部署指南
  • 版本管理
  • 工作流程
  • 发版流程
  • 友情链接
  • 网站备忘
  • 在线工具
  • 学习
  • 各种云
  • 应用下载

Louis

首页
  • 操作系统初识
  • JAVA基础
  • JVM
  • 开发框架
  • Redis
  • Zookeeper
  • 消息中间件
  • 持久化
  • 算法
  • 网络
  • 系统架构
  • 并发编程
  • 框架
  • 开发杂货
  • 线上排查
  • 技巧备忘
  • 部署指南
  • 版本管理
  • 工作流程
  • 发版流程
  • 友情链接
  • 网站备忘
  • 在线工具
  • 学习
  • 各种云
  • 应用下载
  • 开发杂货

  • 线上排查

    • Jprofiler内存排查
    • CPU飙高排查
    • FULLGC频繁排查
      • 1 获取dump文件
    • 阿尔萨斯(Arthas)
    • 常见开发问题记录
  • 技巧备忘

  • 部署指南

  • 技术应用
  • 线上排查
luoxiaofeng
2022-04-30
目录

FULLGC频繁排查

# 1 获取dump文件

排查FUllGC频繁,一般都是获取到当时的dump文件,分析内存里都有哪些数据占用较多内存。

有两种办法可以获取dump文件

  1. 通过在jvm里添加参数:+HeapDumpBeforeFullGC +HeapDumpAfterFullGC 这种方法需要在应用启动前要提前配置好。

  2. 使用jinfo命令进行设置。(生产环境常用的方法)

无需重启jvm,即时生效,dump文件生成后,清除JVM参数,通常 fullgc 会频繁发生,拿到一次的dump采样后,清除参数,然后慢慢分析dump文件

第一步,通过jps获得java程序的pid(jps,ps等方法)

#jps
5940 Main
3012 Jps
1
2
3

第二步,调用jinfo命令设置JVM参数

#jinfo -flag +HeapDumpBeforeFullGC 5940
#jinfo -flag +HeapDumpAfterFullGC 5940

#jinfo -flags pid 检查有没有生效
1
2
3
4

下次发生fullgc时就会生成dump文件,dump文件取到后我们就可以清除原来设置的参数:

#jinfo -flag -HeapDumpBeforeFullGC 5940
#jinfo -flag -HeapDumpAfterFullGC 5940

#jinfo -flags pid 检查有没有生效
1
2
3
4

dump文件可以借助MAT、Jprofiler等工具分析。

CPU飙高排查
阿尔萨斯(Arthas)

← CPU飙高排查 阿尔萨斯(Arthas)→

最近更新
01
SpringBoot
10-21
02
Spring
10-20
03
Sentinel
10-14
更多文章>
Copyright © 2022-2023 Louis | 粤ICP备2022060093号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式