转载:https://user.qzone.qq.com/285483820/1

最近程序在一台机器上出现了 cpu 占用率100%的情况,而执行同一份代码的其他机器则没有问题。很让我崩溃~~
今天找到了解决方案:
     先用 top 命令,找到 java 进程的 pid:
     如 pid 为 1000;
   再用 top -H -p  1000 命令查看在这个进程中,消耗 cpu 最多 的线程,如 1003;
   最后使用 jstack 1000 > dump_file 把这个进程的堆栈信息 dump 到文件中,
   打开 dump_file,找到 id 为1003的线程(要转化为16进制),就能发现是哪个方法占用了 cpu,分析自己的代码,
 改正 bug!

top命令

显示当前系统正在执行的进程的相关信息,包括进程ID、内存占用率、CPU占用率等

-p 表示进程PID
-c 显示进程的绝对路径
-H 显示进程的所有线程

top -Hp pid 显示所有的线程

可以显示所有的线程

(top显示参数

VIRT 表示 Virtual Memory 虚拟内存
RES 表示 Resident Memory 驻留内存
SHR 表示 shared memory 共享内存

RES 表示 进程占用的 物理内存数,实际使用数,而非申请的内存数)

jstack可以定位到线程堆栈,根据堆栈信息我们可以定位到具体代码,所以它在JVM性能调优中使用得非常多。下面我们来一个实例找出某个Java进程中最耗费CPU的Java线程并定位堆栈信息,用到的命令有ps、top、printf、jstack、grep。

如何找到 java 程序 CPU 使用率100%的原因相关推荐

  1. linux cpu占用100原因查询,如何根据查询异常时间节点和连接进而确定CPU使用率100%的原因...

    本文在介绍如何根据查询异常时间节点和连接进而确定CPU使用率100%的原因的基础上,重点探讨了其具体步骤,本文内容紧凑,希望大家可以有所收获. 排查 Linux 实例异常 CPU 使用率 100% 使 ...

  2. java程序CPU使用率高可能的原因

    1. 前言 在Java并发编程方面,如何在多线程环境中设置合理的线程数,那我们需要了解两个概念: 计算密集型 要进行大量的计算.逻辑判断等操作,消耗CPU资源,比如计算圆周率.对视频进行高清解码等等, ...

  3. Java程序 CPU使用率过高怎么办?

    java程序 cup使用率过高,会导致程序运行速度变慢,导致系统崩溃等 原因是多向的.跟内存泄漏,数据库等都有关 参考一些解决方案: 检查是否有死循环. 频繁的GC.或者有大量的线程. 算法太复杂或者 ...

  4. Java 程序 CPU 使用率过高问题定位与修复

    问题现象:CPU 负载过高 我们线上的 jenkins 系统,时不时会发生 CPU 负载过高的现象. CPU 负载过高后,SRE 同学会收到电话告警. 在我们的监控系统中,可以看到,某些时候,CPU ...

  5. 如何查看JAVA进程CPU占用100%的原因

    一.top命令查找进程号 二. ps -mp [进程号] -o THREAD,tid,time 命令打印进程的线程情况 三.printf "%x\n" [线程号] 转换有问题线程号 ...

  6. 记录一次生产CPU使用率100%问题排查

    问题背景 四月中旬生产环境的服务器频繁爆出cpu使用率100%的警告,起初这个业务线不是我负责,也就没有深入了解问题.后边,负责这个业务线的同事离职了,这件事就落在我这边了.然后,开始长达两个月的问题 ...

  7. java进程cpu使用率高_什么会导致Java应用程序的CPU使用率飙升?

    问题 无限循环的while会导致CPU使用率飙升吗? 经常使用Young GC会导致CPU占用率飙升吗? 具有大量线程的应用程序的CPU使用率是否较高? CPU使用率高的应用程序的线程数是多少? 处于 ...

  8. Linux生产环境CPU使用率100%,教你定位到具体函数

    在我们项目部署上线的时候,我们是不是会经常去Linux服务器上查查服务器的CPU使用率,或者是运维经常会盯Linux的CPU使用率,发现监控报了60%的一般就会报警了,到了100%那就惨啦,做我开发的 ...

  9. java程序cpu突然飚高_高频面试题:Java程序占用 CPU 过高怎么排查

    这个问题可以说是 Java 面试的高频面试题了,有很多面试官都喜欢问这个问题,问题可能是下面这样的.线上一台服务器 CPU 使用率100% 了,如果你碰到这样的情况,如何排查并找到问题原因? 这就是一 ...

最新文章

  1. 二值logit模型的适用条件_一文读懂条件Logistic回归
  2. 【Qt】Qt源码中涉及到的设计模式
  3. linux docker 限制容器可用内存
  4. hdu 5367(线段树+区间合并)
  5. boost::mpi模块all_reduce() 集合的测试
  6. knn人脸识别判断_测试使用K-最近邻(kNN)算法的30个问题
  7. LeetCode Algorithm 剑指 Offer II 056. 二叉搜索树中两个节点之和
  8. python 数组写txt_python txt文件常用读写操作
  9. ffmpeg libx264_编程小短文:FFmpeg视频画面尺寸调整,必知必会
  10. 【C语言】通过原子操作实现加减乘除操作Ⅱ
  11. Java-Exception异常
  12. YVU420PackedSemiPlanar32m4ka与YUV420PackedSemiPlanar64x32Tile2m8ka
  13. 关于docker的日常操作(二)
  14. 云服务器安装 jdk
  15. 揭秘:名震天下的震网病毒(Stuxnet)是如何被发现的?
  16. 新浪微博开放平台开发-android客户端(1)
  17. lucas定理 与 扩展lucas定理(HDU 3037 以及 2015 ICL, Finals, Div. 1 J.Ceizenpok’s formula)
  18. java apdu读取社保卡_使用javax.smartcardio的用于智能卡的ISO 7816 APDU
  19. 使用Calendar 计算两个日期相差天数,
  20. C#自学42一抽象类和接口

热门文章

  1. 关于IE 10 你应该知道的6件事
  2. 将汉字输入到计算机,一种将汉字输入计算机的方法
  3. Jamie求职记--北邮信通小硕--技术类
  4. 2018 考研 408 经验贴——数学一
  5. 机器视觉应用高光面产品瑕疵检测
  6. 智能物料运输小车设计与实现
  7. 有思科账号和思科学院账号后,登陆仍然提示“Sorry, we can’t find…”.【解决Cisco Packet Tracer登陆问题】
  8. 关于网页版伪春菜橘花shell的加载方法研究
  9. 文件上传与下载的场景梳理
  10. 轧钢测径仪软件分析图 钢材质量直观体现