已采纳
回答正文
回复
讨论正文
该问题的正文、回答与讨论。
背景
我 3 年网络工程背景,现在在保一个 K8s 集群:约 60 节点,Calico VXLAN overlay(iptables 模式,不是 BPF 模式),节点双口 25G 网卡,内核 5.10。业务方反复反馈「跨节点 Pod 调用偶发变慢,同节点调用正常」,我抓 underlay 看不出问题,和 SRE 扯皮了两周,想请社区给一套客观的拆解方法。
现象
sar -n DEV 看吞吐峰值只到链路 40% 左右,ethtool -S 无丢包、无错包、无 dropped;ping 对端 Pod IP(走 overlay 内层 IP),时延 P99 同样上到 60ms+,说明慢在 overlay 数据面,不是应用 handler;ksoftirqd/ 对应核 CPU 在尖峰期偶尔冲到 80%+;ss -ti 看跨节点 TCP 流在尖峰期 rtt 升到 50ms+,但重传 0。已尝试的排查
tcpdump 抓包,比对 overlay 内层 IP 包在源/目的机的 in、out 时间戳差,确认耗时在传输/封装路径,不是两端应用处理;ethtool -S + sar -n DEV 排除物理链路丢包/带宽打满;iptables -t nat -S | wc -l 已经 600+ 条),怀疑 datapath 规则链太长;perf stat -e context-switches,cpu-migrations + mpstat -P ALL 1 看被调节点软中断 CPU 争抢;期望得到的答案形态
vxlan_xmit 上的计时);如果社区里有人做过「underlay 全绿但 overlay 慢」的归因,或者用 eBPF 把封装路径计时拆出来过,求具体命令和判读口径。