记录一次SpringBoot假死诊断

这两天遇到一个服务假死的问题,具体现象就是服务不再接收任何请求,客户端会抛出BrokenPipe。

执行top,发现CPU和内存占用都不高,但是通过命令

netstat-n|awk'/^tcp/{++S[$NF]}END{for(ainS)printa,S[a]}'+发现有大量的CLOSE_WAIT端口占用,继续调用该服务的api,等待超时之后发现CLOSE_WAIT的数量也没有上升,也就是说服务几乎完全僵死。

怀疑可能是线程有死锁,决定先dump一下线程情况,执行

jstack>/tmp/thread.hump+发现tomcat线程基本也正常,都是parking状态。

这就比较奇怪了,继续想是不是GC导致了STW,使用jstat查看垃圾回收情况

app@server:/tmp$jstat-gcutil1200010+S0S1EOMCCSYGCYGCTFGCFGCTGCT+0.0027.7965.0115.3094.7592.23133844.3751881475.064519.439+一看吓一跳,FGC的次数居然超过了YGC,时长有475s。一定是有什么原因触发了FGC,好在我们打开了GClog。

由于外部API暂时无法联系对方修改,所以为了先解决问题,对原有的MaxNewSize进扩容,从192MB扩容到一倍。经过几天的观察,发现gc基本趋于正常

S0S1EOMCCSYGCYGCTFGCFGCTGCT+0.003.3760.558.6095.0892.98872.42100.0002.421+扩容之前对heap进行了dump

jmap-dump:format=b,file=heapDump+通过MAT分析内存泄露,居然疑似是jdbc中的一个类,但其实整体占用堆容量并不多。

分析了线程数量,大约是240多条,与正常时也并没有很大的出入。而且大量的是在sleep的定时线程。

本次排查其实并未找到真正的原因,间接表象是FGC频繁导致服务假死。而且acturator端口是正常工作的,导致healthcheck进程误认为服务正常,没有触发告警。

THE END
1.10个汽车基本故障以及排除方法(适用大部分家用车)可意外在所难免,就连葛优都会有“吃着火锅唱着歌,突然被麻匪劫了”的经历,更何况我们的汽车。漏油、卡顿、异响尚且好说,就怕车子突然想来场“小浪漫”,在荒郊野岭来个抛锚,你说尴尬不尴尬。今天,小编就为大家盘点那些常见的汽车故障和对应的解决方法。 https://www.dongchedi.com/article/7085184389017010724
2.Pacemaker详解pcs命令详解和参数说明centos8或bclinux8.2离线在集群启动之初, pacemaker便会选择某个节点上的 CRM进程实例来作为集群 Master CRMd,然后集群中的 CRMd便会集中处理 PE根据集群 CIB信息所决策出的全部指令集。在这个过程中,如果作为 Master的 CRM进程出现故障或拥有 Master CRM进程的节点出现故障,则集群会马上在其他节点上重新选择一个新的 Master CRM进程。 https://huaweicloud.csdn.net/6549fb06525bff6100e998b2.html
3.福州机电工程职业技术学校2022年实训和竞赛耗材等货物采购项目附件13.3政府采购合同的履行、违约责任和解决争议的方法等适用民法典。 13.4采购人与中标人应根据政府采购合同的约定依法履行合同义务。 13.5政府采购合同履行过程中,采购人若需追加与合同标的相同的货物或服务,则追加采购金额不得超过原合同采购金额的10%。 13.6中标人在政府采购合同履行过程中应遵守有关法律、法规和规章的http://zfcg.fuzhou.gov.cn/upload/document/20220708/36996e8152f746cebd57dfa4be9c1592.html
4.施耐德浪涌保护器PR10KA2P(1P+N)详解招商信息PE-500-2-N-S-D BES516-3005-G-E4-C-S4-00,2 BFO14A-LEE-MZG-20-0,5 YAF 100/4A-12IMB14-C2002 MDD-SW180M Nr:208382 MTN/IEISWA10 MKP18410844F 180001-112-0003 3~MOT AA90L.04 UD 0901/1188146-003-55 SS-8-VCR-2-VS 316SS MR8-894 CH402-FK02-8*GN-NN 20930-82/275P202C24http://chinamecha.com/supplys/1_5_24732411.html
5.Shank3基因治疗方法.pdfShank3基因治疗方法.pdf,本公开的方面涉及编码Shank3蛋白的非天然存在的多核苷酸、包含该多核苷酸的AAV载体,和基因治疗方法。(19)国家知识产权局 (12)发明专利申请 (10)申请公布号 CN 116406305 A (43)申请公布日 2023.07.07 (21)申请号 202180070681.7 (74)专利代理机构 https://m.book118.com/html/2023/0708/8121116062005107.shtm
6.pacemaker高可用集群pacemaker集群约束有哪些在集群启动之初, pacemaker便会选择某个节点上的 CRM进程实例来作为集群 Master CRMd,然后集群中的 CRMd便会集中处理 PE根据集群 CIB信息所决策出的全部指令集。在这个过程中,如果作为 Master的 CRM进程出现故障或拥有 Master CRM进程的节点出现故障,则集群会马上在其他节点上重新选择一个新的 Master CRM进程。 在https://blog.51cto.com/u_16213590/10933636