暂无图片
TCP连接疑难杂症
我来答
分享
黄伟波
2024-03-12
TCP连接疑难杂症

我们这边有个现象,架构是mysql+tomcat+redis,但是系统会莫名其妙宕机,时间点没规律。
通过监控看应用及数据库服务器cpu、内存都没波动,只有建立的TCP连接会突然大量增长,这时候系统就挂了

我来答
添加附件
收藏
分享
问题补充
6条回答
默认
最新
黄伟波
上传附件:172.26.176.82.pcap
暂无图片 评论
暂无图片 有用 0
黄伟波
上传附件:linux.log
暂无图片 评论
暂无图片 有用 0
黄伟波
上传附件:jstack.dump
暂无图片 评论
暂无图片 有用 0
黄伟波
上传附件:jstack.dump
暂无图片 评论
暂无图片 有用 0
黄伟波

看服务器日志,只发现TCP建立的连接剧增时,线程数也是增长很快

暂无图片 评论
暂无图片 有用 0
胡飞

根据您描述的现象,系统中TCP连接突然大量增长,并伴随着系统宕机,这可能是由于多种原因造成的。以下是一些建议的排查方向:

MySQL部分

  1. 连接池设置不当:如果MySQL连接池的配置不合理,比如最大连接数设置过小,可能无法满足并发请求,导致连接数持续增长。
  2. 连接泄漏:应用程序可能没有正确关闭数据库连接,或者在异常情况下没有及时释放连接资源,导致连接数不断增加。
  3. SQL语句问题:某些低效的SQL查询可能导致数据库长时间占用连接,从而增加连接数。

Tomcat部分

  1. 应用代码问题:应用程序可能存在逻辑错误或内存泄漏,导致Tomcat崩溃或无法正确释放资源。
  2. 配置问题:Tomcat的配置文件中可能存在错误或不合理的配置,导致服务器无法正常启动或运行。
  3. 资源耗尽:Tomcat占用过多的系统资源,如内存、CPU等,导致服务器宕机。

Redis部分

  1. 连接管理不当:如果Redis连接没有得到妥善管理,可能导致连接数持续增长。
  2. 数据操作不当:大量或频繁的数据操作可能导致Redis服务器负载过高,间接影响整个系统的稳定性。

通用排查方向

  1. 网络问题:网络连接不稳定或遭受攻击,可能导致Tomcat和MySQL无法正常响应请求。
  2. 硬件故障:服务器硬件故障,如电源故障、内存故障等,也可能导致系统宕机。

解决方案

  1. 优化SQL语句:通过优化SQL查询,减少数据库连接的使用时间。
  2. 检查并优化连接池配置:确保连接池的最大连接数、空闲连接数等参数设置合理。
  3. 代码审查:对应用程序进行代码审查,查找可能的逻辑错误或内存泄漏。
  4. 监控与日志分析:加强系统的监控和日志分析,以便及时发现并定位问题。
  5. 硬件检查:对服务器硬件进行检查,确保没有故障或潜在的风险。

由于您提到宕机的时间点没有规律,这可能增加了排查的难度。但是,通过系统的监控和日志分析,结合上述排查方向,应该能够逐步定位并解决问题。如果问题仍然无法解决,建议考虑寻求专业的技术支持或社区帮助。

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
附件列表
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏