首页 > 其他分享 >解决部署在k8s上spring cloud gateway 无故假死的情况

解决部署在k8s上spring cloud gateway 无故假死的情况

时间:2024-03-19 17:01:03浏览次数:15  
标签:dump spring 假死 hprof live home k8s jmap gateway

解决部署在k8s上spring cloud gateway 无故假死的情况

线上发现gateway 会无故假死,测试环境使用jmeter 几分钟后,gateway 也会复现假死的情况

开始排查

获取容器列表

kubectl get pod -o wide 

进入gateway

kubectl exec -it gateway-7dbc5d8d6d-wtbs5 -- bash

将jdk拷贝进容器

kubectl cp /home/jdk8u402-b06 gateway-6896d59846-6r5sl:/home/

生成dump文件_dump文件生成和分析查看

查看进程id(容器没有ps 的情况)

ls -l /proc/*/exe

cat /proc/7/exe

制作dump
jstack
打印线程的栈信息,制作线程Dump。

jstack <进程ID> >> <输出文件>

jstack 2316 >> c:\thread.txt

Linux下使用Kill命令制作线程Dump,输出线程Dump到目标Java进程的标准输出

kill -quit <进程ID>

kill -3 <进程ID>

chmod +x jstack
./jstack 7 >> /home/thread.txt

jmap
使用jmap命令制作堆Dump

打印存活的对象大小和个数

jmap -histo:live

jmap -histo:live 64421 > live.log

chmod +x jmap

./jmap -dump:file=gateway.hprof,format=b 7
./jmap -histo:live 7 > /home/live.log

二进制方式存储堆文件

jmap -dump:format=b,file=文件名.hprof <进程ID>

以二进制方式生成文件/opt/wkt/wkt1.hprof,进程PID=64421

jmap -dump:format=b,file=/opt/wkt/wkt1.hprof 64421

./jmap -dump:file=gateway.hprof,format=b 7

将dump拷贝出来

kubectl cp gateway-6896d59846-6r5sl:/home/thread.txt ./thread.txt
kubectl cp gateway-6896d59846-6r5sl:/home/live.log ./live.log
kubectl cp gateway-6896d59846-6r5sl:/home/jdk8u402-b06/bin/gateway.hprof ./gateway.hprof

gzip gateway.hprof

将文件拷贝到本地电脑

问题分析



http-nio 线程有200个

打开 visualvm

点击 load 加载 gateway.hprof 文件

可能是发现问题, 搜索 java.lang.Thread.State: WAITING (parking)

https://www.jianshu.com/p/c4a75ca20abe

看本地代码

找下原因
https://www.alibabacloud.com/help/en/redis/use-cases/jedispool-optimization

默认是永不超时

结论

配置后,设置了超时时间,不至于所有线程都等待,而耗光app的资源

标签:dump,spring,假死,hprof,live,home,k8s,jmap,gateway
From: https://www.cnblogs.com/WNpursue/p/18083397

相关文章

  • 腾讯春招内参:2024最全Spring Boot面试题解析,技术精英必备!
    随着2024年春季招聘季的来临,腾讯再次开启了对富有才华和创新精神的技术人才的寻找之旅。作为一家全球领先的互联网科技公司,腾讯在寻找那些不仅拥有扎实的技术基础,而且能够适应快速发展和变化的行业环境的候选人。在众多技术栈中,SpringBoot作为简化Spring应用开发的工具,因其......
  • Spring AOP之源码分析
    在研究@Enable*注解的应用之:声明式事务@EnableTransactionManagement详解源码时,配置中context装置了一个TransactionInterceptor的bean。对这个类比较好奇因为Interceptor,因为MyBatis功能点之二(1):MyBatis提供的拦截器平台中也分析过interceptor的使用,这个SpringInterceptor是......
  • Spring 3升级指导
    一,背景Spring开源多年,已经经过了多次的升级迭代,最新的已经到Spring6了,但是估计大家最常用的还是Spring2.x。 最近项目准备升级到Spring3,下面简单记录一下升级的改动点。二,官方指导1,PreparingforSpringBoot3.02,SpringBoot3.0ReleaseNotes·spring-projects......
  • 基于SpringBoot的“会员制医疗预约服务管理信息系统”的设计与实现(源码+数据库+文档+P
    基于SpringBoot的“会员制医疗预约服务管理信息系统”的设计与实现(源码+数据库+文档+PPT)开发语言:Java数据库:MySQL技术:SpringBoot工具:IDEA/Ecilpse、Navicat、Maven系统展示系统首页界面图医院信息界面图坐诊信息界面图会员注册界面图个人中心界面图......
  • 基于SpringBoot的“校园交友网站”的设计与实现(源码+数据库+文档+PPT)
    基于SpringBoot的“校园交友网站”的设计与实现(源码+数据库+文档+PPT)开发语言:Java数据库:MySQL技术:SpringBoot工具:IDEA/Ecilpse、Navicat、Maven系统展示网站首页界面图用户注册界面图线下活动界面图交友信息界面图个人中心界面图后台登录界面图管......
  • 基于spring boot框架的发艺美发店管理系统
    摘要系统根据现有的管理模块进行开发和扩展,采用面向对象的开发的思想和结构化的开发方法对发艺美发店管理的现状进行系统调查。采用结构化的分析设计,该方法要求结合一定的图表,在模块化的基础上进行系统的开发工作。在设计中采用“自下而上”的思想,在发艺美发店管理系统实......
  • 基于Spring Boot框架的某火锅店管理系统的设计与实现
    摘要某火锅店管理系统的目的是让使用者可以更方便的将人、设备和场景更立体的连接在一起。能让用户以更科幻的方式使用产品,体验高科技时代带给人们的方便,同时也能让用户体会到与以往常规产品不同的体验风格。与安卓,iOS相比较起来,某火锅店管理系统在流畅性,续航能力,等方方......
  • springboot+vue流浪动物宠物救助网站java-ssm
    系统包含两种角色:管理员、用户,系统分为前台和后台两大模块,主要功能如下。技术栈ide工具:IDEA或者eclipse编程语言:java数据库:mysql5.7+框架:springboot前端:vue.js+ElementUI详细技术:springboot+vue+MYSQL+MAVEN数据库工具:Navicat/SQLyog都可以前台:﹣动物领养/捐赠:......
  • springboot+vue中药知识科普网站java-ssm
    系统包含两种角色:管理员、用户,系统分为前台和后台两大模块,主要功能如下。技术栈ide工具:IDEA或者eclipse编程语言:java数据库:mysql5.7+框架:springboot前端:vue.js+ElementUI详细技术:springboot+vue+MYSQL+MAVEN数据库工具:Navicat/SQLyog都可以前台:﹣首页:展示网站......
  • java基于springboot的羽毛球馆场地预约管理系统ssm
    jdk版本:1.8及以上ide工具:IDEA或者eclipse数据库:mysql 编程语言:nodejs框架:springboot/springboot都有maven:3.6.1前端:layui+bootstrap+jsp详细技术:HTML+CSS+JS+jsp+springmvc+mybatis+MYSQL+MAVEN+tomcat羽毛球馆管理系统采用B/S架构,数据库是MySQL。网站的搭建......