记一次线上部署cpu占用大的问题分析

最近开发了一版kafka消费存redis的代码,部署到客户现场后发现经常跑着跑着cpu占用特别高,把代码里面所有数据库交互操作去除后依然还是会出现该问题。
2.1、微服务kafka配置问题:

(1)、最大拉取数过大,原先配置文件默认拉取5000条,而此次修改的的能耗计算在消费时做的操作变多,有可能出现超过自动提交时间还未处理完这次拉取数据的情况。
(2)请求超时时间与自动提交时间设为一样,因为问题(1)的原因,可能出现一次拉取处理时间达到自动提交时间还未处理完,消费者心跳过期,离开消费组从而失去该消费组消费数据的情况。也就是问题发现中服务可以正常访问但不进行消费的出现原因。
(3)spring.boot.kafka.concurrency配置,此配置是用来设置消费者的线程数,建议与当前topic的分区数保持一致。
2.2、代码问题:
(1)、查看linux线程后发现微服务仍在运行,但通过查看服务运行参数发现服务cpu占用率达到790%左右。通过脚本间隔20秒打印一次服务器cpu保存到位置,而后与微服务日志进行比对,发现每次代码每次报错时cpu均会达到95%以上,检查代码后发现kafka消费未进行异常捕获,解决了该报错同时加上异常捕获后服务器cpu占用有显著下降
(2)、在kaka处理逻辑中存在入库操作,且写在了遍历中,开发时预估此处触发的次数较少故未放于循环外,部署至现场后数据量较大时,会出现一次消费多次连接数据库,同时现场数据量过大,插入的表中数据量过大

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值