将带有SCP的大文件发送到某个服务器的速度正好是2112 kB

Att*_*emi 43 ssh ubuntu scp

有一个ubuntu 10.04服务器,如果我从这个服务器所在办公室以外的任何服务器ssh一个文件(意味着任何使用scp-ing到这个服务器通过局域网从这个服务器总是工作由于某种原因)然后,对于任何大小超过2112 kB的文件,scp-ing都会失败,并且卡在2112 kB.所以

scp -vvv /home/attila-szeremi/aszeremi.tar.gz  attila@server.hu:~/aszeremi.tar.gz
Run Code Online (Sandbox Code Playgroud)

1% 2112KB 909.2KB/s - stalled -在最后动态显示类似的东西,其中KB/s变得越来越低.

有谁知道可能导致这种情况的原因以及如何解决这个问题?

到目前为止我尝试了什么:

  • 使用scp -l 2000来限制速度.它只是使文件发送速度变慢,并且在2112 kB时再次卡住了.
  • 能够与-C相容.它仍然以同样的大小停滞不前.

dav*_*cia 34

我设法摆脱这个问题的唯一方法是禁用TCP SACK:

$ sudo sysctl -w net.ipv4.tcp_sack=0
Run Code Online (Sandbox Code Playgroud)

  • 适用于Ubuntu 14.04.改变MTU或限制速度没有帮助.禁用SACK后,我能够无限制地返回无限速度.这应该是答案. (2认同)

Att*_*emi 31

我好像找到了解决办法.我必须通过以下方式将LAN卡的mtu设置设置为1492:

# ifconfig eth0 mtu 1492
Run Code Online (Sandbox Code Playgroud)


kri*_*iss 11

在较新的Linux系统上,ifconfig命令可能已被ip替换

设置mtu的命令变为:

# ip link set dev eth0 mtu 1492
Run Code Online (Sandbox Code Playgroud)