2015-11-19 26 views
0

我有一個備份腳本,它正在生成一個tar,並將其管道傳輸到mbuffer。然後將數據寫入磁帶驅動器(LTO3)如果設備塊使用了大小,mbuffer會比dd慢dd選擇大小的設備塊

我發現mbuffer減慢了帶寬,我找不出原因。

這裏的兩個命令和平均速度低於他們

$tar -b 512 -cf - /data | \ 
mbuffer -A "..." -P 90 -m 1G -f -o /dev/st0 -d 512 

in @ 21.8 MB/s, out @ 21.8 MB/s, 1287 MB total, buffer 100% full 

,如果我管再次將數據DD這將導致更高的帶寬

$tar -b 512 -cf - /nas/homes/ /nas/photo/ | \ 
mbuffer -P 90 -m 1G | \ 
dd of=/dev/st0 bs=256k 

in @ 72.9 MB/s, out @ 64.0 MB/s, 2671 MB total, buffer 99% full 

我的問題是,如果我我錯誤地使用了mbuffer,或者它不應該與-d一起使用。 即使我沒有用-d指定塊大小,速度仍然保持不變。

我想使用mbuffer,因爲-A標誌,但是這樣的性能需要三倍的時間。

回答

1

那麼從mbuffer(1)手冊頁:

-d  use block-size of device for output (needed for some devices, slows output down) 

但是,我認爲關鍵是,在你的第二個命令,你用262144字節(256K)寫道,只有512字節寫入在第一個。我懷疑,如果你將第二個命令改爲bs = 512,而第一個命令改爲-d 262144,你會反轉這種情況。

所以,用mbuffer試試-d 262144。