网络抓包是分析Pod间调用耗时的有效手段。具体步骤如下:首先在怀疑存在延时的Pod中执行抓包(如使用tcpdump),分别抓取上游到当前Pod和当前Pod到下游的报文。通过匹配请求中的业务标识(如token、traceId)确保分析的是同一条业务请求。然后对比各环节的时间戳,绘制出完整的请求时间线。在本案例中,Gateway在31秒收到请求,37秒才向后端发起请求,37秒后端即返回响应,43秒Gateway才响应回Ingress。由此可判断网络本身没有问题,6秒耗时消耗在Gateway应用内部。进一步过滤Redis相关的网络流,发现Redis连接为长连接且存在请求排队现象。通过netstat可以查看连接队列的recvq和sendq来判断是否存在堆积,同时关注与Redis之间的实际连接数来验证连接池配置是否生效。
加载中...