线上Java基于SpringBoot框架的服务一共4个POD节点,其中有一个节点重启之后CPU占比100%。
系统整体基于阿里云K8s部署,接入了阿里云的ARMS监控。
1.发现CPU占比100%的节点 
从上图看出这个pod只有1核,实际上这个pod是部署在node上,node是32核心的。是设置了pod的limit=1。
查看CPU核数
#cat /proc/cpuinfo 
2.到容器里看Java进程CPU占比
#top一看确实是java 占用CPU100%
3.分析Java的线程堆栈信息
这一步是确定影响性能的线程在做什么
#top -Hp 7

本文讲述了在阿里云Kubernetes环境中,一个基于SpringBoot的Java服务Pod在重启后出现CPU占用100%的问题。通过检查CPU核数、容器内Java进程、线程堆栈分析以及火焰图,发现ARMS监控探针存在多线程处理不当导致CPU飙高的问题。后续已将问题反馈给阿里云。
订阅专栏 解锁全文
1万+

被折叠的 条评论
为什么被折叠?



