Schnelle Abschätzung der Festplattengeschwindigkeit mit Backup
Dmitry Kuzmenko, 30.05.2019, ib-aid.com
Unser technischer Support erhält regelmäßig eine Frage (die auch in Foren gestellt wird) - „unsere Festplatten scheinen langsam zu sein, wie kann man das bestätigen?“
Am häufigsten wird diese Frage von Benutzern virtueller Maschinen gestellt, bei denen der DBA keinen Zugriff auf die Einstellungen des Festplattensubsystems hat oder deren Eigenschaften nicht einmal kennt.
Natürlich kann die Festplattengeschwindigkeit mit verschiedenen Tools gemessen werden, von einfachem CrystalDiskMark bis zu komplexerem IOMeter. Die reinsten Ergebnisse erhält man jedoch, wenn Anwendungen nicht mit der Festplatte arbeiten. Andernfalls können die Ergebnisse variieren, und unter hoher Last kann das Testen die Systemleistung verringern.
Darüber hinaus können Systemadministratoren die Installation von Drittanbieter-Software verbieten, selbst für einen kurzen Zeitraum.
Allerdings wird auf allen solchen Systemen normalerweise ein Backup durchgeführt (außer bei denen, die VM-Level-Backup-Software zum Sichern von Firebird verwenden, was falsch ist - siehe #11 hier in „12 häufige Fehler beim Sichern von Datenbanken“).
Backup (gbak -b -g) ist ein Lesen aller Daten aus der Datenbank und ein (sequenzielles) Schreiben dieser Daten in die Backup-Datei. Aus Sicht der Lese-/Schreiboperationen ist es eine Kombination aus zufälligem Lesen und sequenziellem Schreiben.
Die Backup-Datei hat normalerweise eine Größe von 60 %-70 % der Datenbankgröße. Und aufgrund der Versionierung und Seitenstruktur der Datenbank gibt es mehr Lese- als Schreiboperationen.
Da eine Backup-Datei normalerweise auf einem anderen physischen Laufwerk abgelegt wird, hängt die gesamte Backup-Geschwindigkeit von der zufälligen Lesegeschwindigkeit der Datenbank und der sequenziellen Schreibgeschwindigkeit des Backup-Laufwerks ab. Sicherlich kann man die Datenbank auf einer HDD platzieren und auf einer SSD sichern, aber das wäre sehr ineffektiv. Daher gehen wir davon aus, dass die Geschwindigkeit des Backup-Laufwerks nahezu gleich der Geschwindigkeit des Datenbank-Laufwerks ist, nicht viel höher oder niedriger.
Um die Geschwindigkeitsbewertung zu vereinfachen, haben wir nur die Größe der Backup-Datei genommen und sie durch die Backup-Zeit geteilt. Das Ergebnis wird in „Megabyte pro Sekunde“ angegeben. Um den erhaltenen Wert jedoch im Vergleich zu anderen Systemen zu bewerten, ist eine Art Referenzmessung erforderlich.
Wir haben einen durchschnittlichen Desktop-Computer als Referenz genommen, mit einer Datenbank auf RAID1 aus 2 SATA3-HDDs und einem Backup auf einer separaten SATA3-HDD (sequenzielle Lesegeschwindigkeit dieses RAID1 liegt bei etwa 180 MB/s und etwa 150 MB/s für die Backup-HDD).
Hier hat das Backup einer 31-GB-Datenbank eine Größe von 21 GB, und das Backup im Einzelbenutzermodus (niemand arbeitet an diesem Computer) dauert 18 Minuten, die Backup-Geschwindigkeit beträgt 19 Megabyte pro Sekunde.
Da dies also kein leistungsstarker Server, sondern nur ein Desktop ist (vor 2 oder 3 Jahren zusammengebaut), können wir diese Backup-Geschwindigkeit als Referenz verwenden und sie als normal und vielleicht als Minimum für Produktionssysteme betrachten.
Als Nächstes haben wir die Backup-Geschwindigkeit auf 30 verschiedenen Servern unter unserer Support-Verwaltung analysiert, bei denen die Backup-Dateigröße nicht weniger als 5 Gigabyte beträgt.
| Leistung | Geschwindigkeit, MB/s | Kommentare und Beispiele |
|---|
| Schnell | 50-70 | Es gab einige Systeme mit Backups von 38 bis 150 Gigabyte. Backup von 124 GB Datenbank in 42 Minuten - das ist schnell. | | Durchschnittlich | 20-50 | Hier liegt die Durchschnittsgeschwindigkeit bei etwa 80 Gigabyte in 30-40 Minuten. Das ist normal, und unser Desktop zeigt ein Ergebnis, das hier hineinpassen könnte. | | Langsam | 10-20 | 463 Gigabyte in 11 Stunden, 80 Gigabyte in 2 Stunden, 293 Gigabyte in 5 Stunden - das ist langsam, sogar unser Test-Desktop ist schneller. | | Extrem langsam | Unter 10 | Das ist wie 8,5 Gigabyte in 1 Stunde. Sehr langsam. |
Es ist klar, dass auf einigen untersuchten Systemen das Backup nicht bei Null-Last auf dem Server durchgeführt wird. Aber in jedem Fall wird es bei minimaler Last auf dem Server durchgeführt.
Nur um zu wissen, wie sich geringe Last auf die Backup-Geschwindigkeit auswirken kann, haben wir 2 gleichzeitige Backups auf demselben Desktop ausgeführt. Beide dauerten 19 Minuten mit einer Geschwindigkeit von 18 Megabyte pro Sekunde. Das sind 93 % des Einzelbenutzer-Backups, was für einzelne HDDs nicht zu viel ist (7 % Verschlechterung). Wenn Sie eine SSD haben, werden Sie den Unterschied möglicherweise nicht einmal bemerken, selbst wenn Sie 3-4 Backups gleichzeitig ausführen.
Im Allgemeinen kann eine Backup-Geschwindigkeit von 20 Megabyte pro Sekunde und darunter Anlass zur Sorge sein.
In diesem Fall ist entweder die Backup-Festplatte zu langsam, während das Backup so schnell wie möglich durchgeführt werden sollte. Oder die Datenbank-Festplatte ist zu langsam, und die Gesamtsystemleistung ist schlechter als nötig.
So erhöhen Sie die Backup-Geschwindigkeit
Viele Leute nutzen gbak nicht mit voller Geschwindigkeit, und manchmal ist es möglich, die Backup-Geschwindigkeit mit einem einzigen Schalter -se service_mgr zu erhöhen, um den Service Manager innerhalb der Firebird-Engine zu verwenden.
Die empfohlene Befehlszeile für das schnelle Backup lautet wie folgt, sowohl für Firebird 2.5 als auch für Firebird 3.0:
gbak -se localhost:service_mgr -b -g -user USERNAME -pass password Disk:\Path\Database.fdb Disk:\Path\backup.fbk
Weitere Tipps und Tricks zur allgemeinen Leistung: