美文网首页
【2019-08-12】java进程cpu使用率高,定位具体线程

【2019-08-12】java进程cpu使用率高,定位具体线程

作者: 学师大术 | 来源:发表于2019-08-12 10:46 被阅读0次

问题现象

cpu使用率高

分析过程

  1. 使用top命令获取cpu的高的进程编号PID。
    op显示信息,需要关注的相关信息:
  • load average:反映了任务队列的平均长度。如果此值超过了CPU数量,则表示当前CPU数量不足以处理任务,负载过高
  • %us:用户CPU时间百分比。如果此值过高,可能是代码中存在死循环、或是频繁GC等
  • %sy:系统CPU时间百分比。如果此值过高,可能是系统线程竞争激烈,上下文切换过多,应当减少线程数
  • %wa:等待输入输出CPU时间百分比。如果此值过高,说明系统IO速度过慢,CPU大部分时间都在等待IO完成
  • %hi:硬件中断CPU百分比。当硬件中断发生时,CPU会优先去处理,例如网卡收包会产生硬件中断,会优先处理
  • swap used:被使用的swap。内存不住时才会用到,此值过高代表系统因为内存不足而导致频繁的换入、换出操作,这样会影响效率,应增大内存量
  • %CPU:进程使用CPU的百分比
  1. 获取进程中线程信息
top -H -p PID > /tmp/top.txt
  1. 获取进程信息
 jstack PID > /tmp/jstack.txt
  1. 将线程tid转化成16进制
printf "0x%x\n" tid
  1. 将16进制的信息在jstack.txt匹配找到对应的线程。

相关文章

  • 【2019-08-12】java进程cpu使用率高,定位具体线程

    问题现象 cpu使用率高 分析过程 使用top命令获取cpu的高的进程编号PID。op显示信息,需要关注的相关信息...

  • JVM 问题排查

    CPU使用率高 找出使用率高的进程的pid 找出使用率高的线程tpid 查看使用率高的线程当前在干什么 GC问题 ...

  • cpu使用率高问题分析过程

    1.使用top查看cpu使用率,找出cpu使用率高的java进程。 2.top -H -p PID 查看进程中cp...

  • JVM问题排查

    一、线上CPU飚高、死锁等排查基本步骤: 1、top 记录CPU使用率最高的JAVA进程PID 2、top -H...

  • 如何定位java进程cpu占用过高

    如何定位java进程cpu占用过高 如何定位java进程cpu占用过高,分三步走 根据cpu消耗,打印出pid进程...

  • 查看CUP最高线程shell脚本

    查看CPU使用率高的线程 查看load高时处于运行队列的进程: R代表运行中的队列,D是不可中断的睡眠进程系统有很...

  • CPU%100问题排查

    1、找到最耗CPU的进程2、找到最耗CPU的线程3、查看堆栈,定位线程,定位对应代码 步骤一、找到最耗CPU的进程...

  • CPU暴涨排查过程

    1 定位CPU占用高的进程 使用top -c 来查看当前的进程信息。默认是按照CUP的使用率进行排序的,闪动得太快...

  • 了解Kotlin协程你需要加深了解的 Java 线程

    协程铺垫知识 —— JAVA 线程 Question: 线程和进程的区别?cpu 个数、cpu 核心数、cpu ...

  • UNTITLED

    JVM 1、CPU占用过多如何定位 top 定位哪个进程对CPU占用最高(获取进程ID) ps 定位哪个线程引起C...

网友评论

      本文标题:【2019-08-12】java进程cpu使用率高,定位具体线程

      本文链接:https://www.haomeiwen.com/subject/fkuyjctx.html