实测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/

时间: 2024-08-30 12:48:10

实测bbcp多线程传输工具的相关文章

Mysql多线程性能测试工具sysbench 安装、使用和测试

From:http://www.cnblogs.com/zhoujinyi/archive/2013/04/19/3029134.html 摘要:      sysbench是一个开源的.模块化的.跨平台的多线程性能测试工具,可以用来进行CPU.内存.磁盘I/O.线程.数据库的性能测试.目前支持的数据库有MySQL.Oracle和PostgreSQL.当前功能允许测试的系统参数有: file I/O performance (文件I / O性能) scheduler performance (调

linux下多线程下载工具axel的编译安装

axel 是Linux 命令行下多线程的下载工具,支持断点续传,速度通常情况下是Wget的几倍 官方主页:http://axel.alioth.debian.org/ 源码下载: #curl -O http://pkgs.fedoraproject.org/repo/pkgs/axel/axel2.4.tar.gz/a2a762fce0c96781965c8f9786a3d09d/axel-2.4.tar.gz 编译安装: # tar -xvf axel-2.4.tar.gz  && cd

Linux下多线程下载工具MWget和Axel使用介绍

linux运维在操作linux过程中,用得最多的linux下载工具想必一定是wget,没有看到哪一台服务器没装过wget的,或许有人使用ftp下载,也有人使用多线程的axel以及ProZilla,毫无疑问这两个工具都非常的出色,但是对于习惯使用wget的人来说显得不适应,于是老外便开发了多线程版本的wget工具mwget,m表示multi多线程的意思. mwget官方地址:http://sourceforge.net/projects/kmphpfm/?source=dlp # cd /usr/

5款顶尖Windows文件传输工具

5款顶尖Windows文件传输工具 英文原文: Drasko 日常工作中,公司里的系统管理员或其他岗位的员工都需要传递大量各种类型的文件和文档.其中一些可以通过 email 收发.但由于 email 附件有文件大小限制,因此需要使用文件传输工具来传递较大的文件.在这种情况下就需要文件传输工具出场了.本文即将介绍 5 款顶尖高效免费 Windows 文件传输工具. FileZilla FileZilla 是 Windows 上使用最多的免费 ftp 客户端.它是一款遵循 GNU 公共许可证发布的开

MySQL多线程备份工具:mydumper

MySQL多线程备份工具:mydumper http://www.orczhou.com/index.php/2011/12/how-to-split-mysqldump-file/ Mydumper是一个针对MySQL和Drizzle的高性能多线程备份和恢复工具.开发人员分别来自MySQL,Facebook,SkySQL公司.目前已经在有一些大型产品业务上测试并使用了Mydumper.分稳定版和开发版两种,目前最新稳定版是0.2.3和最新开发版是0.5.1.恢复时可使用myloader工具.

curl远程传输工具

/** * curl远程传输工具 */ public function post_curl($url,$body,$header,$type='POST'){ $ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_HEADER,0);//0只要正文 curl_setopt($ch,CURLOPT_TIMEOUT,5);//设置超时时间 curl_setopt($ch,CURLOPT_CONNEC

基于FTP协议的文件传输工具(SOCKET、FTP方面、MFC方面)

一.本课程是怎么样的一门课程(全面介绍) 1.简介:FTP(File Transfer Protocol),是文件传输协议的简称.用于Internet上的控制文件的双向传输.同时,它也是一个应用程序(Application).用户可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息.2.作用:FTP的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)查看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算

CentOS6.4 安装aria2多线程下载工具

aria2是一个Linux下的多线程下载工具,支持HTTP/HTTPS.FTP.BitTorrent.Metalink协议. 平时在linux上下载http上的东西常用如wget.curl命令,但是他们都是单线程下载的.这里系统是CentOS6.3 64bit. aria2官方项目页面:http://aria2.sourceforge.net/ 安装aria2: wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.

curl基于URL的文件传输工具

简介 cURL是一款开源的基于URL的文件传输工具,支持HTTP.HTTPS.FTP等协议,支持POST.cookie.认证.扩展头部.限速等特性. curl命令用途广泛,比如下载.发送http请求.指定http头部等. wget是个专职的下载利器,简单,专一,极致:而curl可以下载,但是长项不在于下载,而在于模拟提交web数据,对请求报文进行设置,从而对网页进行调试. wget支持递归下载,curl不支持.所以区分下来就是下载数据使用wget,网页调试使用curl. 常用功能 curl UR