如何通过top 和 jstack 确定哪些线程耗尽CPU
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,本篇文章给大家分享的是有关如何通过top 和 jstack 确定哪些线程耗尽CPU,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。背景线上
千家信息网最后更新 2025年12月03日如何通过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安全错误
数据库的锁怎样保障安全
gmod僵尸感染服务器
网络安全考研二战
uu加速器链接服务器
数据库er图有必要做吗
完全免费的软件开发平台
关于网络安全提醒的句子
西宁网络技术哪家好
广元市网络安全平台
大商创数据库
湖南服务器硬盘测评
c 中在数据库读取
服务器点右键不显示
衢州专业网络安全准入控制价格
北京现代化软件开发制造价格
一台服务器能做两个raid
jsp数据库用户验证
谁制定网络安全法
2021网络安全宣传周宣传片
jsp是如何连接数据库
烟台戴尔服务器销售电话
大学数据库技术与应用知识点
加强国家网络安全有什么意义
西宁网络技术哪家好
什么叫做中文网络数据库
ar眼镜软件开发
微商分销返利管理软件开发
个人介绍服务器
许昌市的软件开发公司
ssm 数据库连接池
查询服务器品牌