当前位置: 首页 > news >正文

linux cpu占用分析,Linux下CPU占用率高分析方法

一、可能有线程一直占用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

相关文章:

  • linux信号处理响应异步事件,Linux并发(异步信号)
  • redis 3.0.0 linux下载,Redis可视化管理软件RedisPlus 3.0.0下载,优化了性能及交互体验...
  • c语言阶乘 ii多测试,C语言经典题目:求阶乘n!=n*(n-1)*...*1,阶乘和s=1!+(2)!+(3)!+...+n!...
  • 利用c语言实现几何图形旋转,[平顶山学院高等数学C语言试题.doc
  • linux子系统adb,[ubuntu] win10中linux子系统增加adb调试功能
  • android 媒体按钮,如何使用新的MediaSession类在Android 5.x上接收媒体按钮?
  • android按钮图,android-UI组件实例大全(三)------按钮Button与图片按钮ImageButton
  • android jmdns,jmdns.jar 通信
  • 锁定当前屏幕触摸android,Android解锁屏幕,然后重新锁定屏幕(Nook简单触摸)
  • 华为鸿蒙os2.0版适用机型,鸿蒙os2.0支持机型_华为鸿蒙os2.0系统支持什么手机
  • android画笔大小,android之画板功能之橡皮擦 画笔大小和画笔颜色
  • dll文件可以在Android上用吗,在Android应用程序中使用dll文件
  • html给看板娘添加语音,如何在网页上插入一个看板娘
  • Android调用美图皮肤接口,首创皮肤识别 美图秀秀android新版上线
  • 没有什么效果的html标签,h1fontcolor=red为什么像这样的标签输入没有效果呢.。。。/font/h1_html/css_WEB-ITnose...
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • conda常用的命令
  • css的样式优先级
  • Electron入门介绍
  • gf框架之分页模块(五) - 自定义分页
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • Js基础知识(四) - js运行原理与机制
  • maven工程打包jar以及java jar命令的classpath使用
  • Node + FFmpeg 实现Canvas动画导出视频
  • node 版本过低
  • vue2.0开发聊天程序(四) 完整体验一次Vue开发(下)
  • Vue--数据传输
  • 面试遇到的一些题
  • 爬虫模拟登陆 SegmentFault
  • 前端性能优化--懒加载和预加载
  • 线上 python http server profile 实践
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • 源码安装memcached和php memcache扩展
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • ​批处理文件中的errorlevel用法
  • ​水经微图Web1.5.0版即将上线
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (简单有案例)前端实现主题切换、动态换肤的两种简单方式
  • (六)vue-router+UI组件库
  • (十) 初识 Docker file
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (转)【Hibernate总结系列】使用举例
  • (转载)深入super,看Python如何解决钻石继承难题
  • (轉)JSON.stringify 语法实例讲解
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .net framework 4.0中如何 输出 form 的name属性。
  • .net 设置默认首页
  • .NetCore Flurl.Http 升级到4.0后 https 无法建立SSL连接