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

线上问题排查之【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.xdnf.cn/news/15899.html

相关文章:

  • [Ninja] 快速构建系统 | 字符串处理 | 0拷贝
  • JVM 类加载过程笔记
  • leetcode-sql-627变更性别
  • 计算机发展史:互联网时代的万物互联与全球变革
  • stm32mp157f-dk2安装镜像并且部署qt全流程
  • tcp的三次握手与四次挥手
  • Softhub软件下载站实战开发(二十):Docker部署全攻略
  • WPF——自定义ListBox
  • 注解 + AOP 的方式记录日志到 t_ops_sync_log 表
  • 使用相机不同曝光时间测试灯光闪烁频率及Ai解释
  • 宝塔访问lnmp项目,跳转不到项目根目录问题解决
  • 后训练(Post-training)语言模型
  • Linux system-timesyncd时间同步机制详解
  • Django模板系统
  • Oracle 数据库共享池与大池调优指南
  • RuoYi配置多数据源失效
  • 【烧脑算法】拓扑排序:从“依赖”到“序列”,理解题目中的先后逻辑
  • 虚拟电厂蓄势:源网荷储联动如何实现电力系统的 “智慧蝶变”?
  • 如何升级到macOS Tahoe:全面指南与实用步骤
  • 从一开始的网络攻防(六):php反序列化
  • 关于JavaWeb的总结笔记
  • 云原生周刊:K8s 中的后量子密码学
  • 【学习路线】C#企业级开发之路:从基础语法到云原生应用
  • docker 容器学习
  • zabbix企业级分布式监控环境部署
  • 【Prometheus+Grafana篇】监控通过Keepalived实现的MySQL HA高可用架构
  • 在翻译语义相似度和会议摘要相似度评估任务中 ,分类任务 回归任务 生成任务区别
  • 布局AI +文化新赛道,浙江省文化产业投资集团赴景联文科技调研交流
  • uniapp【uni-ui】【vue3】样式覆盖方式记录
  • Git上传与下载GitHub仓库