最近线上服务出现了一段时间的无法响应,在此总结一下问题的排查过程。

监控信息

监控显示CPU和内存没有异常波动,TCP连接中有大量的CLOSE_WAIT状态的连接。

看一下TCP连接断开的过程:

也就是说客户端发起了断开连接的包,服务端收到数据后状态变更为CLOSE_WAIT,这时需要等待服务端处理完连接中未发送完的数据之后发送FIN给客户端,但是服务端此时可能因为各种原因,中断在了这个环节,导致操作系统的连接数被CLOSE_WAIT占用,没有足够资源响应客户端请求。所以接下来就需要查清楚服务端到底在忙什么,为什么不继续完成断开连接的四次挥手过程。

线程栈

对于Java应用,可以利用JDK提供的工具查看线程的栈。

jstack -l pid

其中pid是JVM进程的ID

打印出的栈信息中可以发现大量类似上图的WAITING状态的线程,线程在以下几种情况会进入WAITING状态:

Object的wait方法,并且没有使用timeout参数;

Thread的join方法,没有使用timeout参数;

LockSupport的park方法。

如果一个线程调用了一个对象的wait方法,那么这个线程就会处于waiting状态直到另外一个线程调用这个对象的notify或者notifyAll方法后才会解除这个状态。

具体到此处的问题,可以理解为数据库连接池中获取连接时,没有可用连接,此时调用notEmpty.await();等待有连接释放回收到连接池或创建新的连接后notify当前线程再来获取连接。所以此时问题的根本原因是数据库连接池耗尽,一直在wait可用连接,线程无法继续执行下去。

数据库连接池的配置

我的应用是基于springboot开发的,在技术社区也查到了一些关于springboot的默认数据库连接配置可能会存在潜在风险。数据连接池默认配置带来的坑

简单来说,默认的数据连接配置,可能会导致连接池中的连接是不可用的,但是仍在连接池中充数,并不会被释放。增加了以下几个参数,DONE!

testWhileIdle: true

validationQuery: SELECT 1

timeBetweenEvictionRunsMillis: 60000

close_wait过多服务器无响应,记一次大量CLOSE_WAIT连接导致的服务宕机相关推荐

  1. linux内存不足宕机,记一次linux机器内存占用太多导致的服务宕机

    背景 最近我们测试环境部署的一个项目总是不停的宕机,之前也有过,但是最近特别频繁 猜测 可能是因为cup或者内存占用太大导致的服务宕机 执行 1.登录linux服务器 2.top命令 下面是对每一行信 ...

  2. 一次region过多导致HBase服务宕机事件

    具体情况是,甲方有10个节点的HBase集群,主要业务表共10张,region总数达23000+,平均每台RegionServer(RS)的region数量2300左右,每台RS堆内存配置96G(初始 ...

  3. closewait过多服务器无响应,CLOSE_WAIT连接过多的现象分析与处理

    CLOSE_WAIT连接过多的现象分析与处理 未分类 1. CLOSE_WAIT的机制和原理一. 来自参考资料:从问题看本质: 研究TCP close_wait的内幕 客户端主动发起 socket.c ...

  4. 荣耀wlan服务器无响应,华为荣耀WiFi穿墙宝 连接不上 解决办法 | 192路由网

    家里原来装了一套荣耀WiFi穿墙宝(一个网口宝+一个wifi宝),在有wifi宝的房间用着挺好. 另外一个房间靠荣耀路由穿墙模式将就用着,但信号一直不好,最近实在受不了,又在闲鱼淘了一套wifi穿墙宝 ...

  5. 手机360服务器无响应,360安全卫士待安装系统连接微软服务器没响应怎么回事??...

    2009-11-21 回答 方法一: 看看防火墙或是杀毒软件有没有相关的进程,"World Wide Web Publishing"的可执行文件是"inetinfo.ex ...

  6. 广电宽带 拨号失败 服务器无响应,广电宽带无线路由器怎样进行连接?无法正常上网处理方法介绍...

    路由器具有判断网络地址和选择IP路径的功能,它能在多网络互联环境中,建立灵活的连接,可用完全不同的数据分组和介质访问方法连接各种子网,不少小区用户安装的是广电宽带,在设置无线路由器会遇到很多麻烦,例如 ...

  7. 找靓机总是服务器无响应,【已解决】聚投诉网友投诉找靓机:找靓机退货收取退货折旧费300,平台说支持七天无理由退货,但是真正退货时找借口,不退钱...

    2019年12月07日 18:46,王先生发起对找靓机的投诉.截止发稿前,找靓机有效投诉85次. 王先生向公益性消费投诉平台21CN聚投诉反映:"平台和描述不符,说支持七天无理由退货,然后购 ...

  8. 路由器连网提示服务器无响应,路由器提示服务器无响应

    路由器提示服务器无响应 内容精选 换一换 HiLens Kit有两种组网方式,分为无线和有线两种方式连接路由器,本章介绍有线网络配置方式.不能同时使用无线网络和有线网络连接同一个路由器,无线连接会自动 ...

  9. 转转服务器无响应,【转】服务器无响应(或者本地MySQL服务器的套接字没有正确配置)的问题...

    服务器无响应(或者本地MySQL服务器的套接字没有正确配置)的问题 第一种情况:(深度清理垃圾导致host.MYD丢失) 跟很多网友一样!用wamp(或xampp.speedphp)可以很容易在自己的 ...

最新文章

  1. 在阿里云ECS服务器上面开启tomcat服务并且正常后,无法访问怎么办?原来是没有开通外网访问的端口
  2. P2P之UDP穿透NAT的原理
  3. 序列拼接工具Bowtie使用说明
  4. 使用随机数以及扩容表进行join代码
  5. wxWidgets:wxCustomBackgroundWindow<W> 类模板用法
  6. Premiere Pro CC2017教程(一)
  7. 小东《迷路的情人》MV
  8. java怎么看dao文件_java通过实体类生成dao文件
  9. mybatis使用过程遇到的一些问题及解决方法
  10. Postgres 数据库大批量单表导入数据引发性能故障的处理
  11. JAVA动态加载JAR包执行程序
  12. 在redhat enterprise 5 下安装ORACLE 10g
  13. multisim变压器反馈式_借助Multisim 10仿真的负反馈放大电路
  14. 51单片机初学3-从零开始制作一款电子时钟
  15. debian安装缺少网卡驱动rtl_nic/rtl8168e-2.fw和bcm43xx-0.fw
  16. lwj_C#_集合listT
  17. SNN系列|学习算法篇(1)Tempotron
  18. 分享Three.js 泛光(眩光)效果实现
  19. 【干货】如何有效地提问
  20. linux多核编程系列之调度亲和性,关于CPU亲和性,这篇讲得最全面

热门文章

  1. 教授因被指控“奴役”博士生遭学校解雇,反手将学校告上法庭并获赔偿...
  2. 22岁何同学引爆B站!硬核毕设树莓派星轨拍摄仪,上演理工男的终极浪漫
  3. 新晋图灵奖得主Jeff Ullman受质疑,反对者:他享受了不该享受的荣誉
  4. 实地探访重庆“最复杂立交”:其实并不容易走错路
  5. 计算机专业太难不适合女生学?来看 N 多小姐姐的回应
  6. 阿里、京东高级算法专家讲述数学在企业中的应用
  7. 盘点世界上的巨无霸发电机
  8. 【转载保存】接口的压力测试工具
  9. Impala 查询导出到文本,本地系统
  10. 一文了解EPaxos核心协议流程