专栏名称: 芋道源码
纯 Java 源码分享公众号,目前有「Dubbo」「SpringCloud」「Java 并发」「RocketMQ」「Sharding-JDBC」「MyCAT」「Elastic-Job」「SkyWalking」「Spring」等等
目录
相关文章推荐
芋道源码  ·  5.6K ... ·  15 小时前  
芋道源码  ·  手把手教你实现一个Java Agent ·  15 小时前  
芋道源码  ·  面试官:为什么数据库连接很消耗资源? ·  2 天前  
芋道源码  ·  2W字全面剖析 Mybatis 中的9种设计模式 ·  2 天前  
51好读  ›  专栏  ›  芋道源码

糟糕,CPU 100% 了!!!

芋道源码  · 公众号  · Java  · 2025-04-23 09:30

正文

请到「今天看啥」查看全文


  • 3 死循环
  • 4 多线程导数据
  • 5 同步大量文件
  • 6 死锁
  • 7 正则匹配
  • 8 耗时计算

  • 前言

    cpu使用率100% 问题,是一个让人非常头疼的问题。因为出现这类问题的原因千奇百怪,最关键的是它不是必现的,有可能是系统运行了一段时间之后,在突然的某个时间点出现问题。

    今天特地把我和同事,之前遇到过的 cpu 使用率 100% 的问题,总结了一下,给有需要的朋友做个参考。

    基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

    • 项目地址:https://github.com/YunaiV/ruoyi-vue-pro
    • 视频教程:https://doc.iocoder.cn/video/

    1 一次性获取的数据太多

    我之前参与过餐饮相关的业务系统开发,当时我所在的团队是菜品的下游业务。

    当时菜品系统有菜品的更新,会发 kafka 消息,我们系统订阅该 topic ,就能获取到最近更新的菜品数据。

    同步菜品数据的功能,上线了一年多的时候,没有出现过什么问题。

    但在某一天下午,我们收到了大量 CPU100% 的报警邮件。

    追查原因之后发现,菜品系统出现了 bug,我们每次获取到的都是全量的菜品数据,并非增量的数据。

    一次性获取的数据太多。

    菜品修改还是比较频繁的,也就是说我们系统,会频繁地读取和解析大量的数据,导致 CPU 不断飙升。

    其根本原因是频繁的 full gc







    请到「今天看啥」查看全文