java应用CPU占用率过高排查
1.背景
服务器CPU使用率告警,紧急排查。
2.排查思路
2.1 top查看各进程的CPU占用率
top
查到进程的pid
2.2 查看该进程的所有线程
top -Hp <pid>
发现大量的GC task thread#
的cpu使用超过90%,定位到时频繁GC导致,可能是内存不足引起
# jstat监控GC情况,其中:<vmid> 是Java虚拟机的ID,通常是进程ID。 [interval]是可选的,表示采样间隔时间,单位为毫秒。[count]是可选的,表示采样次数。例如,要监控进程ID为1234的Java应用程序的GC情况,每隔1秒钟输出一次采样信息,总共采样5次
jstat -gc 1234 1000 5
# 查看垃圾回收的空间占比
jstat -gcutil 21430 1000
# gc原因
jstat -gccause 21430 1000
2.3 调整java进程的jvm内存设置
# 查看默认值:最大堆分配内存 -Xmx 相当于MaxHeapSize
jinfo -flag MaxHeapSize 21430
# 调整默认设置
java -jar -Xms30g -Xmx30g
3.引用
[JVM:利用jstat查看GC信息及堆内存设置(二)(https://blog.csdn.net/qq_24950043/article/details/129777267)
Java应用生产Full GC或者OOM问题如何定位
jstack问题定位分析
[垃圾回收GC (Allocation Failure) Full GC (Ergonomics)](https://blog.csdn.net/weixin_43821874/article/details/90675264
Full GC (Ergonomics) 产生的原因
JVM-JVM调优
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具