文章预览
背景 项目背景 worker 服务数据链路图 worker 服务消费上游数据(工作日高峰期产出速度达近 200 MB/s ,节假日高峰期可达 300MB/s 以上),进行中间处理后,写入多个下游。在实践中结合业务场景,基于 快慢隔离 的思想,以三个不同的 consumer group 消费同一 Topic,隔离三种数据处理链路。 面对问题 worker 服务在高峰期时 CPU Idle 会降至 60%,因其属于数据处理类计算密集型服务,CPU Idle 过低会使服务吞吐降低,在数据处理上产生较大延时,且受限于 Kafka 分区数,无法进行横向扩容; 对上游数据的采样率达 30% ,业务方对数据的完整性有较大诉求,但系统 CPU 存在瓶颈,无法满足; 性能优化 针对以上问题,开始着手对服务 CPU Idle 进行优化; 抓取服务 pprof profile 图如下: go tool pprof -http=:6061 http://「ip:port」/debug/pprof/profile
………………………………