LAN経由で大容量ファイルをコピーしていますが、SSHパイプを使用すると約10MB/sの転送速度が得られることがわかりました。ただし、4つを同時に実行すると、総転送速度は約40MB/s程度になります。
それで、大きなファイル(1GBなど)を複数の部分に分割し、各部分を別々にパイプしてから、反対側で再構築したいと思います。また、転送する前にtar / zipを実行し、反対側で解凍するか解凍する必要があります。
どうすればいいですか?
答え1
HPN-SSH
最後に、で終わりますpigz
。
tar -cf - -C [RELATIVEFOLDER] [FILENAME] | pigz | ssh px "pigz -d | tar xf - -C [REMOTEFOLDER]"
改善点は次のとおりです。10の累乗。
ちなみに、インストールHPN-SSH
とpigz
オンはUbuntu 14.04
非常に簡単です。
# hpn-patched ssh from ppa
sudo apt-get install python-software-properties
sudo add-apt-repository ppa:w-rouesnel/openssh-hpn
sudo apt-get update -y
sudo apt-get install openssh-server
ssh -V # should have 'hpn' in it somewhere
# pigz
sudo apt-get install pigz
答え2
scp(1) を使用して大容量ファイルをコピーする前に分割に使用できる zipsplit(1) と Split(1) があります。あるいは、パイプ効果を得るには、出力を名前付きパイプに分割し、名前付きパイプをSSHに接続することもできます。