一次Kafka内存泄露排查经过
一、现象
服务部署后内存总体呈上升趋势
我们提供的服务有:网站设计、成都网站制作、微信公众号开发、网站优化、网站认证、海州ssl等。为千余家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的海州网站制作公司
二、排查过程
通过go tool pprof收集了三天内存数据
2月11号数据:
2月14号数据:
2月15号数据:
我们使用sarama客户端连接kafka,可以看到newPartitionProducer持续增长,可定位到是kafka的问题。而newPartitionProducer是分区生产者,因此查看分区相关的数据。
最近增加的topic:ai_face_process_topic,这个是AI换脸的,每生成一个视频都要通过Kafka中转消息到视频处理服务器。
查阅数据库看视频生成记录。2022.1.25上线到今天2022.2.15一共20天,只增长了701个视频,平均每天35个视频。
但这个topic有64个分区。这是因为视频生成过程比较耗时,当时考虑到需要提高并发量,所以需要分区数比较多。
查看sarama客户端的API代码,给每个分区发消息时会判断这个分区的handler是否存在,不存在则创建。
sarama创建partition handler的关键代码:
handler := tp.handlers[msg.Partition]
标题名称:一次Kafka内存泄露排查经过 URL地址:http://hbruida.cn/article/dsoisge.html |