网站首页 > 博客文章 正文
首先这个问题是自己的一个亲身项目经历,具体是这样的..................
在一个月黑风高的夜里,刚刚爬上**的床,准备大干一番。。。事业,这时手机不停收到告警,赶紧从忙碌中停了下来.
短信告警内容大概是服务器CPU占用90%以上,反正是飙升,二话不说,感觉打开电脑VPN远程看下;根据流量判断肯定不是用户请求增多导致,于是想到今天有发版,会不会代码引起的异常;于是先看下CPU飙高到底是那些进程引起;步骤如下:
说明:截图是已经解决问题之后的,所以显示数值都是正常范围
1.执行top命令
通过此命令可看到java进程的PID,但是真正占用情况我们需要查看线程的具体情况
2.执行top -Hp pid
这个可以看到具体线程的指标情况,但是对于排查问题这是不够,我们需要查看堆栈的使用情况,具体方法比较多,举常用说明:
2.1JDK工具之jstat命令
jstat可以监测Java应用程序的实时运行情况,包括堆内存信息以及垃圾回收信息。我们可以运行jstat -help查看一些关键参数信息:
再通过jstat -option查看jstat有哪些操作:
- -class:显示ClassLoad的相关信息;
- -compiler:显示JIT编译的相关信息;
- -gc:显示和gc相关的堆信息;
- -gccapacity:显示各个代的容量以及使用情况;
- -gcmetacapacity:显示Metaspace的大小;
- -gcnew:显示新生代信息;
- -gcnewcapacity:显示新生代大小和使用情况;
- -gcold:显示老年代和永久代的信息;
- -gcoldcapacity :显示老年代的大小;
- -gcutil:显示垃圾收集信息;
- -gccause:显示垃圾回收的相关信息(通-gcutil),同时显示最后一次或当前正在发生的垃圾回收的诱因;
- -printcompilation:输出JIT编译的方法信息。
我们可以用jstat -gc pid查看:
2.2JDK工具之jstack命令
它是一种线程堆栈分析工具,最常用的功能就是使用 jstack pid 命令查看线程的堆栈信息,通常会结合top -Hp pid 或 pidstat -p pid -t一起查看具体线程的状态,也经常用来排查一些死锁的异常。
每个线程堆栈的信息中,都可以查看到线程ID、线程的状态(wait、sleep、running 等状态)以及是否持有锁等。
2.3 JDK工具之jmap命令
在第23讲中我们使用过jmap查看堆内存初始化配置信息以及堆内存的使用情况。那么除了这个功能,我们其实还可以使用jmap输出堆内存中的对象信息,包括产生了哪些对象,对象数量多少等。
我们可以用jmap来查看堆内存初始化配置信息以及堆内存的使用情况:
我们可以使用jmap -histo[:live] pid查看堆内存中的对象数目、大小统计直方图,如果带上live则只统计活对象:
我们可以通过jmap命令把堆内存的使用情况dump到文件中:
- 上一篇: 深度剖析:如何高效排查Java程序的内存泄漏问题
- 下一篇: 关于JVM内存的N个问题
猜你喜欢
- 2025-05-14 JAVA程序员自救之路——Elasticsearch向量搜索
- 2025-05-14 探秘Java程序的“内存大爆炸”:JVM内存溢出问题排查
- 2025-05-14 Java 探秘:如何找出数组中重复的数字
- 2025-05-14 线上问题解决:java内存溢出问题分析,定位及解决
- 2025-05-14 Java虚拟机内存管理深度解读
- 2025-05-14 Java程序内存泄漏问题优化全攻略
- 2025-05-14 Jprofile解析dump文件使用详解
- 2025-05-14 Java中常见的内存泄漏场景解析
- 2025-05-14 Java内存泄漏暗杀指南!3招揪出8G“内存刺客”(附排查神器)
- 2025-05-14 Java内存分析工具——jmap
你 发表评论:
欢迎- 367℃用AI Agent治理微服务的复杂性问题|QCon
- 358℃初次使用IntelliJ IDEA新建Maven项目
- 356℃手把手教程「JavaWeb」优雅的SpringMvc+Mybatis整合之路
- 351℃Maven技术方案最全手册(mavena)
- 348℃安利Touch Bar 专属应用,让闲置的Touch Bar活跃起来!
- 346℃InfoQ 2024 年趋势报告:架构篇(infoq+2024+年趋势报告:架构篇分析)
- 345℃IntelliJ IDEA 2018版本和2022版本创建 Maven 项目对比
- 342℃从头搭建 IntelliJ IDEA 环境(intellij idea建包)
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)