ホームページ データベース mysql チュートリアル 使用tar+lz4/pigz+ssh更快的数据传输

使用tar+lz4/pigz+ssh更快的数据传输

Jun 07, 2016 pm 05:34 PM
ssh

前面一篇介绍了如何最大限度的榨取SCP的传输速度,有了这个基础,就可以进一步的使用压缩来加速传输速度了。只使用scp,传输速率

前面一篇介绍了如何最大限度的榨取SCP的传输速度,有了这个基础,就可以进一步的使用压缩来加速传输速度了。只使用scp,传输速率最快约90MB,本文通过压缩将把最快传输速率提升到约250MB/s(包括解压的过程)。

目录

  • 1. 结论
  • 2. 关于lz4
  • 3. 性能环境说明
  • 4. 实验测试
  • 4.1 分析
  • 1. 结论

    使用tar+lz4+ssh的方式能够获得最大的传输性能:

    time tar -c sendlog/|pv|lz4 -B4|ssh -c arcfour128 \ -o"MACs umac-64@openssh.com" 10.xxx.xxx.36 "lz4 -d |tar -xC /u01/backup_supu" 3.91GiB 0:00:16 [ 249MiB/s] real 0m16.067s user 0m15.553s sys 0m16.821s

    249MB/s,妥妥的。是最原始scp(40MB/s)的6倍,原来400GB传输需要约3小时,现在只需要27分钟了。

    注1:lz4在解压方面的优异表现,使得他在本案例中非常重要。如果无需解压的传输,则可以考虑使用pigz/pbiz2

    注2:使用pv观察,网络流量约80MB,所以使用nc替换ssh并不会有明显的性能提升

    注3:lz4压缩使用-B4(64KB块大小),解压使用-B7(4MB块大小),是本案例的测试最优值

    2. 关于lz4

    lz4是一个让"人见人爱、花见花开"的压缩算法,能够在多核上很好的扩展,压缩速度和压缩比并没有太大优势(pigz),但是他的解压速度非常惊人,本案例测试lz4的解压是gunzip的3倍(更多的对比测试)。因为压缩时高效的多核利用,,再加上惊艳的解压,lz4已经在非常多重要场合使用了:Linux3.11内核实现了LZ4,并可以使用其压缩和解压kernel image HBase:Add an LZ4 compression option to HFile等等(参考)。

    对于需要频繁压缩、实时快速解压的场景来说,lz4非常适合。

    3. 性能环境说明

    这里使用同上一篇文章相同的两台主机环境:ping获得RTT是17ms;使用iperf测试带宽是115MB(参考附录);

    整个过程有几个阶段:磁盘读取-->打包(tar)-->压缩-->传输-->解压缩-->拆包-->落盘 对应了的速度测试:

    3.1 磁盘读取和落盘

    磁盘读取(有page cache),能到3GB/s;磁盘写入约428MB:

    # dd if=./sendlog.tar of=/dev/null bs=4096 count=1048576 1024002+1 records in 1024002+1 records out 4194314240 bytes (4.2 GB) copied, 1.33946 s, 3.1 GB/s # dd if=/dev/zero of=./x.zero.file bs=4096 count=1048576 1048576+0 records in 1048576+0 records out 4294967296 bytes (4.3 GB) copied, 10.0306 s, 428 MB/s

    3.2 打包、拆包

    打包和拆包速度都大于350MB/s:

    # time tar -cf sendlog.tar ./sendlog/ real 0m10.996s # time tar -xf sendlog.tar real 0m11.564s

    3.3 压缩、解压缩

    关于各个压缩工具的性能(压缩、解压、压缩率)已经有很多人做了比较,本文不做详细讨论,这里选择gzip/pigz lz4 bzip做本测试的比较:

    | input speed | output speed | rate | speed of decoder pigz -p 16 | 327.0MB/s | 57.2MB/s | 17.5% | 95 MB/s lz4 | 288.0MB/s | 79.2MB/s | 27.5% | 264 MB/s bzip2 | 4.9MB/s | 0.65MB/s | 13.1% | 25.6MB /s

    压缩工具的比较测试参考:

    可以看到,lz4在压缩率上略微逊色(对比pigz),但是在解压速度上有这惊人的优势。

    linux

    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

    ホットAIツール

    Undresser.AI Undress

    Undresser.AI Undress

    リアルなヌード写真を作成する AI 搭載アプリ

    AI Clothes Remover

    AI Clothes Remover

    写真から衣服を削除するオンライン AI ツール。

    Undress AI Tool

    Undress AI Tool

    脱衣画像を無料で

    Clothoff.io

    Clothoff.io

    AI衣類リムーバー

    AI Hentai Generator

    AI Hentai Generator

    AIヘンタイを無料で生成します。

    ホットツール

    メモ帳++7.3.1

    メモ帳++7.3.1

    使いやすく無料のコードエディター

    SublimeText3 中国語版

    SublimeText3 中国語版

    中国語版、とても使いやすい

    ゼンドスタジオ 13.0.1

    ゼンドスタジオ 13.0.1

    強力な PHP 統合開発環境

    ドリームウィーバー CS6

    ドリームウィーバー CS6

    ビジュアル Web 開発ツール

    SublimeText3 Mac版

    SublimeText3 Mac版

    神レベルのコード編集ソフト(SublimeText3)

    Windows 11 の Telnet 完全チュートリアル [インストール/有効化とトラブルシューティング] Windows 11 の Telnet 完全チュートリアル [インストール/有効化とトラブルシューティング] May 22, 2023 pm 09:35 PM

    &lt;p&gt;Telnet は「ターミナル ネットワーク」の略称です。これは、ユーザーが 1 台のコンピュータをローカル コンピュータに接続するために使用できるプロトコルです。 </p><p>ここで、ローカル コンピュータとは接続を開始するデバイスを指し、ローカル コンピュータに接続されているコンピュータをリモート コンピュータと呼びます。 &lt;/p&gt;&lt;p&gt;Telnet はクライアント/サーバー プリンシパルで実行され、時代遅れではありますが、2022 年現在でも多くの人に使用されています。多くの人はすでに Microsoft が提供する最新のオペレーティング システムである Windows 11 オペレーティング システムに切り替えています。 &

    iPadからMacにSSH接続する方法 iPadからMacにSSH接続する方法 Apr 14, 2023 pm 12:22 PM

    iPad から Mac に SSH 接続する方法 これは 2 部構成のチュートリアルです。まず、Mac で SSH サーバーを有効にし、次に ssh クライアント アプリを使用して iPad から接続します。 Mac で SSH サーバーを開始する リモート ログインと呼ばれる機能をオンにすることで、Mac で SSH サーバーを有効にできます。  Apple メニュー > システム環境設定 > 共有 > 「リモート ログイン」を有効にする に移動し、「リモート ユーザーにディスクへのフル アクセスを許可する」ボックスにチェックを入れます。 これで、Mac が SSH サーバーになり、iPad から接続するためのシェルが提供されます。知らせ

    Python サーバー プログラミング: Paramiko を使用して SSH リモート操作を実装する Python サーバー プログラミング: Paramiko を使用して SSH リモート操作を実装する Jun 18, 2023 pm 01:10 PM

    クラウド コンピューティングとモノのインターネットの発展に伴い、サーバーのリモート操作がますます重要になっています。 Python では、Paramiko モジュールを使用して SSH リモート操作を簡単に実装できます。この記事では、Paramiko の基本的な使い方と、Python で Paramiko を使用してサーバーをリモート管理する方法を紹介します。 Paramiko とは Paramiko は、SSH クライアントの接続と制御に使用できる SSHv1 および SSHv2 用の Python モジュールです。

    Windows での OpenSSH: インストール、構成、および使用ガイド Windows での OpenSSH: インストール、構成、および使用ガイド Mar 08, 2024 am 09:31 AM

    ほとんどの Windows ユーザーにとって、使いやすいグラフィカル インターフェイスを提供するリモート デスクトップ プロトコル (RDP) は常にリモート管理の最初の選択肢となってきました。ただし、より詳細な制御が必要なシステム管理者にとっては、SSH の方がニーズに適している可能性があります。 SSH を介して、管理者はコマンド ラインを通じてリモート デバイスと対話できるため、管理作業がより効率的になります。 SSH の利点はセキュリティと柔軟性にあり、特に多数のデバイスを扱う場合や自動化されたタスクを実行する場合、管理者はリモート管理やメンテナンス作業を簡単に実行できます。したがって、使いやすさの点では RDP が優れていますが、システム管理者にとっては、パワーと制御の点では SSH の方が優れています。以前は、Windows ユーザーは借用する必要がありました

    SSHベースのPythonを使用してMySQLデータベースにリモート接続する方法 SSHベースのPythonを使用してMySQLデータベースにリモート接続する方法 May 27, 2023 pm 04:07 PM

    背景: リモート サーバーの Mysql データベースにアクセスする必要がある場合、Mysql データベースのセキュリティ期間中は、セキュリティ対策がローカル接続のみを許可するように設定されています (つまり、接続を使用するにはサーバーにログインする必要があります) )、他のリモート接続に直接アクセスできなくなり、対応するポートも変更されているため、ssh に基づいてデータベースに接続する必要があります。この方法でデータベースに接続することは、ssh 接続に基づく Navicat のインターフェイスと同じです。 Navicat はデータベース インストール サポート ライブラリに接続します。Mysql に接続する場合は、まず pymysqlpipinstallpymysql をインストールして、ssh ベースのライブラリ sshtunnelpipinstallsshtunnel# をインストールする必要があります。

    Linux SSH ログインの相互信頼構成 Linux SSH ログインの相互信頼構成 Feb 19, 2024 pm 07:48 PM

    1. ssh 相互信頼の目的 1. SSH 相互信頼は、クラスターを構築するときに必要です。これは、別のノードでの操作を便利にするのに役立ちます。 2. scp リモートコピー操作を使用する場合、ターゲットサーバーのユーザー名とパスワードを入力する必要がありますが、このとき、Linux サーバー間に SSH 相互信頼を設定することで、複数のサーバー間で操作する場合にパスワードなしでログインできるようになります。 Linuxサーバー。 2. ssh 相互信頼構成の原理. つまり、サーバーが対象ホストの証明書を保存し、パスワードを入力しなくても自動的に認証が完了するようにします。 3. SSH 相互信頼の構成手順 1. 各ノードは、独自の公開鍵と秘密鍵のペアを生成します。 2. 公開鍵ファイルを相手に送信します。 3. 相互信頼構成が成功したかどうかを確認します。 4. ここで MYDB01 を使用して ssh 相互信頼を構成し、

    Linuxにはsshが付属していますか? Linuxにはsshが付属していますか? Apr 06, 2023 pm 03:55 PM

    Linux には ssh が付属しています。 Linux システムには独自の ssh ソフトウェアが付属しています。デフォルトは OpenSSH 関連ソフトウェア パッケージであり、起動時に自動的に開始されるように ssh サービスが追加されています。「ssh -V」コマンドを使用して、インストールされている ssh バージョン情報を表示できます。 「systemctl start sshd」コマンドを実行してsshdサービスを開始します(デフォルトのポートはポート22です)。

    CentOS 7.9 のインストールと centos 7.9 の ssh インストール CentOS 7.9 のインストールと centos 7.9 の ssh インストール Feb 13, 2024 pm 10:30 PM

    CentOS7.9 はサーバー構築やシステム管理の際によく使われるオペレーティングシステムのバージョンであり、この記事では CentOS7.9 のインストールと SSH のインストールの詳細な手順と手順を説明します。 CentOS7.9 は、無料のオープン ソース Linux オペレーティング システムです。Red Hat Enterprise Linux (RHEL) をベースにしたバイナリ互換バージョンです。CentOS7.9 をインストールする手順は次のとおりです。 1. ISO イメージ ファイルをダウンロードする必要があります。 CentOS7.9の最新版CentOS7.9 ISOイメージファイルをCentOS公式サイトからダウンロードしてください。 2. コンピュータ上に新しい仮想マシンまたは物理マシンを作成し、インストールします。

    See all articles