You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

两台机器间单文件传输加速方案咨询:如何通过多连接提升传输速率

两台机器间单文件传输加速方案咨询:如何通过多连接提升传输速率

嗨,针对你遇到的单文件从服务器A传到B,scp/rsync速率只有1Mb/s的问题,我给你整理几个实用的多连接加速方案,都是业内常用的:

  • 用Parallel SCP直接并行传输
    这个工具专门支持多连接并行传文件,安装后直接指定并行连接数就行。比如你想同时开5个连接传输,命令大概是:
    pscp -h server_b_ip -p 5 /path/to/your/large_file /remote/directory/
    连接数可以根据你的网络情况调整,一般3-10之间试,别开太多,不然可能触发服务器的连接限制。

  • 手动拆分文件+并行传输+合并(无额外工具)
    如果不想装新工具,用系统自带命令就能搞定:

    1. 先在服务器A上把大文件拆成小分块,比如每块100MB:
      split -b 100M /path/to/large_file file_chunk_
      执行后会生成file_chunk_aafile_chunk_ab这类分块文件。
    2. 用xargs并行scp这些分块到服务器B:
      ls file_chunk_* | xargs -n 1 -P 5 scp {} server_b:/tmp/transfer/
      这里-P 5表示同时开5个并行进程。
    3. 传输完成后,在服务器B上合并分块得到原文件:
      cat file_chunk_* > /path/to/final_large_file
      最后删掉临时分块文件就好。
  • 用多进程版Rsync(mprsync/rsync-parallel)
    很多人喜欢rsync的增量同步特性,那可以用它的多进程变种:
    比如mprsync,安装后指定并行进程数即可:
    mprsync -n 5 /path/to/your/large_file server_b:/remote/directory/
    它会自动把文件分成多个块,用多个rsync进程并行传输,传输完成后自动合并,不用手动拆分,很省心。

  • 用Aspera进行高带宽优化传输
    Aspera在大文件跨网传输上表现很出色,支持多连接和智能带宽调度,不过需要在两端都安装Aspera客户端/服务器。命令示例:
    ascp -l 100M -Q /path/to/your/large_file server_b:/remote/directory/
    这里-l是设置总带宽上限,它会自动用多连接来尽量跑满这个带宽。

最后给你提几个小注意点:

  • 并行连接数别设太高,不然可能被服务器的SSH连接限制(比如sshd配置里的MaxSessions)拦住,或者导致网络拥堵反而变慢;
  • 如果是跨公网传输,先确认两端的带宽上限,有时候不是工具的问题,是运营商的带宽限制;
  • 传输前最好先在小文件上测试下连接数,找到最适合你网络的数值。

备注:内容来源于stack exchange,提问作者Toodarday

火山引擎 最新活动