1,000,000個のファイルを含むLinuxシステムには、大きな2TBフォルダがあります。 tarを使ってパッケージを作成したいです。 tarファイルのサイズは気にしないので、データを圧縮する必要はありません。どのようにtar
スピードアップできますか?パッケージの作成に1時間かかりましたtar -cf xxx.tar xxx/
。私は強力な28コアCPUと500GBのRAMを持っています。tar
マルチスレッドで実行する方法はありますか?
または、異なるフォルダ間、および異なるサーバー間で大容量の小さなファイルを転送する良い方法はありますか?私のファイルシステムはext4です。
ベストアンサー1
@Kusalanandaがコメントで述べたように、tarはディスクにバインドされています。あなたができる最良の方法の1つは、出力を別々のディスクに保存して書き込むため、読み込み速度が遅くならないようにすることです。
次の手順がネットワークを介してファイルを移動する場合は、まずネットワークを介してtarファイルを作成することをお勧めします。
$ tar -cf - xxx/ | ssh otherhost 'cat > xxx.tar'
このように、ローカルホストはファイルを読み取るだけで、tarが消費する書き込み帯域幅に対応する必要はありません。 tarのディスク出力はネットワーク接続とそのディスクシステムに吸収されますotherhost
。