如何通过top 和 jstack 确定哪些线程耗尽CPU
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,本篇文章给大家分享的是有关如何通过top 和 jstack 确定哪些线程耗尽CPU,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。背景线上
千家信息网最后更新 2026年10月31日如何通过top 和 jstack 确定哪些线程耗尽CPU
本篇文章给大家分享的是有关如何通过top 和 jstack 确定哪些线程耗尽CPU,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
背景
线上集群 load 会突然飙升,CPU 使用率 100%,无法响应正常请求,然后服务器宕机。
那么引起 load 飙升的线程究竟在做什么?哪些线程霸占了CPU?可以通过 top 和 jstack 命令进行定位。
定位步骤
1. top 找出占用 CPU 高的进程 PID
2. top -p PID -H 命令查出进程中占用CPU最高的线程
3. 根据线程ID(需要十进制转成十六进制),从线程栈中找出步骤2查出的线程
printf 0x%x 43845
4. jstack -l PID 命令打印出线程栈
发现是大量 GC 线程在运行。
为什么是 GC 线程呢?
最终定位问题是,调用数据库查询方法 List queryForList(Query query) 拉取大量数据集合加载到内存,这些集合数据还都是小数据。小数据首先被 JVM 加载到年轻代,但年轻代内存很快就占满,JVM 进行 yongGC,数据被转移到老年代,但老年代内存也很快被占满,JVM 有进行 full GC,由此造成雪崩,内存占用率 100%,CPU 使用率 100%。
以上就是如何通过top 和 jstack 确定哪些线程耗尽CPU,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。
线程
数据
内存
命令
定位
年轻
使用率
年代
很快
更多
步骤
知识
篇文章
进程
实用
最高
十六进制
十进制
可以通过
就是
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网与科技
互联网黑科技
互联网科技公司简介
互联网科技产业
圆梦互联网科技
互联网扶贫科技
互联网科技缩写
互联网女皇 腾讯科技
掌上梦互联网科技
齐家互联网科技有限公司
现代互联网科技股
阿大互联网科技有限公司
广州市恰铎互联网科技有限公司
中和天地互联网科技有限公司
众安科技工业互联网合作
山东大美朱楼互联网科技有限公司
易企秀互联网科技是做什么的
科技和互联网行业的特点
互联网对科技影响
数字科技和互联网金融哪个好
互联网科技公司排名
麻工互联网科技
中国最先进互联网科技公司
互联网 科技馆
以后互联网后是啥科技
厦门比较好的科技互联网公司
注册互联网科技公司经营范围大全
互联网行业科技股
玉溪新华互联网科技怎么选
青岛互联网科技园