Linuxで大きなファイルを素早くコピーする方法

Linuxで大きなファイルを素早くコピーする方法

データをコピー

リモートでデータをコピーする場合、通常は rsync コマンドを使用しますが、小さなファイルを大量にコピーすると、rsync の転送速度が遅くなります。この問題は、tar pv lz4 を使用して転送をパッケージ化して圧縮することで解決できます。この方法を使用することは、scp と rsync を使用して大きなファイルを転送することと同じです。

実際のテストでは、rsync を使用して 1200G を転送しました。1 つのファイルのサイズは数十 KB ~ 2GB です。ギガビット ネットワーク カードでは、帯域幅を完全に活用するには 6 つの rsync を同時に実行する必要があります。各 rsync の速度は約 20MB で、速度の変動が大きくなります。 1分間に約4.5GBコピー可能です。

しかし、tar pv lz4 を使用すると、実行するのは 1 回だけで済み、速度の変動も小さくなります。 1分間に約6.8GBコピー可能です。

Rsyncの使用例

rsync インストール: yum install -y rsync

# プッシュ [root@vm5 ~]# rsync -auvzP -e "ssh -p22" mssh.tar.gz [email protected]:/data/
増分ファイルリストの送信
mssh.tar.gz
     1,977 100% 0.00kB/秒 0:00:00 (xfr#1、to-chk=0/1)
送信 2,069 バイト 受信 35 バイト 4,208.00 バイト/秒
合計サイズは1,977、スピードアップは0.94

# [root@vm5 ~] をプル# rm -f mssh.tar.gz
[root@vm5 ~]# rsync -auvzP -e "ssh -p22" [email protected]:/data/mssh.tar.gz 。
増分ファイルリストの受信
mssh.tar.gz
     1,977 100% 1.89MB/秒 0:00:00 (xfr#1、to-chk=0/1)
送信 43 バイト 受信 2,069 バイト 4,224.00 バイト/秒
合計サイズは1,977、スピードアップは0.94

パラメータ auvzP の説明: パラメータ a はファイル属性を保持するアーカイブ転送です。u は更新転送であり、ソース ファイルの変更時刻が新しい場合は転送されます。 v は詳細なプロセスの表示、z は圧縮された送信、P はブレークポイントの送信を意味します。

注意: rsync がフォルダーを転送する場合、フォルダー / に / があれば、ディレクトリ内のファイルが転送されます。/ がない場合は、フォルダーも転送されます。

圧縮伝送を使用する

pv および lz4 ツールをインストールする

注: これはサーバーの両端にインストールする必要があります。

pvはyumソースには含まれていませんが、pvの公式ウェブサイトで見つけることができます。

# pv の公式 Web サイトにアクセスし、rpm パッケージ リンクを取得して、rpm コマンド [root@vm5 ~]# rpm -ivh http://www.ivarch.com/programs/rpms/pv-1.6.6-1.x86_64.rpm で直接インストールします。
http://www.ivarch.com/programs/rpms/pv-1.6.6-1.x86_64.rpm を入手してください。
警告: /var/tmp/rpm-tmp.mFbA6u: ヘッダー V3 DSA/SHA1 署名、キー ID 3fc56f51: NOKEY
準備中... ################################### [100%]
アップグレード/インストール中...
  1:pv-1.6.6-1 ###################################### [100%]
  
# lz4 は yum [root@vm5 ~] で直接インストールできます# yum install -y lz4

使用

[root@vm5 ~]# time tar -c go |pv |lz4 -B4 |ssh -p22 -c aes128-ctr 192.168.176.11 "lz4 -d |tar -xC /data/"
64 KBのブロックを使用する
18.1MiB 0:00:00 [49.5MiB/秒] [ <=> ]
実数 0分0.376秒
ユーザー 0m0.080s
システム 0分0.108秒
# rsyncとの比較
[root@vm5 ~]# time rsync -auvzP -e "ssh -p22" go 192.168.176.11:/data/
......
送信 11,741,677 バイト 受信 10,451 バイト 7,834,752.00 バイト/秒
合計サイズは18,502,481、スピードアップは1.57
実数 0分1秒130秒
ユーザー 0m0.797s
システム 0分0.160秒
[root@vm5 ~]#

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Linux で AIDE に基づいてファイルシステムの整合性を検出する方法
  • Linux システムで Vim を使用してリモート ファイルを読み書きするコマンドの詳細な説明
  • Linuxシステムにおける仮想デバイスファイルのさまざまな実用的な使用法の詳細な説明
  • Linux で実行可能ファイルを実行するときに「そのようなファイルまたはディレクトリはありません」というプロンプトが表示される場合の解決策
  • Linuxファイル削除後にスペースが解放されない問題の詳しい説明
  • Linux ファイル管理コマンド例の分析 [表示、閲覧、統計など]
  • Linux でのファイル コンテンツの重複排除と交差と差異の実装

<<:  MySQL を使用した分散ロックの実装

>>:  uniapp 要素ノードスタイルの動的変更の詳細な説明

推薦する

純粋なCSSでデジタルプラスとマイナスボタンを実装するための最適なソリューション

序文:デジタル加算ボタンと減算ボタンの実装には、次のような多くのソリューションがこれまでに使用されて...

Vue で SVG アイコンを導入する 2 つの方法

Vue で SVG アイコンを導入する方法Vue で svg アイコンを導入する方法 1インストール...

Vue2/vue3 ルーティング権限管理方法の例

1. Vueルーティングの権限制御には一般的に2つの方法がありますa. ルーティングメタ情報(メタ)...

WeChatミニプログラムでEchartとサブパッケージを使用するための完全な手順

序文休日は終わっていますが、それは別の形で(お腹に触れることで)私たちに現れます。ミニプログラムでデ...

Linux でメモリ使用量を確認する方法

システムの問題、アプリケーションの速度低下、または原因不明の問題をトラブルシューティングする場合、最...

sysbenchツールによるMySQLデータベースのパフォーマンステストの実装方法

1. 背景Sysbench は、システムのハードウェア パフォーマンスをテストできるストレス テスト...

HiveメタデータをMySQLに設定するプロセス全体

Hiveのインストールディレクトリで、confディレクトリに入り、hive-site.xmlファイル...

CPU、マシンモデル、メモリなどの情報を表示するLinuxシステム

システムメンテナンス中は、いつでも CPU 使用率を確認し、対応する情報に基づいてシステムの状態を分...

スプライトとフォントアイコンを実装するためのCSS

スプライト:以前は、各画像リソースは独立した画像でした。ブラウザが Web サイト内のさまざまな W...

HTML チュートリアル、optgroup 要素の理解

カテゴリ選択を選択します。テストの結果、IE と FF はこの要素を適切にサポートできることがわかり...

HTML ファイルにフラッシュ ビデオ形式 (flv、swf) ファイルを埋め込む方法

Flash ファイル形式: .FLV および .SWFフラッシュ ビデオ形式には、.flv と .s...

Vue は Ctrip のカルーセル効果を模倣します (スライディング カルーセル、以下は高度に適応)

まずケースを見てみましょう。vue+swiper を使用して実装します。スライドの高さが異なる場合、...

MySQLにおける区切り文字の定義と機能の詳細な説明

MySQL を初めて学ぶときは、区切り文字の本当の目的を理解していないかもしれません。区切り文字は、...

Vue+flaskで動画合成機能を実現(ドラッグ&ドロップアップロード)

目次ドラッグアンドドロップアップロードについては以前の記事で書きました。ファイルをアップロードするF...

Dockerはローカルイメージとコンテナの保存場所を設定します

指定したサイズより大きいファイルを検索するには、find コマンドを使用します。 検索 / -typ...