博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CPU高问题排查
阅读量:6451 次
发布时间:2019-06-23

本文共 991 字,大约阅读时间需要 3 分钟。

有关CPU占用高的问题

掌握一些常用命令 jstack jmap jps ps -ef 等等

jmap

# sudo -u admin /opt/taobao/java/bin/jmap -dump:live,format=b,file=/home/admin/crawler/logs/heap.bin 38

 

top 命令查看CPU使用情况 PID为进程号

 

 执行 ps -ef | grep 18201  找到具体进程

涉及公司图片不能泄露,以本机任意一个进程代替,这个命令会出现两个结果,第二个是刚才执行“ ps -ef | grep 18201 ” 产生的

查看所有容器  sudo docker ps -a

进入容器  sudo docker exec -it 容器ID bash

再次使用TOP命令

jstack打印堆栈信息

sudo -u admin /xxx/java/bin/jstack -l 34 > /localhost/stack.log

或者 sudo -u admin /xxx/java/bin/jstack `jps |grep Bootstrap |awk '{print $1}'`> /localhost/stack.log 

 

在宿主机 执行 cp filename ~ 直接copy到跳板机 

 

注意点:1、jstack需要绝对路径

2.jstack 是jstack是java虚拟机自带的一种堆栈跟踪工具,一定要去java/bin 目录下使用该命令 

 

分析jstack日志

执行  top -H p 进程ID    得到 具体线程ID

线程ID换算成16进制,在jstack日志中找对应的nid,例如nid=0x70,线程目前是 Waiting on condition,通过堆栈信息找到是哪一行代码的问题

 

 

  1. 死锁,Deadlock(重点关注) 
  2. 执行中,Runnable   
  3. 等待资源,Waiting on condition(重点关注) 
  4. 等待获取监视器,Waiting on monitor entry(重点关注)
  5. 暂停,Suspended
  6. 对象等待中,Object.wait() 或 TIMED_WAITING
  7. 阻塞,Blocked(重点关注)  
  8. 停止,Parked

 

 

 

 

 

转载于:https://www.cnblogs.com/number7/p/9276794.html

你可能感兴趣的文章
烦恼的程序员小白
查看>>
【更新】移动端控件集Xuni 2015 v3发布
查看>>
Qt使用教程之使用Qt Quick UI表单(三)
查看>>
MyEclipse Spring开发教程:用Spring创建iPhone App(1/2)
查看>>
Android studio 下的robotium自动化测试和持续集成
查看>>
SpringMVC强大的数据绑定(1)——第六章 注解式控制器详解——跟着开涛学SpringMVC...
查看>>
htop/dstat/top/ps命令的使用
查看>>
linux文件类型
查看>>
质量管理、人力资源管理
查看>>
Java_Day04
查看>>
核心动画的接触点滴(二)
查看>>
C语言的指针、链表的原理和各类操作以及学生信息管理系统改进报告
查看>>
php小问题总结(一)
查看>>
数据库设计规范
查看>>
以太网、交换机
查看>>
python运算符的优先级原来是这样的
查看>>
MySQL COLUMNS分区
查看>>
Linux第二周学习笔记(4)
查看>>
mongoDB应用
查看>>
决心书
查看>>