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

一次CPU飙升问题排查定位

操作流程

  1. CPU飙升问题定位:
  • 定位高CPU进程
  • 进程内高CPU线程 top -Hp [PID]
  • jstack [PID] grep -A 20 [十六进制TID]抓取线程栈/arthas工具attach进程后profiler生成火焰图
    2.排查常见原因
  • 代码逻辑问题:死循环、递归爆栈、频繁字符串拼接
  • 资源竞争/锁等待
  • GC频繁:观察JVM及内存使用 新生代Minor GC和老年代FullGC
  • 系统资源问题:规格、亲和以及宿主机超分

原理深度
工作中,遇到过while true死循环;队列线程等待,频繁上下文切换导致的CPU空转;也遇到过业务冲击,频繁创建大对象,自适应模式下IHOP因为动态调整迟迟未触发标记周期造成JVM监控告警;更早之前也有CPU核数的负载不均以及宿主机超分的影响。
这里记录字符串拼接的主要原因是使用大模型解释频繁字符串拼接string导致CPU飙升的过程中,大模型提供问题1和问题2两种解释,个人误以为是在AB测试,因为个人更喜欢问题2深度拆解的风格,知其然并知其所以然,当然从工具论的角度,问题1更加快速,忽视技术细节,更多是从是什么的角度来讲解。

http://www.gsyq.cn/news/11954.html

相关文章:

  • ros2 control 2
  • 新学期每日总结(第4天)
  • VSCode 升级 C++支持版本
  • 在electron-vite使用ShadCN
  • 9-23
  • Ubuntu Uninstall App
  • day11 课程(学员管理系统案例)
  • US$128 OBD II Adapter Plus OBD Cable Works with CKM100 and DIGIMASTER III for Key Programming
  • jmeter函数
  • Windows 10 C盘占用释放 - tfel
  • CherryStudio+cpolar:让智能工作流突破组织边界 - 详解
  • 科学计算方法--矩阵分析记录
  • 分布式链路追踪-SkyWalking - 指南
  • Say 题选记(9.21 - 9.27)
  • 9.25总结
  • Day08-C:\Users\Lenovo\Desktop\note\code\JavaSE\Basic\src\com\David\array-ArrayDemo01~07
  • ansible注意的和错误代码分析
  • 用 Rust 和 Tesseract OCR 识别验证码
  • 基于寄存器地址amp;标准外设库的LED流水灯
  • Rust 和 Tesseract OCR 实现验证码识别
  • AI-Powered-ToDo-List
  • Python 在 Web 开发中的应用与趋势
  • LLM MOE的进化之路
  • 【pytorch】关于深度学习模型是怎么使数据从头流动到尾的
  • AtCoder ARC114 总结 (A-C)
  • 日总结 8
  • 完整教程:讲一下ZooKeeper的持久化机制
  • AI变现攻略 - 教程
  • 英语_阅读_A farmer dream_待读
  • docker 私有仓库 harbor