加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash-scp在复制大文件时停顿

发布时间:2020-12-15 18:44:47 所属栏目:安全 来源:网络整理
导读:根据实验的需要,我将 MTU设置为8000.这样做之后,当我使用scp复制大文件时,它停止了0.00%.我试过scp -l或scp -C并打开/关闭tcp_sack,但仍然没有工作.实验结果比较我不能更改MTU大小.还有什么其他方法可以帮忙吗? 尝试一个全面的解决方案,因为根据您的情况可
根据实验的需要,我将 MTU设置为8000.这样做之后,当我使用scp复制大文件时,它停止了0.00%.我试过scp -l或scp -C并打开/关闭tcp_sack,但仍然没有工作.实验结果比较我不能更改MTU大小.还有什么其他方法可以帮忙吗?
尝试一个全面的解决方案,因为根据您的情况可能会有几个问题和限制.

rsync的

我最喜欢的选项是:使用rsync不会给出这个问题,在我看来更有多功能,例如它会跟踪哪些文件已经在那里,所以如果连接断开它可以从哪里停止 – try the --partial flag too – among other things.

代替

scp local/path/some_file usr@server.com:"/some/path/"

你可以做

rsync -avz --progress local/path/some_file usr@server.com:"/some/path/"

我已经测试了几次,当scp会给我同样的问题,它给了你 – 现在我只是使用rsync默认情况下.

限速

在这种情况下,MTU是固定的(而且这可能不是这个问题),而不是解决方案,但是如果这两个驱动器之间的连接速度较慢/不可靠,则设置速度限制可以减少TCP连接失速的延迟 – 以牺牲慢的转移为代价.
这是因为scp可以获取所有带宽,除非您以千位指定最大数据速率,如下所示:

scp -l 8192 local/path/some_file usr@server.com:"/some/path/"

这doesn’t always work虽然

压缩选项

scp的-C选项可以通过speed up的转移,减少传输失速的可能性.

禁用TCP SACK

如OP和here所述.

sudo sysctl -w net.ipv4.tcp_sack=0

(or similar)

LAN卡MTU

再一次MTU fix,不一定是转让具体:

ifconfig eth0 mtu 1492

或newer (Linux) systems:

ip link set dev eth0 mtu 1492

其他

如果其他一切都失败,this列出了其中一些潜在的解决方案.

更奇特的hpn bug也可能是故障.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读