zoukankan      html  css  js  c++  java
  • linux下快速拷贝大文件

    拷贝数据

    远程拷贝数据的时候,我们一般使用rsync命令,但是如果拷贝大量的小文件,会导致rsync的传输速度慢。使用tar pv lz4打包压缩传输,可以解决这问题,使用这个方法,等同于使用scp、rsync传输大文件。
    实测,使用rsync传输1200G,单个文件大小为几十KB~2GB,千兆网卡,需要同时跑6个rsync才能把带宽跑满,每个速度20MB左右,速度波动大。每分钟可以拷贝4.5GB左右。
    但是,使用tar pv lz4,跑一个就可以了,而且速度波动小。每分钟可以拷贝6.8GB左右。

    rsync使用例子

    rsync安装:yum install -y rsync

    # 推送
    [root@vm5 ~]# rsync -auvzP -e "ssh -p22" mssh.tar.gz root@192.168.176.11:/data/
    sending incremental file list
    mssh.tar.gz
              1,977 100%    0.00kB/s    0:00:00 (xfr#1, to-chk=0/1)
    sent 2,069 bytes  received 35 bytes  4,208.00 bytes/sec
    total size is 1,977  speedup is 0.94
    
    # 拉取
    [root@vm5 ~]# rm -f mssh.tar.gz
    [root@vm5 ~]# rsync -auvzP -e "ssh -p22" root@192.168.176.11:/data/mssh.tar.gz .
    receiving incremental file list
    mssh.tar.gz
              1,977 100%    1.89MB/s    0:00:00 (xfr#1, to-chk=0/1)
    sent 43 bytes  received 2,069 bytes  4,224.00 bytes/sec
    total size is 1,977  speedup is 0.94
    

    参数auvzP解释:参数a是归档传输,保留文件属性,u是更新传输,源文件修改时间较新,则传输。v是显示详细过程,z是压缩传输,P是断点传输。
    注意:rsync 传输文件夹时候,folder/ 带/则是传输目录下的文件,不带/是把文件夹也传输过去。

    使用压缩传输

    安装pv、lz4工具

    注意:服务器两端都要安装。
    pv在yum源里面没有,可以到pv官网

    # 去pv官网,搞到个rpm包链接,直接rpm命令安装
    [root@vm5 ~]# rpm -ivh http://www.ivarch.com/programs/rpms/pv-1.6.6-1.x86_64.rpm
    获取http://www.ivarch.com/programs/rpms/pv-1.6.6-1.x86_64.rpm
    警告:/var/tmp/rpm-tmp.mFbA6u: 头V3 DSA/SHA1 Signature, 密钥 ID 3fc56f51: NOKEY
    准备中...                          ################################# [100%]
    正在升级/安装...
       1:pv-1.6.6-1                       ################################# [100%]
       
    # lz4 可以直接yum安装   
    [root@vm5 ~]# yum install -y lz4
    

    使用

    [root@vm5 ~]# time tar -c go |pv |lz4 -B4 |ssh -p22 -c aes128-ctr 192.168.176.11 "lz4 -d |tar -xC /data/"
    using blocks of size 64 KB
    18.1MiB 0:00:00 [49.5MiB/s] [   <=>                                                                                                                                                                      ]
    real        0m0.376s
    user       0m0.080s
    sys        0m0.108s
    # 对比rsync
    [root@vm5 ~]# time rsync -auvzP -e "ssh -p22" go 192.168.176.11:/data/
    ......
    sent 11,741,677 bytes  received 10,451 bytes  7,834,752.00 bytes/sec
    total size is 18,502,481  speedup is 1.57
    real 0m1.130s
    user       0m0.797s
    sys        0m0.160s
    [root@vm5 ~]#
    

  • 相关阅读:
    一探前端开发中的JS调试技巧(转)
    JavaScript模板引擎实例应用(转)
    本周汇总
    完美解决IE8不支持margin auto问题
    移动端H5适配流程
    原型继承
    每周笔记
    一个页面多个bootstrip轮播以及一个页面多个swiper轮播 冲突问题
    如何让整个网页倾斜
    前端知识体系
  • 原文地址:https://www.cnblogs.com/coolops/p/12843436.html
Copyright © 2011-2022 走看看