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

线上问题排查之【CPU飙高100%】

目录

案例

发现问题

排查问题

步骤一

步骤二

步骤三


案例

import java.util.concurrent.TimeUnit;/*** 简单写一个CPU飙高的案例*/
public class CpuLoadUp {// 这里定义了一个标识private volatile static int flag = 0;public static void main(String[] args) {// 执行线程A的处理逻辑threadAProcess();// 执行线程B的处理逻辑threadBProcess();}public static void threadAProcess() {// 这里只是作为案例演示,实际上这里使用的是线程池new Thread(() -> {try {// 这里模拟业务逻辑需要处理很久TimeUnit.MINUTES.sleep(10);// 业务处理完之后更改标识flag为1flag = 1;} catch (InterruptedException e) {// 业务逻辑处理失败}}, "thread-A").start();}public static void threadBProcess() {// 这里只是案例演示,实际上这里使用的是线程池new Thread(() -> {// thread-A中的业务逻辑执行太久使得这里一直循环for (; ; ) {// 执行某业务逻辑// 直到flag为1时,执行结束,跳出循环if (flag == 1) {break;}}}, "thread-B").start();}
}

发现问题

  • 使用【top】命令查看到有一个java进程CPU飙到100%,进程号为2567
  • 使用【jps】命令查看到正在运行的java程序
# top指令查看系统后台的进程状态
top

# jps指令查看正在运行的Java进程
jps

排查问题

步骤一

使用【top -Hp <进程ID>】查看进程中占用率最高的线程,占用率达到99.9%的线程PID为2578

top -Hp 2567

步骤二

将线程的PID转换为十六进制,结果是a12

public class MainTest {public static void main(String[] args) {// 查看2578的十六进制数,结果为a12System.out.println(Integer.toHexString(2578));}
}

步骤三

使用【jstack】命令查看线程堆栈信息,用十六进制线程ID搜索

# [-A 10]代表查看后10行信息
jstack 2567 | grep -A 10 'a12'

http://www.dtcms.com/a/290834.html

相关文章:

  • 深入理解 C++ 中的指针与自增表达式:*a++、(*a)++ 和 *++a 的区别解析
  • spring入门
  • EMBMS1820芯祥科技18单元电池监控器芯片数据手册
  • MySQL二进制包安装
  • OpenAI Codex CLI与 Google Gemini CLI 比较
  • Match宣布2025曼谷发布会,发布“保本”资管新范式,旨在重塑Web3投资规则
  • 【科研绘图系列】R语言绘制棒棒图和哑铃图
  • neuronxcc包介绍及示例代码
  • IOPaint+CPolar:零公网IP也能搭建专属AI图像编辑平台
  • 【设计模式】迭代器模式 (游标(Cursor)模式)
  • 编程基础:职责分配
  • 14.7 Alpaca格式深度解析:3倍指令准确率提升的LLM微调秘诀
  • 【计算机组成原理】C语言中数据类型表示及转换总结
  • 第19章 AB实验的局限性
  • 完整的 SquareStudio 注册登录功能实现方案:
  • Docker Desktop安装nginx
  • 相机标定(非ROS相机)
  • 数组去重性能优化:为什么Set和Object哈希表的效率最高
  • VRRP技术
  • CSS中用display实现元素的显示/隐藏切换
  • 教育数字化革命:低代码破局与未来展望
  • `@Disabled` 注解未生效的原因分析与解决方案
  • 【PHP安全】免费解密支持:zend52、zend53、zend54好工具
  • 精密深孔偏心检具的制作及光学深孔检测探究 —— 激光频率梳 3D 轮廓检测
  • DevCon 6记录
  • GeoPandas 进行真正的地理空间可视化
  • ssh2-sftp-client 简化 sftp 文件传输的 node库
  • 轮状太空城的科学依据浅谈
  • 渗透测试视角:Web 应用常见漏洞的利用与防御策略
  • Unity-NavMesh详解-其二