實測bbcp多線程傳輸工具

來源:互聯網
上載者:User

標籤:back   cto   認證   需要   tmp   速度   位元組   線程   ssh   

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多線程傳輸工具

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.