Ist es möglich, den gzip
Prozess zu beschleunigen ?
Ich benutze
mysqldump "$database_name" | gzip > $BACKUP_DIR/$database_name.sql.gz
zur Sicherung einer Datenbank in ein Verzeichnis, $BACKUP_DIR
.
Die Manpage sagt:
- # --fast --best
Regelt die Geschwindigkeit der Komprimierung mit der angegebenen Ziffer #, wobei -1 oder --fast die schnellste Komprimierungsmethode angibt (weniger Komprimierung) und -9 oder --best die langsamste Komprimierungsmethode angibt ( beste Kompression). Die Standardkomprimierungsstufe ist -6 (dh auf Kosten der Geschwindigkeit auf hohe Komprimierung eingestellt).
- Wie effektiv wäre es zu verwenden
--fast
? - Verringert dies effektiv die CPU-Auslastung auf einem modernen Computer?
Meine Testergebnisse
Ich habe keine Beschleunigung bemerkt:
- 7 min, 47 sekunden (mit voreingestelltem verhältnis
-6
) - 8 min, 36 sekunden (mit verhältnis
--fast
(= 9))
Es scheint also noch länger zu dauern, bis die schnelle Komprimierung verwendet wird?
Nur eine höhere Komprimierung verlangsamt es wirklich:
- 11 min, 57 sekunden (mit verhältnis
--best
(= 1))
Nachdem ich die Idee mit bekommen hatte, lzop
testete ich das auch und es ist wirklich schneller:
- 6 min, 14 sekunden mit
lzop -1 -f -o $BACKUP_DIR/$database_name.sql.lzo
quelle
gzip -1
es nicht schnell genug ist, benutzelzop
lz4
welche, die diesen Benchmark noch schneller sehen . Aber lzop und lz4 brauchen offenbar viel mehr Speicher. Wird es ein Problem auf meinem 1 GB RAM Single-Core sein, dass lz4 bei der Komprimierung 30-mal so viel Speicher benötigt wie gzip, wenn ich einige große Datenbanken komprimiere?Antworten:
Wenn Sie eine Multi-Core-Maschine haben, die Pigz verwendet, ist dies viel schneller als herkömmliches GZIP .
Pigz kann als Ersatz für gzip verwendet werden. Beachten Sie, dass nicht die Dekomprimierung, sondern nur die Komprimierung parallelisiert werden kann.
Mit pigz wird die Kommandozeile
quelle
pigz
Erhöht die CPU-Auslastung, senkt aber die auf Multiprozessoren benötigte ZeitVon
man gzip
:quelle
Wenn es aufgrund von Datenbanksperrproblemen schnell sein muss und Sie über eine ausreichend schnelle / große Festplatte verfügen, um die Daten vorübergehend nicht zu komprimieren, können Sie stattdessen die folgende Methode verwenden:
Dh speichern Sie das Backup zuerst (was schneller ist als das Gzippen, wenn der Datenträger schnell und die CPU langsam ist) und lassen Sie das Gzippen dann im Hintergrund ablaufen.
Dadurch können Sie möglicherweise auch einen besseren Komprimierungsalgorithmus verwenden, da es nicht mehr (direkt) darauf ankommt, wie lange die Komprimierung dauert.
quelle