背景 最近,上线的采集器忽然时有OOM.采集器本质上是一个grpc服务,网络设备通过grpc协议将数据上报后,采集器进行格式等整理后,发往下一个系统(比如分析,存储). 打开运行环境,发现特性如下: 每个采集器实例,会有数千个设备相连.并且会建立一个双向 grpc stream,用以上报数据. cpu的负载并不高,但内存居高不下. 初步猜想,内存和stream的数量相关,下面来验证一下. 优化内存 这次,很有先见之明的在上线就部署了pprof.这成为了线上debug的关键所在. import _