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 要素ノードスタイルの動的変更の詳細な説明

推薦する

nginx の場所に複数の Proxy_pass メソッドがある

1. まず、nginxの位置情報に関する関連知識を確認しましょう1) 位置マッチング手順: ~ #波...

ソースコードから MySQL 8.0.20 をコンパイルしてインストールする詳細なチュートリアル

前回の記事では、次のことを紹介しました。 MySQL8.0.20 インストール チュートリアルとイン...

衝突検出を実装するためのjs

この記事の例では、衝突検出を実装するためのjsの具体的なコードを参考までに共有しています。具体的な内...

Win7 インストール MySQL 5.6 チュートリアル図

目次1. ダウンロード2. インストール3. my.ini ファイルを設定する(デフォルトのエンコー...

画像ボタン送信とフォーム繰り返し送信の問題に関する議論

多くの場合、フォームを美しくするために、送信ボタンが画像に置き換えられます。ただし、細部に注意を払わ...

Navicat の MySQL へのリモート接続が遅い理由の詳細な説明

最終的な解決策は最後の写真にありますリモート データベース ( Linux システム) に接続したと...

Javascript Bootstrapのグリッドシステム、ナビゲーションバー、カルーセルの詳細な説明

目次ブートストラップと関連コンテンツの紹介グリッドシステムネストされた列列オフセット列の並べ替えナビ...

CSS3 のフィルタプロパティの使用に関する詳細な説明

最近、イントラネットポータルを修正していたときに、フィルターを使用する必要がある箇所に遭遇しました。...

webpackが静的リソースキャッシュを実装する方法

目次導入複数の異なるハッシュを区別するハッシュチャンクハッシュコンテンツハッシュjs キャッシュの実...

MySQLウィンドウ関数の具体的な使用法

目次1. ウィンドウ関数とは何ですか? 1. ウィンドウをどのように理解しますか? 2. ウィンドウ...

eCharts でパーセンテージ付きの横棒グラフを実装する方法

目次サンプルコードレンダリングコード分​​析要約するサンプルコード var データ = [220, ...

npm 淘宝ミラー変更説明

1. トップレベルの使用法1. cnpmをインストールする npm i -g cnpm --regi...

Vueはシンプルなショッピングカートの例を実装します

この記事では、参考までに、シンプルなショッピングカートケースを実装するためのVueの具体的なコードを...

Layuiテーブル行のデータを動的に編集する

目次序文スタイル機能説明初期化コードイベントリスナーの追加リスナーツールバーモニターテーブル行ツール...

MySQL スロークエリを通じて MySQL のパフォーマンスを最適化する方法

アクセス数が増えると、MySQL データベースへの負荷が増大します。MySQL アーキテクチャを使用...