Golang 定时器 cpu 使用率过高的问题
早上打开电脑摸鱼的时候发现公司的测试环境的一个微服务CPU单核占用率到了99%,因为是核心服务,一直以为是处理业务逻辑的原因, 下午的时候就飙到了199%,而且很稳定的维持中,发现不对劲,去其他环境一看,果然这个服务的CPU占用率都不正常, 很可惜没有对这个服务开启pprof,找不到具体原因, 看看代码, 很顺利找到原因
看到代码时立马想到了当年看过群主的这篇blog
原因还是锁抢占的问题
demo 如下
1 |
|
稍微加大协程运行等待一段时间,cpu占用率果然上来了
后来重构了这块代码,不在使用time.NewTicker才解决这个问题
Golang 定时器 cpu 使用率过高的问题
https://maocat.cc/2022/09/06/blog/golang/golang_time_cpu/