Linux下CPU占用率高分析方法

Stella981
• 阅读 783

一、可能有线程一直占用CPU资源

1. 先通过 ps 查看进程状态,找出进程的PID(8209)。

2.jstack -l 8209 > /usr/local/work/tomcat/8209.stack 导出PID对应的线程信息到文件

3.对导出的线程文件下载本地做分析(可以文本打开)

4. 通过top -H -p 8209 命令查看对应进程是哪个线程占用CPU过高(eg:8308)

5.printf "%x\\n" 8308 转换十进制为十六进制 此处为:2074。

6.在导出的堆栈文件中搜索线程ID等于nid=0x2074的线程,此处即列出了该线程对应的类

7.根据线程信息找到对应的类定位问题成功,可能的原因:

                     1.程序计算比较密集(大型矩阵的运算)

                     2.程序出现了死循环(while循环,hashmap死循环)

                     3. 程序逻辑结构的问题(数据库连接没有释放,连接池死锁,自旋锁一直占用着内存)

二、查看磁盘使用率是不是超出正常范围。(df)

三、查看内存使用率是否超出正常范围(free)

四、jvm内存状态可能出现异常,可能频繁的GC原因。可以适当的改变堆栈比例。

CPU利用率:1 - CPU空闲运行时间/总运行时间

CPU负载(load):是指在一段时间内占用cpu时间的进程和等待cpu时间的进程数(处于被唤醒状态,不是wait状态),取决于CPU队列。

如果现在出现CPU利用率很低,load很高的情况,可能是IO密集型的任务比较多。

原文地址:https://blog.csdn.net/qiuchaoxi/article/details/81296713
点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Easter79 Easter79
3年前
sql:mysql:函数:TIMESTAMPDIFF函数实现TimeStamp字段相减,求得时间差
<divclass"htmledit\_views"id"content\_views"<p&nbsp;函数内指定是minute,则最终结果value值的单位是分钟,如果函数内指定为hours,则最终结果value值单位为小时。</p<preclass"has"name"code"<codeclass"hljssql"<
Stella981 Stella981
3年前
AndroidStudio封装SDK的那些事
<divclass"markdown\_views"<!flowchart箭头图标勿删<svgxmlns"http://www.w3.org/2000/svg"style"display:none;"<pathstrokelinecap"round"d"M5,00,2.55,5z"id"raphael
Wesley13 Wesley13
3年前
Java面试
<divclass"htmledit\_views"id"content\_views"<pid"maintoc"<strong目录</strong</p<pid"Java%E5%9F%BA%E7%A1%80%EF%BC%9Atoc"style"marginleft:40px;"<ahref"Java%E5%
Stella981 Stella981
3年前
Python基础教程,Python入门教程(非常详细)
<divclass"htmledit\_views"id"content\_views"<p<ahref"http://c.biancheng.net/python/base/"rel"nofollow"第1章Python编程基础</a</p<p1.<ahref"http://c.biancheng.net/view/
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_