So kopieren Sie schnell große Dateien unter Linux

So kopieren Sie schnell große Dateien unter Linux

Daten kopieren

Beim Remote-Kopieren von Daten verwenden wir normalerweise den Befehl rsync. Wenn jedoch eine große Anzahl kleiner Dateien kopiert wird, ist die Übertragungsgeschwindigkeit von rsync langsam. Dieses Problem kann gelöst werden, indem die Übertragung mit tar pv lz4 verpackt und komprimiert wird. Die Verwendung dieser Methode entspricht der Verwendung von scp und rsync zum Übertragen großer Dateien.

In tatsächlichen Tests werden 1200 G mit rsync übertragen. Die Größe einer einzelnen Datei beträgt einige zehn KB bis 2 GB. Mit einer Gigabit-Netzwerkkarte müssen 6 rsyncs gleichzeitig ausgeführt werden, um die Bandbreite voll auszunutzen. Die Geschwindigkeit jedes rsyncs beträgt etwa 20 MB und schwankt stark. Pro Minute können ca. 4,5 GB kopiert werden.

Wenn Sie jedoch tar pv lz4 verwenden, müssen Sie nur eines ausführen und die Geschwindigkeitsschwankungen sind gering. Pro Minute können ca. 6,8 GB kopiert werden.

Anwendungsbeispiele für Rsync

rsync-Installation: yum install -y rsync

# Push [root@vm5 ~]# rsync -auvzP -e "ssh -p22" mssh.tar.gz [email protected]:/data/
Senden einer inkrementellen Dateiliste
mssh.tar.gz
     1.977 100 % 0,00 kB/s 0:00:00 (xfr#1, to-chk=0/1)
gesendet 2.069 Bytes empfangen 35 Bytes 4.208,00 Bytes/Sek.
Gesamtgröße ist 1.977, Beschleunigung ist 0,94

# Ziehen Sie [root@vm5 ~]# rm -f mssh.tar.gz
[root@vm5 ~]# rsync -auvzP -e "ssh -p22" [email protected]:/data/mssh.tar.gz .
Empfangen einer inkrementellen Dateiliste
mssh.tar.gz
     1.977 100 % 1,89 MB/s 0:00:00 (xfr#1, to-chk=0/1)
gesendet 43 Bytes empfangen 2.069 Bytes 4.224,00 Bytes/Sek.
Gesamtgröße ist 1.977, Beschleunigung ist 0,94

Erklärung zum Parameter auvzP: Parameter a steht für die Archivübertragung, bei der die Dateiattribute erhalten bleiben, u steht für die Aktualisierungsübertragung, und wenn der Änderungszeitpunkt der Quelldatei neuer ist, wird dieser übertragen. v bedeutet „Detaillierten Vorgang anzeigen“, z bedeutet „komprimierte Übertragung“ und P bedeutet „Unterbrechungspunktübertragung“.

Hinweis: Wenn rsync Ordner überträgt und der Ordner/ über / verfügt, werden die Dateien im Verzeichnis übertragen. Wenn der Ordner/ nicht über / verfügt, wird der Ordner ebenfalls übertragen.

Komprimierte Übertragung verwenden

Installieren Sie PV- und LZ4-Tools

Hinweis: Dies muss an beiden Enden des Servers installiert werden.

pv ist nicht in der Yum-Quelle enthalten, Sie finden es auf der offiziellen pv-Website

# Gehen Sie zur offiziellen PV-Website, holen Sie sich einen Link zum RPM-Paket und installieren Sie es direkt mit dem RPM-Befehl [root@vm5 ~]# rpm -ivh http://www.ivarch.com/programs/rpms/pv-1.6.6-1.x86_64.rpm
Holen Sie sich http://www.ivarch.com/programs/rpms/pv-1.6.6-1.x86_64.rpm
WARNUNG: /var/tmp/rpm-tmp.mFbA6u: Header V3 DSA/SHA1-Signatur, Schlüssel-ID 3fc56f51: NOKEY
Vorbereitung... ####################################### [100%]
Aktualisieren/Installieren …
  1:pv-1.6.6-1 ######################################### [100 %]
  
# lz4 kann direkt mit yum [root@vm5 ~] installiert werden# yum install -y lz4

verwenden

[root@vm5 ~]# Zeit tar -c go |pv |lz4 -B4 |ssh -p22 -c aes128-ctr 192.168.176.11 "lz4 -d |tar -xC /data/"
Verwendung von Blöcken der Größe 64 KB
18,1 MiB 0:00:00 [49,5 MiB/s] [ <=> ]
real 0m0.376s
Benutzer 0m0.080s
System 0 m 0,108 s
# Vergleich mit rsync
[root@vm5 ~]# Zeit rsync -auvzP -e "ssh -p22" gehe zu 192.168.176.11:/data/
......
gesendet 11.741.677 Bytes empfangen 10.451 Bytes 7.834.752,00 Bytes/Sek.
Gesamtgröße ist 18.502.481, Beschleunigung ist 1,57
real 0m1.130s
Benutzer 0m0.797s
System 0 m 0,160 s
[root@vm5 ~]

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • So erkennen Sie die Dateisystemintegrität basierend auf AIDE in Linux
  • Detaillierte Erläuterung der Befehle zum Lesen und Schreiben von Remotedateien mit Vim im Linux-System
  • Detaillierte Erläuterung verschiedener praktischer Verwendungen virtueller Gerätedateien im Linux-System
  • Lösung für die Eingabeaufforderung „Keine solche Datei oder kein solches Verzeichnis“ beim Ausführen ausführbarer Dateien unter Linux
  • Detaillierte Erläuterung des Problems, dass der Speicherplatz nach dem Löschen der Linux-Datei nicht freigegeben wird
  • Beispielanalyse von Linux-Dateiverwaltungsbefehlen [Anzeige, Ansicht, Statistiken usw.]
  • Implementierung der Deduplizierung von Dateiinhalten sowie von Schnittmengen und Unterschieden in Linux

<<:  Implementieren einer verteilten Sperre mit MySQL

>>:  Detaillierte Erläuterung der dynamischen Änderung des Elementknotenstils in Uniapp

Artikel empfehlen

Zwei Möglichkeiten zum Beenden von Bash im Docker-Container unter Linux

Wenn Sie Bash beenden möchten, haben Sie zwei Mög...

Docker verwendet das Tool nsenter, um in den Container zu gelangen

Bei der Verwendung von Docker-Containern ist es b...

Vier Lösungen für die Verwendung von setTimeout in JS for-Schleifen

Inhaltsverzeichnis Überblick Lösung 1: Verschlüss...

Implementierung des Umschreibesprungs in Nginx

1. Neuer und alter Domain-Namenssprung Anwendungs...

Tomcat analysiert XML und erstellt Objekte durch Reflektion

Der folgende Beispielcode stellt die Prinzipien d...

Beschreibung des Meta-Viewport-Attributs in der HTML-Webseite

Beschreibung der HTML-Meta-Viewport-Attribute Was...

Detaillierte Erläuterung der langsamen MySQL-Protokollabfrage

Langsame Protokollabfragefunktion Die Hauptfunkti...

Videojs+Swiper realisiert Taobao-Produktdetailkarussell

In diesem Artikel wird der spezifische Code von v...

Mehrere gängige Methoden zum Festlegen der Ankerpositionierung in HTML

Mir sind mehrere Möglichkeiten bekannt, die Ankerp...

Implementierungsbeispiel für die Bereitstellung von Docker rocketmq

Inhaltsverzeichnis Vorbereitung Bereitstellungspr...

Fassen Sie den User-Agent beliebter Browser zusammen

1. Grundkenntnisse: HTTP-Header-Benutzeragent Use...

So verwenden Sie Docker Compose zum Erstellen eines FastDFS-Dateiservers

Im vorherigen Artikel wurde ein ausführliches Bei...

So lösen Sie das Problem des Randkollapses in CSS

Betrachten wir zunächst drei Situationen, in dene...

Praxis der Verwendung von Vite2+Vue3 zum Rendern von Markdown-Dokumenten

Inhaltsverzeichnis Benutzerdefinierte Vite-Plugin...