当前位置: 保成网 >  新闻资讯 >  一次CPU飙高排查:如何快速解决计算机CPU占用过高的问题?

一次CPU飙高排查:如何快速解决计算机CPU占用过高的问题?

更新时间:2025-07-01 08:15:49作者:zsbaocheng
公司有个系统大概两周左右cpu飙高,访问量不大一次CPU飙高排查:如何快速解决计算机CPU占用过高的问题?

运维给了火焰图, 看火焰图大概明白是什么问题,频繁的线程切换,很可能是增加一个线程没有释放,线程不断增加,线程占cpu时间,cpu不停的切换线程

有这个方向就容易想到,看一下线程快照,发现又4000多个nacos client线程,问题就明显了,接下来就要找到创建nacos client的地方,nacos client一般集成spring cloud实例,不会出问题,主要是找手动创建的代码。使用调用ide的call hirerarchy

一次CPU飙高排查:如何快速解决计算机CPU占用过高的问题?一次CPU飙高排查:如何快速解决计算机CPU占用过高的问题?

果然,创建了ConfigService。没有关闭,写这个代码的程序员是懂gc,认为服务会回收,但gc不会回收线程,ConfigService内嵌一个worker,打开线程不停刷最新的配置

一次CPU飙高排查:如何快速解决计算机CPU占用过高的问题?

总结,这个问题排查比较简单,但有点值得注意,通常认为gc会帮我们回收服务资源,新建服务不会手动关闭,但对于像ConfigService这样的服务,打开了一个驻留线程需要手动关闭,当然最好使用单例模式。

相关教程

copyright ©  2012-2025 保成网 m.zsbaocheng.net 版权声明