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)

相关推荐

  • Delphi 中String、ANSIString、TBytes之间的转换

    技术Delphi 中String、ANSIString、TBytes之间的转换 Delphi 中String、ANSIString、TBytes之间的转换这个问题要从最近一个项目谈起,服务器端要求UTF

    礼包 2021年11月15日
  • qt 绘制折线(qt地图绘制)

    技术Qt编写地图综合应用之如何绘制覆盖物折线这篇文章给大家分享的是有关Qt编写地图综合应用之如何绘制覆盖物折线的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、前言折线图目前应用最广的也是用来

    攻略 2021年12月25日
  • 大数据处理涉及的数据类型(数据库实时查询大数据)

    技术数据库中如何操作大数据集这篇文章给大家分享的是有关数据库中如何操作大数据集的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、子查询插入数据1、语法INSERT INTO table [ c

    攻略 2021年12月13日
  • Scrapy框架使用代理IP要点是什么

    技术Scrapy框架使用代理IP要点是什么Scrapy框架使用代理IP要点是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。scrapy框架通过模块化

    攻略 2021年10月28日
  • 怎么学会可视化操作数据库

    技术怎么学会可视化操作数据库怎么学会可视化操作数据库,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。我刚开始弄android数据库的时候,想查询一些数据,以验

    攻略 2021年12月1日
  • PHP Session有什么用

    技术PHP Session有什么用这篇文章给大家分享的是有关PHP Session有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。PHP SessionPHP session 变量用于存

    攻略 2021年11月25日