首页 > 解决方案 > Spring Boot 中的嵌入式 tomcat 突然进入 100% CPU 利用率

问题描述

我正在运行带有嵌入式 tomcat 9.0.54 的 spring boot 2.5.6。它运行一个简单的 API,具有一些数据库访问权限和对其他 API 的访问权限,没什么特别的。服务器启动正常并且工作正常。我提出了一些 API 请求,一切都很好。然后服务器完全空闲,没有请求发送给它。大约 10 分钟后,服务器突然在没有任何外部影响的情况下自行进入 100% 的 CPU 利用率。服务器仍然可以工作,但系统的整体性能严重下降,我必须终止我的服务器进程。我已经使用 JProfiler 分析了该过程,它显示了 GC 活动的突然启动以及线程数量的增加。我每次都可以在 10 分钟内始终如一地重现这种行为。我所要做的就是点击服务器几次然后等待。所有这些都在我们的测试环境中,但我需要将其转移到生产环境中,而且情况相当令人沮丧。任何帮助将不胜感激。下面是来自 JProfiler 的图片。这是实际的 JProfiler 快照:快照.jps

JProfiler 图像

系统信息(lscpu):

架构:x86_64
CPU 操作模式:32 位、64 位
字节顺序:Little Endian
CPU:1
在线 CPU 列表:0
每个内核线程:1
内核) 每个插槽:1 个
插槽:1 个
NUMA 节点:1 个
供应商 ID:GenuineIntel
CPU 系列:6
型号:63
型号名称:Intel(R) Xeon(R) CPU E5-2690 v3 @ 2.60GHz
步进: 2
CPU MHz:2599.982
BogoMIPS:5199.96
Hypervisor 供应商:Microsoft
虚拟化类型:完整
L1d 缓存:32K
L1i 缓存:32K
L2 缓存:256K
L3 缓存:30720K
NUMA node0 CPU(s):0
标志:fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx lm constant_tsc rep_good nopl eagerfpu pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm fsgsbase bmi1 avx2 smep bmi2 erms xsaveopt

标签: javalinuxspring-boottomcattomcat9

解决方案


推荐阅读