一次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内存泄露排查经过
网页路径:http://azwzsj.com/article/dsoisge.html