cpu飙高问题,案例分析(三)——非标导入引发CPU彪高,与RateLimiter限流

一、背景

非标导入使用easyexcel组件进行导入处理,10几万的数据量引发CPU彪高。

二、排查思路

  1. 查看线程栈相关信息;
  2. pinpoint监控查看性能及代码调用情况;
  3. 是否存在大量阻塞慢SQL;
  4. 是否存在短时间内频繁日志输出;

三、问题再现

  使用之前分表导入的30万数据进行导入操作,myops查看排名前十线程栈相关信息(如下图),发现lbs_non_standard_account_common单个线程消费占用CPU 8%左右,启动的线程数量很多。
在这里插入图片描述

四、改善措施

  1. AnalysisEventListener的子类CommonImportExcelListener的invoke方法已将近每秒1万的速率迅速完成业务逻辑校验发送MQ,该MQ内部消费进行业务处理逻辑处理;
  2. 30万的数据将近30秒内发送MQ完成,给消费内部逻辑带来压力导致CPU彪高,使用RateLimiter进行了MQ发送的限流;
  3. 调整消费者主题“lbs_top” 的maxConcurrent参数(该参数设置为单组启动线程数),单个应用实例启动线程的最大数=maxConcurrent参数* 分组数量;
  4. 针对lbs_top消费逻辑中的部分业务查询进行内存缓存改造;

五、RateLimiter

高并发之限流-RateLimiter

六、慢sql解决方案

  1. 增加索引;
  2. 读写分离;

Mysql读写分离(Mycat版)

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值