首页 > 其他分享 >线程诊断笔记

线程诊断笔记

时间:2023-07-29 17:23:08浏览次数:35  
标签:占用 jstack 笔记 ID 诊断 死锁 线程 CPU

CPU占用过高

1、top命令查看占用CPU较高的进程
2、通过进程ID获取当前进程下线程的CPU占用情况
打印进程ID,线程ID,以及占用CPU

ps H -eo pid,tid,%cpu

查询指定进程的线程CPU占用情况

3、通过jstack命令查询线程占用情况

jstack 【pid】

4、十进制线程ID转换成十六进制并确定占用CPU较高的线程
十进制换算成十六进制

jstack找到出问题的线程

二、程序长时间无响应

通过jstack 命令查看
死锁

通过结果可以看出是两个线程发现了死锁,下面也包含两个线程的详细信息,以及发生死锁的代码位置。

欢迎大家留言,以便于后面的人更快解决问题!另外亦欢迎大家可以关注我的微信公众号,方便利用零碎时间互相交流。共勉!

标签:占用,jstack,笔记,ID,诊断,死锁,线程,CPU
From: https://www.cnblogs.com/caozz/p/thread_tuning.html

相关文章

  • 复盘笔记
    1知识点1.1开根号、幂运算平方根幂运算1幂运算21.2列表一维列表(数组)的创建a=[0for_inrange(3)]二维列表(数组)的创建a_list=[[0for_inrange(3)]for_inrange(5)]数组的清理a.clear()1.3遍历forkinrange(1,5):#步长为1第一次......
  • STM32入门学习笔记
     【1-1】、定时器定时中断&定时器外部时钟第一步:RCC开启时钟,是每个代码的第一步第二步:选择时基单元的时钟源,对于定时中断,我们选择内部时钟源第三步:配置时基单元,包括预分频器、自动重装器、计数模式等等,可以用结构体进行配置第四步:配置输出中断控制,允许更新中断输出到NVIC第五......
  • [k8s]k8s入门笔记
    ......
  • Python面向对象编程-学习笔记(二)
    5.类的继承classEmployee:raise_amount=1.04def__init__(self,first,last,pay):self.first=firstself.last=lastself.pay=payself.email=first+'.'+last+'@company.com'cla......
  • Hyper-V Best Practices读书笔记
    1.安装Hyper-V:Install-WindowsFeature-Namehyper-v,Multipath-IO-IncludeAllSubFeature-IncludeManagementTools-RestartNew-VMSwitch-NameSW-1G-NetAdapterName"LocalAreaConnection2"IfyouhaveonlyoneNIC,runthefollowingcommand:New-VMSwit......
  • 进程与线程的对比
    在Python中,进程(Process)和线程(Thread)都是用于实现并发执行的机制,但它们有一些重要的区别。执行方式:进程是程序的一次执行过程,具有独立的内存空间,每个进程都有自己的代码段、数据段和堆栈;而线程是在进程内部执行的,共享进程的内存空间,包括代码段、数据段和堆栈。资源占用:由于每......
  • 线程池
    在Python中,可以使用concurrent.futures模块提供的线程池来管理和执行多个线程任务。线程池提供了一种方便的方式来处理并发任务,可以有效地利用系统资源,提高程序的性能。'''在Python中,可以使用concurrent.futures模块提供的线程池来管理和执行多个线程任务。线程池提供了一种方......
  • 小鱼书学习笔记
    第3章神经网络将输入信号的总和转换为输出信号,这种函数一般称为激活函数(activationfunction)激活函数的作用在于决定如何来激活输入信号的总和。本书在使用“感知机”一词时,没有严格统一它所指的算法。一般而言,“朴素感知机”是指单层网络,指的是激活函数使用了阶跃函数A的模型。......
  • React18学习笔记
    目录使用Create-React-App创建项目使用Vite创建项目JSX语法基础标签属性事件插入JS变量和表达式条件判断循环实践:列表页组件Props组件通讯HooksuseState基本使用特点使用useState实现问卷的增删改使用immer解决不可变数据问题useEffectuseRefuseMemo......
  • c语言学习笔记5
    内存空间在C语言中,内存空间可以被划分为以下几个部分:1.栈(Stack):这部分内存由编译器自动分配和释放,用于存放函数的参数值,局部变量等。其操作方式类似于数据结构中的堆栈,先进后出。2.堆(Heap):堆是用于动态内存分配的。与栈不同,堆的分配和释放必须由程序员自己操作。在C语言中,使用m......