应用连接超时排查DB MySQL
短信预约 -IT技能 免费直播动态提醒
【问题概述】10:26分,应用超时报错如下:
[2020-04-22 10:25:50,928] [ERROR] [DruidPooledStatement:357] [DubboServerHandler-192.168.xx.xx:20881-threa
d-199] -- [TID: 668796908.406.15875214226879429] CommunicationsException, druid version 1.1.10, jdbcUrl :
jdbc:mysql://rm-rds-instanceid.mysql.rds.aliyuncs.com:3306/xxxxxx?useUnicode=true&characterEncodin
g=utf-8&autoReconnect=true&allowMultiQueries=true, testWhileIdle true, idle millis 928197, minIdle 1, pooli
ngCount 4, timeBetweenEvictionRunsMillis 60000, lastValidIdleMillis 928197, driver com.mysql.jdbc.Driver, e
xceptionSorter com.alibaba.druid.pool.vendor.MySqlExceptionSorter
[2020-04-22 10:25:50,929] [ERROR] [DruidDataSource:1602] [DubboServerHandler-192.168.xx.xxx:20881-thread-19
9] -- [TID: 668796908.406.15875214226879429] discard connection
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
首先查看网络监控,这里忽略,并没有看到网络抖动的情况,查看mysql服务器,超时时间前后也没有明显的性能异常,那么怎么办?
首先网络监控属于粗粒度的,粒度低的抖动网络监控根本检测不到,并不能看到超时的原因,那么我们抓取tcpdump来进行分析
建议循环抓包看下
Linux 固定大小循环抓包:
1、打开一个到 ECS 的 ssh 连接,并以 root 身份登录。
在该窗口运行下列命令(下面的命令将抓包结果保存在 20 个 50 MB 文件中,循环使用)
tcpdump -i any -s 0 -w /var/tmp/rds.cap -C 50 -W 20 port RDS实例端口 or 53
2、复现问题。
3、使用 ctrl + c 终止上述窗口 的 tcpdump 命令。
下载 /var/tmp/rds.cap* 并提供给我们(如果抓包文件过大,建议您放置在 Web 服务器的子目录下,以便我们下载)。
注意: 网络抓包可能会产生大尺寸文件,建议考虑根据 ECS 磁盘空间使用情况合理选择保存目录。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341