线上CPU飙高诊断定位
创始人
2024-05-24 03:46:32
0

1. 先准备一段java程序,后台运行

在这里插入图片描述
2. 使用 top命令查看cpu的进程使用情况

在这里插入图片描述
在这里看到了一个进程占据了99.3%的cpu利用率,这显然是出现了cpu飙升的情况,这会到期系统其他进程得不到cpu的使用权,从而出现卡顿,因此需要进行排查导致cpu飙升的进程哪里出现了问题

3.使用 命令查看进程和进程下线程的cpu使用率

ps H -eo pid,tid,%cpu grep 32655

 -ps  查看进程对cpu的占用情况- H  显示这台机器的所有进程-  eo  输出感兴趣的内容-  pid  进程id-  tid 线程id- %cpu cpu的百分占用率-  grep 过滤出自己感兴趣的进程号-  32655 进程号

此时看到了进程和其对应下的线程的cpu使用百分比
在这里插入图片描述

可以看到,进程号为32655,该进程下对应的线程号为32665的线程出现了cpu占用率飙高的情况

4.使用jstack 进程id 查看该进程下所有运行的线程运行形况

将上一步查出来的线程id转换成十六进制的数,然后与jstack命令输出的线程信息做对比,找到对应的进程

32665 转换为十六进制是:7f99,根据这个数找到对应线程

在这里插入图片描述
通过线程输出的日志信息找到对应占据cpu飙升的部分代码,进行优化

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...