java - 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
系统信息(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
解决方案
推荐阅读
- php - 是否可以仅使用授权承载令牌和存储桶名称将文件上传到谷歌云存储?(PHP代码)
- javascript - 使用 WKWebView 在 swiftui 中执行 javascript 确认
- php - 我可以在使用 Bootstrap 4 的自定义插件中覆盖基于 Elementor 的 OceanWP 主题的 CSS 吗?
- java - 为什么这个 for 循环会给出这个输出?
- postgresql - 错误:列“urls”的类型为 url[],但表达式的类型为 record[]
- python - Apscheduler 脚本文件静默停止 - 没有错误
- vue-router - Vue 路由器和 Laravel 中间件
- redis - redis:获取集合中包含查询元素的所有键
- excel - 选择具有相似值的单元格,然后按时间顺序重命名文本
- reactjs - 反应本机:当焦点放在TextInput上并且达到其限制时触发哪个函数仍然按下输入按钮