Maison base de données tutoriel 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

    Déclaration de ce site Web
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

    Outils d'IA chauds

    Undresser.AI Undress

    Undresser.AI Undress

    Application basée sur l'IA pour créer des photos de nu réalistes

    AI Clothes Remover

    AI Clothes Remover

    Outil d'IA en ligne pour supprimer les vêtements des photos.

    Undress AI Tool

    Undress AI Tool

    Images de déshabillage gratuites

    Clothoff.io

    Clothoff.io

    Dissolvant de vêtements AI

    AI Hentai Generator

    AI Hentai Generator

    Générez AI Hentai gratuitement.

    Article chaud

    R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
    3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. Meilleurs paramètres graphiques
    3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. Comment réparer l'audio si vous n'entendez personne
    3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
    Où trouver la courte de la grue à atomide atomique
    1 Il y a quelques semaines By DDD

    Outils chauds

    Bloc-notes++7.3.1

    Bloc-notes++7.3.1

    Éditeur de code facile à utiliser et gratuit

    SublimeText3 version chinoise

    SublimeText3 version chinoise

    Version chinoise, très simple à utiliser

    Envoyer Studio 13.0.1

    Envoyer Studio 13.0.1

    Puissant environnement de développement intégré PHP

    Dreamweaver CS6

    Dreamweaver CS6

    Outils de développement Web visuel

    SublimeText3 version Mac

    SublimeText3 version Mac

    Logiciel d'édition de code au niveau de Dieu (SublimeText3)

    Tutoriel complet Telnet dans Windows 11 [Installation/Activation et dépannage] Tutoriel complet Telnet dans Windows 11 [Installation/Activation et dépannage] May 22, 2023 pm 09:35 PM

    <p>Telnet est l'abréviation de « Terminal Network ». Il s'agit d'un protocole que les utilisateurs peuvent utiliser pour connecter un ordinateur à un ordinateur local. </p><p>Ici, l'ordinateur local fait référence au périphérique qui initie la connexion, et l'ordinateur connecté à l'ordinateur local est appelé l'ordinateur distant. </p><p>Telnet fonctionne sur un principal client/serveur, et bien qu'il soit obsolète, il est encore utilisé par de nombreuses personnes en 2022. De nombreuses personnes sont déjà passées au système d'exploitation Windows 11, qui est le dernier système d'exploitation proposé par Microsoft. &

    Comment se connecter en SSH depuis iPad vers Mac Comment se connecter en SSH depuis iPad vers Mac Apr 14, 2023 pm 12:22 PM

    Comment se connecter en SSH depuis un iPad vers un Mac Il s'agit d'une procédure pas à pas en deux parties. Tout d’abord, vous activerez le serveur SSH sur votre Mac, puis vous utiliserez l’application client ssh pour vous y connecter depuis votre iPad. Sur Mac, démarrez un serveur SSH Vous pouvez activer un serveur SSH sur votre Mac en activant une fonctionnalité appelée Connexion à distance. Allez dans  Menu Apple > Préférences Système > Partage > Activer « Connexion à distance » et cochez la case « Autoriser les utilisateurs distants à accéder pleinement au disque ». Votre Mac est désormais un serveur SSH, vous offrant un shell pour vous connecter depuis votre iPad. Avis

    Programmation serveur Python : utilisation de Paramiko pour implémenter le fonctionnement à distance SSH Programmation serveur Python : utilisation de Paramiko pour implémenter le fonctionnement à distance SSH Jun 18, 2023 pm 01:10 PM

    Avec le développement du cloud computing et de l’Internet des objets, l’exploitation à distance des serveurs est devenue de plus en plus importante. En Python, nous pouvons utiliser le module Paramiko pour implémenter facilement des opérations à distance SSH. Dans cet article, nous présenterons l'utilisation de base de Paramiko et comment utiliser Paramiko en Python pour gérer des serveurs à distance. Qu'est-ce que Paramiko Paramiko est un module Python pour SSHv1 et SSHv2 qui peut être utilisé pour connecter et contrôler les clients SSH.

    OpenSSH sous Windows : guide d'installation, de configuration et d'utilisation OpenSSH sous Windows : guide d'installation, de configuration et d'utilisation Mar 08, 2024 am 09:31 AM

    Pour la plupart des utilisateurs de Windows, le protocole RDP (Remote Desktop Protocol) a toujours été le premier choix pour la gestion à distance car il offre une interface graphique conviviale. Toutefois, pour les administrateurs système qui nécessitent un contrôle plus granulaire, SSH peut mieux répondre à leurs besoins. Grâce à SSH, les administrateurs peuvent interagir avec des appareils distants via la ligne de commande, ce qui peut rendre le travail de gestion plus efficace. L'avantage de SSH réside dans sa sécurité et sa flexibilité, permettant aux administrateurs d'effectuer plus facilement des travaux de gestion et de maintenance à distance, en particulier lorsqu'ils traitent un grand nombre d'appareils ou effectuent des tâches automatisées. Ainsi, même si RDP excelle en termes de convivialité, pour les administrateurs système, SSH est supérieur en termes de puissance et de contrôle. Auparavant, les utilisateurs de Windows devaient emprunter

    Comment se connecter à distance à la base de données Mysql en utilisant Python basé sur ssh Comment se connecter à distance à la base de données Mysql en utilisant Python basé sur ssh May 27, 2023 pm 04:07 PM

    Contexte Si vous devez accéder à la base de données Mysql d'un serveur distant, mais pendant la période de sécurité de la base de données Mysql, les mesures de sécurité sont définies pour autoriser uniquement les connexions locales (c'est-à-dire que vous devez vous connecter au serveur pour l'utiliser) , et les autres connexions à distance ne sont pas accessibles directement, et le port correspondant a également été modifié, vous devez donc vous connecter à la base de données basée sur ssh. La connexion à la base de données de cette manière est la même que l'interface de Navicat basée sur la connexion ssh. Navicat se connecte à la bibliothèque de support d'installation de la base de données Si vous souhaitez vous connecter à Mysql, vous devez d'abord installer pymysqlpipinstallpymysql pour installer la bibliothèque basée sur ssh sshtunnelpipinstallsshtunnel#.

    Configuration de la confiance mutuelle de connexion Linux SSH Configuration de la confiance mutuelle de connexion Linux SSH Feb 19, 2024 pm 07:48 PM

    1. Objectif de la confiance mutuelle ssh 1. La confiance mutuelle SSH est requise lors de la création d'un cluster, ce qui favorise un fonctionnement pratique sur un autre nœud. 2. Lorsque vous utilisez l'opération de copie à distance scp, vous devez saisir le nom d'utilisateur et le mot de passe du serveur cible. À ce stade, vous pouvez configurer la confiance mutuelle SSH entre les serveurs Linux, afin de pouvoir vous connecter sans mot de passe lorsque vous travaillez entre plusieurs. Serveurs Linux. 2. Le principe de configuration de la confiance mutuelle ssh En bref, le serveur stocke le certificat de l'hôte cible afin que l'authentification puisse s'effectuer automatiquement sans saisir de mot de passe. 3. Étapes de configuration de la confiance mutuelle SSH 1. Chaque nœud génère sa propre paire de clés publique et privée. 2. Envoyez votre fichier de clé publique à l'autre partie. 3. Vérifiez si la configuration de la confiance mutuelle réussit. 4. Configurez ici la confiance mutuelle ssh avec MYDB01 et

    Linux est-il livré avec ssh ? Linux est-il livré avec ssh ? Apr 06, 2023 pm 03:55 PM

    Linux est livré avec ssh. Le système Linux sera livré avec son propre logiciel ssh. La valeur par défaut est le package logiciel associé à OpenSSH, et le service ssh est ajouté pour démarrer automatiquement au démarrage. Vous pouvez utiliser la commande "ssh -V" pour afficher les informations sur la version ssh installée. Exécutez la commande "systemctl start sshd" pour démarrer le service sshd. Le port par défaut est le port 22.

    Installation de CentOS 7.9 et installation de Centos 7.9 ssh Installation de CentOS 7.9 et installation de Centos 7.9 ssh Feb 13, 2024 pm 10:30 PM

    CentOS7.9 est une version du système d'exploitation très couramment utilisée lors de la création de serveurs ou de la gestion du système. Cet article vous fournira des étapes et des instructions détaillées pour installer CentOS7.9 et installer SSH. CentOS7.9 est un système d'exploitation Linux gratuit et open source. Il s'agit d'une version compatible binaire basée sur Red Hat Enterprise Linux (RHEL). Voici les étapes pour installer CentOS7.9 : 1. Vous devez télécharger le fichier image ISO. de CentOS7.9 Vous pouvez le télécharger à partir de Téléchargez le dernier fichier image ISO CentOS7.9 sur le site officiel de CentOS. 2. Créez une nouvelle machine virtuelle ou physique sur votre ordinateur et installez

    See all articles