实在很难理解为什么单单这个文件在这个容器上scp就卡死了,既然scp网络传输卡死,那么就同时在两个容器上tcpdump抓包,想看看为什么传不动了
基本上看到这里,能想到是因为丢包导致的scp卡死,因为两个容器mtu都正常,包也小于mss,那只能是网络路由上某个环节mtu太小导致这个1442的包太大过不去,所以一直重传,看到的现状就是scp卡死了 |
---|
容器A---> 宿主机1 ---> ……中间的路由设备 …… ---> 宿主机2 ---> 容器B |
---|
2016-08-08T08:15:27.125951+00:00 server kernel: openvswitch: ens2f0.627: dropped over-mtu packet: 1428 > 1400
2016-08-08T08:15:27.536517+00:00 server kernel: openvswitch: ens2f0.627: dropped over-mtu packet: 1428 > 1400
Q: 传输的包超过MTU后表现出来的症状? A:卡死,比如scp的时候不动了,或者其他更复杂操作的时候不动了,卡死的状态。
Q: 为什么我的MTU是1500,但是抓包看到有个包2700,没有卡死? A: 有些网卡有拆包的能力,具体可以Google:LSO、TSO,这样可以减轻CPU拆包的压力,节省CPU资源。