实测bbcp多线程传输工具
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实测bbcp多线程传输工具相关的知识,希望对你有一定的参考价值。
bbcp是由SLAC(斯坦福直线加速器中心)的Andy Hanushevsky创立的点对点网络文件拷贝工具。
1、安装
访问bbcp的主页:http://www.slac.stanford.edu/~abh/bbcp/,下载对应二进制版本或者源码,如果是源码,就需要自己编译。
wget http://www.slac.stanford.edu/~abh/bbcp/bin/amd64_rhel60/bbcp
直接放到 /usr/local/bin 下面:
mv -f bbcp /usr/local/bin/bbcp && chmod +x /usr/local/bin/bbcp
然后就可以开始用了。
注意:如果你的服务器启用防火墙了,注意需要开放 5031 端口的 INPUT 链。
例如,要从 172.16.66.65 拷贝文件到 172.16.66.66,则做如下规则:
iptables -I INPUT -s 172.16.66.66 -p tcp --dport 5031 -j ACCEPT
另外,bbcp拷贝的目标段也需要安装bbcp。
2、测试
本次测试都是拷贝test.tar.gz文件。
du -sb test.tar.gz
1863814120 test.tar.gz
du -sh test.tar.gz
1.8G test.tar.gz
2.1 测试scp
time scp -P 1222 test.tar.gz [email protected]:/tmp/
[email protected]‘s password:
test.tar.gz 100% 1777MB 63.5MB/s 00:28
real 0m28.658s
user 0m4.832s
sys 0m4.113s
拷贝耗时约28.6s
2.2 测试 bbcp
time /usr/local/bin/bbcp -4 -k -a -r -F -v -P 2 -w 9m -s 16 -T ‘ssh -p 1222 -x -a -oFallBackToRsh=no %I -l %U %H/usr/local/bin/bbcp‘ test.tar.gz [email protected]:/tmp/
[email protected]‘s password:
bbcp: Indexing files to be copied...
bbcp: Copying 0 files and 0 links in 0 directories.
bbcp: Appending to /tmp/test.tar.gz at offset 0
bbcp: 171110 16:32:20 12% done; 135.9 MB/s, avg 135.9 MB/s
bbcp: 171110 16:32:22 22% done; 95.0 MB/s, avg 113.0 MB/s
bbcp: 171110 16:32:24 33% done; 98.7 MB/s, avg 107.9 MB/s
bbcp: 171110 16:32:26 41% done; 66.5 MB/s, avg 96.9 MB/s
bbcp: 171110 16:32:28 46% done; 45.4 MB/s, avg 86.2 MB/s
bbcp: 171110 16:32:30 52% done; 51.3 MB/s, avg 80.1 MB/s
bbcp: 171110 16:32:32 59% done; 65.7 MB/s, avg 78.0 MB/s
bbcp: 171110 16:32:34 64% done; 46.4 MB/s, avg 74.0 MB/s
bbcp: 171110 16:32:36 70% done; 49.9 MB/s, avg 71.2 MB/s
bbcp: 171110 16:32:38 75% done; 48.1 MB/s, avg 68.8 MB/s
bbcp: 171110 16:32:40 83% done; 65.5 MB/s, avg 68.5 MB/s
bbcp: 171110 16:32:42 87% done; 42.4 MB/s, avg 66.3 MB/s
bbcp: 171110 16:32:44 94% done; 62.0 MB/s, avg 66.0 MB/s
File /tmp/test.tar.gz created; 1863814120 bytes at 65.3 MB/s
1 file copied at effectively 60.3 MB/s
real 0m29.504s
user 0m0.062s
sys 0m1.383s
拷贝耗时约29.5s
从上面的测试结果来看bbcp并未传闻的比scp快多少倍。
参数详解:
-4 使用ipv4 IP地进行传输
-k 保留所有未传输完成的文件,并允许在重试时进行覆盖,使用-f后即使加了-k也会全部重传,一般与-a一起使用,默认不使用-k时当传输未完成就中断传输时会删除没有传输完的目标文件
-a 保留checkpoint信息用于校验文件的完整性
-r 递归传输指定路径下的所有文件
-c 使用压缩减少网络上传输的字节但需要额外的CPU资源,如果CPU资源不足,性能会非常差。bbcp使用zip对数据进行压缩传输压缩级别1-9,1速度最快,9最大压缩率速度最慢
-d 多目录复制,可以使用多个源以空格隔开。如:/home/ddroot/data dir1/data1 dir2/data2
-P 2 每两秒显示传输的进程
-v 显示拷贝信息
-V 打印调试信息
-f 强制清除远程主机上传输失败的数据
-F 不检查目标服务器的剩余空间
-w 设置Disk (I/O) buffers
算法为(window = netspeed/8*RTT = 1000Mb/8*74ms = 1000/1000/8*74 = 9.25 M)
对应链接:http://www.slac.stanford.edu/~abh/bbcp/#_Toc332986061
-s 16 设置并发数为16
参考官方建议:http://www.slac.stanford.edu/~abh/bbcp/#_Streams_(-s)
-T "ssh -x -a -p 1222 -oFallBackToRsh=no -i /home/ddroot/.ssh/id_rsa -l ddroot 172.16.66.66 /usr/bin/bbcp"
指定远端主机的认证方式:
采用-p 1222指定端口;
设置-oFallBackToRsh=no减少ssh响应时间;
设置-i /home/ddroot/.ssh/id_rsa指定SSH Key;
设置-l ddroot指定登陆用户;
172.16.66.66为远程主机地址;
/usr/bin/bbcp为远程主机的bbcp路径;
--port pn1 指定接收数据端口,默认5031
-Z pn1:pn2 指定接收数据端口范围
更多详细信息请查看:Using BBCP 和上面提到的bbcp主页。
http://pcbunn.cithep.caltech.edu/bbcp/using_bbcp.htm
http://www.slac.stanford.edu/~abh/bbcp/
以上是关于实测bbcp多线程传输工具的主要内容,如果未能解决你的问题,请参考以下文章