iqiyi / dpvs

DPVS is a high performance Layer-4 load balancer based on DPDK.
Other
3k stars 723 forks source link

FNAT双臂模式下,SCP上传大文件出现Broken pipe中断 #844

Open xgfone opened 2 years ago

xgfone commented 2 years ago

在原生 Linux LVS (阿里版本)中,使用 FullNAT 双臂模式,使用 SCP 上传大文件时,会出现 Broken pipe 连接中断。

使用 DPVS 1.9.0 版本,在 FNAT 双臂模式下,使用 SCP 上传1G大文件时,也会出现 Broken pipe 中断(每次尝试都是必现)。由于 DPVS 中的 LVS 是基于开源 LVS 移植的,是否是因为该问题本身就仍存在于相关的 LVS 源码中没有解决?

通过读 DPVS 的源码,受各人自身能力所限,未找到原因,有哪位大佬知道其原因?

补充说明:

ywc689 commented 2 years ago

上传过程中用 ipvsadm -lnc命令看看连接是否一直都在?

xgfone commented 2 years ago

@ywc689 通过 ipvsadm -lnc 命令查看,连接是在的,等待一段时间后(dpvs.conf配置文件中相关时间配置),dpvs 会分别向 SCP客户端 和 RealServer 发送一条标记为 [R] 的 TCP 包,然后连接终止,再通过 ipvsadm -lnc 查看,连接已不在了。

xgfone commented 2 years ago

我部署了 Linux LVSDPVS 两个环境,来测试大文件上传,都会出现客户端 Broken pipe 连接中断;当下载大文件时,都是正常的。

我猜测是否是 LVS 的实现中某个地方导致的?但通过查看源码,由于能力所限,未找到原因。