首页 > 代码库 > 快速传输大数据(tar+lz4+pv)

快速传输大数据(tar+lz4+pv)

如果用传统SCP远程拷贝,速度是比较慢的。现在采用lz4压缩传输。LZ4是一个非常快的无损压缩算法,压缩速度在单核300MB/S,可扩展支持多核CPU。它还具有一个非常快速的解码器,速度单核可达到和超越1GB/S。通常能够达到多核系统上的RAM速度限制。

 你PV 全命为Pipe Viewer,利用它我们可以查看到命令执行的进度。

下面介绍下lz4和pv的安装,下载软件:

下载pv-1.1.4.tar.gz wget http://sourceforge.jp/projects/sfnet_pipeviewer/downloads/pipeviewer/1.1.4/pv-1.1.4.tar.bz2/

下lz4的包难一些,可能要FQ:https://dl.dropboxusercontent.com/u/59565338/LZ4/lz4-r108.tar.gz

安装灰常简单:

pv安装:

[root ~]$ tar jxvf pv-1.1.4.tar.bz2 ^C[root ~]$ cd pv-1.1.4[root pv-1.1.4]$ ./configure && make && make install

lz4安装:

[root ~]$ tar zxvf lz4-r108.tar.gz [root ~]$ cd lz4-r108[root lz4-r108]$ make && make install

 

用法:(-c 后指定要传输的文件,ssh -p  是指定端口,后面的ip是目标主机的ip, -xC指定传到目标主机下的那个目录下,别的不用修改):

tar -c mysql-slave-3307  |pv|lz4 -B4|ssh -p10022 -c arcfour128 -o"MACs umac-64@openssh.com"  192.168.100.234  "lz4 -d |tar -xC /data"

下面是我线上传一个从库的效果:

看到了吧,25.7G 只需要接近3分钟,这样远比scp速度快上了好几倍,直接scp拷贝离散文件,很消耗IO,而使用LZ4快速压缩,对性能影响不大,传输速度快

 

PS:下次补充同机房不同网段的传输效果及跨机房的传输效果^0^

快速传输大数据(tar+lz4+pv)