【问题概述】10:26分,应用超时报错如下:

[2020-04-2210:25:50,928][ERROR][DruidPooledStatement:357][DubboServerHandler-192.168.xx.xx:20881-thread-199]--[TID:668796908.406.15875214226879429]CommunicationsException,druidversion1.1.10,jdbcUrl:jdbc:mysql://rm-rds-instanceid.mysql.rds.aliyuncs.com:3306/xxxxxx?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&allowMultiQueries=true,testWhileIdletrue,idlemillis928197,minIdle1,poolingCount4,timeBetweenEvictionRunsMillis60000,lastValidIdleMillis928197,drivercom.mysql.jdbc.Driver,exceptionSortercom.alibaba.druid.pool.vendor.MySqlExceptionSorter[2020-04-2210:25:50,929][ERROR][DruidDataSource:1602][DubboServerHandler-192.168.xx.xxx:20881-thread-199]--[TID:668796908.406.15875214226879429]discardconnectioncom.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Communicationslinkfailure

首先查看网络监控,这里忽略,并没有看到网络抖动的情况,查看mysql服务器,超时时间前后也没有明显的性能异常,那么怎么办?

首先网络监控属于粗粒度的,粒度低的抖动网络监控根本检测不到,并不能看到超时的原因,那么我们抓取tcpdump来进行分析

建议循环抓包看下

Linux 固定大小循环抓包:

1、打开一个到 ECS 的 ssh 连接,并以 root 身份登录。

在该窗口运行下列命令(下面的命令将抓包结果保存在 20 个 50 MB 文件中,循环使用)

tcpdump-iany-s0-w/var/tmp/rds.cap-C50-W20portRDS实例端口or53

2、复现问题。

3、使用 ctrl + c 终止上述窗口 的 tcpdump 命令。

下载 /var/tmp/rds.cap* 并提供给我们(如果抓包文件过大,建议您放置在 Web 服务器的子目录下,以便我们下载)。

注意: 网络抓包可能会产生大尺寸文件,建议考虑根据 ECS 磁盘空间使用情况合理选择保存目录。