相关疑难解决方法(0)

使用 SFTP 上传许多小文件速度缓慢

当用SFTP上传100个每个100字节的文件时,这里需要17秒(建立连接,我什至没有计算初始连接时间)。这意味着仅传输 10 KB 就需要 17 秒,即 0.59 KB/秒!

我知道向openwriteclose等发送 SSH 命令可能会产生很大的开销,但是,在使用 SFTP 发送许多小文件时,有没有办法加快该过程?

或者特殊模式paramiko或者/pysftp将所有要执行的写入操作保留在内存缓冲区中(假设最后 2 秒的所有操作),然后在 SSH/SFTP 的一次分组传递中执行所有操作?这将避免每次操作之间等待 ping 时间。

笔记:

  • 我的连接上传速度约为 100 KB/s(测试为 0.8 Mbit 上传速度),到服务器的 ping 时间为 40 毫秒
  • 当然,如果我不是发送 100 个 100 字节的文件,而是发送 1 个 10 KB 字节的文件,则需要 < 1 秒
  • 我不想在远程运行二进制程序,只接受 SFTP 命令
import pysftp, time, os
with pysftp.Connection('1.2.3.4', username='root', password='') as sftp:
    with sftp.cd('/tmp/'):
        t0 = time.time()
        for i in range(100):
            print(i) …
Run Code Online (Sandbox Code Playgroud)

python ssh sftp paramiko pysftp

3
推荐指数
1
解决办法
3212
查看次数

标签 统计

paramiko ×1

pysftp ×1

python ×1

sftp ×1

ssh ×1