jstack怎么分析线程状态(jstack查看线程卡住情况)

技术如何通过top 和 jstack 确定哪些线程耗尽CPU本篇文章给大家分享的是有关如何通过top 和 jstack 确定哪些线程耗尽CPU,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,

这篇文章是关于如何确定哪些线程通过top和jstack耗尽了CPU。边肖觉得很实用,就分享给大家学习一下。希望你看完这篇文章能有所收获。让我们和边肖一起看看。

背景

在线集群负载会突然飙升,CPU利用率会达到100%,无法响应正常请求,然后服务器就会宕机。

那么导致负载激增的线程到底在做什么呢?哪些线程占用CPU?您可以通过top和jstack命令进行定位。

定位步骤

1.top找出占用高CPU的进程PID。

如何通过top  和 jstack  确定哪些线程耗尽CPU

2.top -p PID -H命令找出进程中占用CPU最高的线程。

3.根据线程ID(需要从十进制转换为十六进制),从线程栈中找出第二步找到的线程。

printf0x%x 43845

如何通过top  和 jstack  确定哪些线程耗尽CPU

4.命令打印出线程堆栈

如何通过top  和 jstack  确定哪些线程耗尽CPU

发现大量GC线程正在运行。

为什么是GC线程?

最后的定位问题是调用数据库查询方法List queryForList(Query query)拉取大量数据集加载到内存中,这些数据集还是小数据。小数据最初是通过JVM加载到年轻一代的,但是年轻一代的内存很快就满了,数据是通过JVM yongGC传输到老一代的。但是老一辈的内存也很快被填满,使用了JVM满GC,导致雪崩,内存利用率100%,CPU利用率100%。

以上是如何通过top和jstack确定哪些线程用完了CPU。边肖认为,一些知识点可能会在我们的日常工作中看到或使用。我希望你能通过这篇文章学到更多的知识。更多详情请关注行业资讯频道。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/144632.html

(0)

相关推荐

  • 脂肪代谢过程,什么状态下人体可以先消耗脂肪

    技术脂肪代谢过程,什么状态下人体可以先消耗脂肪这是减肥的朋友最关心的一个话题,因为每个减肥粉们都想提高减脂效率,让自己尽快的瘦下来。在这里,首先要说明,我们只讨论在运动减肥中”什么状态下先消耗脂肪“,其他什么药物减肥脂肪

    生活 2021年10月24日
  • 深入理解flink实时大数据处理实践(大数据系统开发基础)

    技术怎么实现大数据处理引擎Spark与Flink比拼今天就跟大家聊聊有关怎么实现大数据处理引擎Spark与Flink比拼,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收

    攻略 2021年12月17日
  • 全球充电宝排行榜10强,哪个品牌的充电宝更实用更安全

    技术全球充电宝排行榜10强,哪个品牌的充电宝更实用更安全应"悟空小秘书"邀答全球充电宝排行榜10强!哪个品牌的充电宝更实更安全?答:那还要问吗?华为充电宝最好、最安全!理由何在?1⃣️华为充电宝充电时的温度控制在70度的

    生活 2021年11月1日
  • 傅雷家书1954年概括,傅雷家书1954年的主要内容

    技术傅雷家书1954年概括,傅雷家书1954年的主要内容1954年,傅聪出国学习钢琴,孤身远在他乡,孤独枯寂,傅雷夫妇以家书来鼓励儿子潜心学习,报效国家.多年来,傅雷夫妇的家书一直伴随着傅聪的生活,学习,乃至恋爱,结婚生

    生活 2021年10月27日
  • Linux DRM内核模块怎么定义

    技术Linux DRM内核模块怎么定义本篇内容主要讲解“Linux DRM内核模块怎么定义”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux DRM内核模块怎么定义”吧

    攻略 2021年11月23日
  • quartz.net动态创建任务(quartz.net怎样知道执行结果)

    技术Quartz在.NET中怎么使用本篇内容主要讲解“Quartz在.NET中怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Quartz在.NET中怎么使用”吧!一、

    攻略 2021年12月17日