美文网首页
关于大量小文件拷贝的那些事儿(一)

关于大量小文件拷贝的那些事儿(一)

作者: 草丛螳螂 | 来源:发表于2018-01-21 18:34 被阅读605次

    因为公司项目涉及到了从不同服务器拷贝大量小图片的工作,所以做了个测试来测拷贝小文件的性能。

    测试了76000个小文件,每个大小200K-300K左右,一共87250M

    两台都是linux centos7.5 内存140G ,cpu 为intel E5-2620,千兆网卡。

    磁盘大小为500G,型号是Seagate Constellation ES的ST500nm0011

    为排除系统缓存的影响,每次测试前,都执行

    sync

    echo 3 > /proc/sys/vm/drop_caches

    这两条命令清除缓存

    不同的传递方式性能如下:

    | 方式         | 耗时             | 平均速率      |命令                                                                               |

    | ------------- |:----------------:| -----------------:|---------------------------------------------------------------------:|

    | scp           | 00:59:38     |24.2M/S         |scp -r srcDir destIp:destDir                                         |

    | rsync        | 00:14:59      |96.9M/S        |rsync -aW -e ssh srcDir destIp:destDir                      |

    | tar             | 00:14:58     |96.9M/S        | ssh destIp `tar -xf - -C destDir`                                   |

    有同事指出,先打包(由于是图片,再次压缩没有多大的意义,不压缩只打包,大小增大为91075M),再scp是不是会快一些。我也测试了一下这种方案的性能,数据如下:

    | 过程         | 耗时               | 平均速率    |命令                                                                             |

    | ------------- |:------------------:| --------------:|--------------------------------------------------------------------:|

    | 打包          | 00:50:56       |                    |tar -cf srcDir.tgz srcDir                                               |

    | 传输(scp)  | 00:15:32       |97.1M/s     |scp srcDir.tgz destIp:destDir                                     |

    | 解包          | 00:28:04        |                  |tar -xf destIp:destDir/destDir.tgz -C destIp:destDir  |

    网上有很多资料都说ftp的方式很慢,多线程下载小文件的方式我没有(如果以后有时间,我会测的),但下载打包后的整个大文件我测了一下,性能如下:

    | 传输(ftp)    | 00:13:54        |108.4M/s         |ftp get dstDir.tgz                                                  |

    结论:

    1.linux系统跨网络拷贝小文件,打包后再传递的方式很不可取,因为要来回写磁盘,打包落盘的时间比传输长。

    2.rsync和tar的方式都比较快,差距不大。scp的方式慢。

    参考链接

    https://serverfault.com/questions/18125/how-to-copy-a-large-number-of-files-quickly-between-two-servers

    相关文章

      网友评论

          本文标题:关于大量小文件拷贝的那些事儿(一)

          本文链接:https://www.haomeiwen.com/subject/ojlqaxtx.html