溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Linux如何提高大文件的拷貝效率

發(fā)布時間:2021-09-03 11:17:42 來源:億速云 閱讀:176 作者:chen 欄目:系統(tǒng)運(yùn)維

這篇文章主要介紹“Linux如何提高大文件的拷貝效率”,在日常操作中,相信很多人在Linux如何提高大文件的拷貝效率問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Linux如何提高大文件的拷貝效率”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

  你可以從源機(jī)器逐個拷貝到逐臺目標(biāo)機(jī)器,但是往往時間也是成倍的?;蛘吣阋部梢酝瑫r從源機(jī)器同時拷貝到多個目標(biāo)機(jī)器,但是受制于源機(jī)器的帶寬等因素,速度并不見得真的很快。

  還好,借助一些UNIX工具可以做的更好。把tee和FIFO組合起來,可以形成一個文件快速分發(fā)鏈:處于分發(fā)鏈中的每臺機(jī)器會保存文件,同時還分發(fā)給它的下一環(huán)。

  首先,選定一臺目標(biāo)機(jī)器做為分發(fā)鏈的最后一環(huán),在這臺機(jī)器上只需要用nc監(jiān)聽(假定端口是1234),再通過管道由pigz解壓縮,繼續(xù)通過管道把數(shù)據(jù)交由tar來分解。

  nc -l 1234| pigz -d | tar xvf -

  然后,再從分發(fā)鏈的末端往上走,設(shè)置其它目標(biāo)機(jī)器,同樣要經(jīng)過監(jiān)聽、解壓、分解,不過在解壓之前我們通過tee命令將數(shù)據(jù)輸出到命名管道(FIFO),另外的一條shell管道會將這些未解壓的數(shù)據(jù)同時分發(fā)到分發(fā)鏈的下一環(huán):

  mkfifo myfifo

  nc hostname_of_next_box 1234 nc -l 1234| tee myfifo | pigz -d | tar xvf -

  最后,在源機(jī)器上啟動分發(fā)鏈,讓數(shù)據(jù)傳輸?shù)椒职l(fā)鏈的第一環(huán):

  tar cv some_files | pigz | nc hostname_of_first_box 1234

  在我的測試中,分發(fā)鏈中的每臺機(jī)器大概損失了3%-10%的性能(相對于1對1的拷貝而言),但是相對逐個逐個的拷貝或者單臺機(jī)器向多臺機(jī)器同時分發(fā),效率提升是很明顯的。

到此,關(guān)于“Linux如何提高大文件的拷貝效率”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI