Backup, Teil 1: Zweck, Überblick über Techniken und Technologien

Backup?  Ich brauche kein Backup !!

Warum müssen Sie Backups erstellen? Schließlich ist die Ausrüstung sehr, sehr zuverlässig, außerdem gibt es „Clouds“, die hinsichtlich der Zuverlässigkeit besser sind als physische Server: Bei korrekter Konfiguration überlebt der „Cloud“ -Server den Ausfall des physischen Infrastrukturservers problemlos, und aus Sicht der Servicebenutzer wird es einen kleinen, kaum wahrnehmbaren Zeitsprung geben Service. Darüber hinaus erfordert das Duplizieren von Informationen häufig die Zahlung für "zusätzliche" Prozessorzeit, Festplattenlast und Netzwerkverkehr.

Ein ideales Programm läuft schnell, fließt nicht durch den Arbeitsspeicher, hat keine Löcher und existiert nicht.

- Unbekannt
Da die Programme immer noch von Proteinentwicklern geschrieben werden und der Testprozess häufig fehlt und die Bereitstellung von Programmen unter Verwendung von "Best Practices" (die ebenfalls Programme für sich sind und daher nicht perfekt sind) äußerst selten ist, müssen Systemadministratoren häufig Probleme lösen, die klingen kurz aber prägnant: "um so zurückzukehren wie es war", "um die Basis wieder in den normalen Betrieb zu versetzen", "es funktioniert langsam - wir rollen zurück" und auch mein Favorit "Ich weiß nicht was, aber repariere es".

Neben logischen Fehlern, die sich aus unachtsamer Arbeit der Entwickler oder einer Kombination von Umständen ergeben, sowie unvollständigen Kenntnissen oder Missverständnissen der kleinen Funktionen von Bauprogrammen - einschließlich Bindemitteln und Systemprogrammen, einschließlich Betriebssystemen, Treibern und Firmware - gibt es auch andere Fehler. Zum Beispiel verlassen sich die meisten Entwickler auf die Laufzeit und vergessen dabei die physikalischen Gesetze, die mit Hilfe von Programmen immer noch nicht umgangen werden können. Dies umfasst die unendliche Zuverlässigkeit des Festplattensubsystems und aller Datenspeichersubsysteme im Allgemeinen (einschließlich RAM und Prozessor-Cache!), Die Null-Verarbeitungszeit auf dem Prozessor und das Fehlen von Fehlern während der Übertragung über das Netzwerk und während der Verarbeitung auf dem Prozessor sowie Netzwerklatenzen von 0. Vernachlässigen Sie nicht die berüchtigte Frist, denn wenn Sie keine Zeit dafür haben, treten Probleme auf, die sauberer sind als die Nuancen des Netzwerks und der Festplatte.

Chef, es ist alles weg!  Diamond auf k \ f Diamond Hand

Aber was ist mit den Problemen, die bei vollem Wachstum auftreten und über wertvollen Daten hängen bleiben? Es gibt nichts, was die Live-Entwickler ersetzen könnte, und nicht die Tatsache, dass dies in naher Zukunft möglich sein wird. Um jedoch vollständig zu beweisen, dass das Programm wie beabsichtigt funktioniert, waren bisher nur wenige Projekte erfolgreich, und es ist überhaupt nicht möglich, die Beweise auf andere, ähnliche Projekte anzuwenden. Solche Nachweise nehmen auch viel Zeit in Anspruch und erfordern besondere Fähigkeiten und Kenntnisse, und dies minimiert praktisch die Möglichkeit ihrer Anwendung unter Berücksichtigung von Fristen. Darüber hinaus wissen wir immer noch nicht, wie man ultraschnelle, billige und unendlich zuverlässige Technologien zum Speichern, Verarbeiten und Übertragen von Informationen einsetzt. Solche Technologien, wenn sie existieren, dann in Form von Konzepten oder - meistens - nur in Science-Fiction-Büchern und -Filmen.
Gute Künstler kopieren, große Künstler stehlen.

- Pablo Picasso.
Die erfolgreichsten Lösungen und überraschend einfachen Dinge passieren normalerweise dort, wo es auf den ersten Blick absolut inkompatible Konzepte, Technologien, Kenntnisse und Wissenschaftsbereiche gibt.

Zum Beispiel haben Vögel und Flugzeuge Flügel, aber trotz der funktionalen Ähnlichkeit - das Funktionsprinzip ist in einigen Modi das gleiche und technische Probleme werden auf ähnliche Weise gelöst: Hohlknochen, die Verwendung starker und leichter Materialien usw. - sind die Ergebnisse jedoch völlig unterschiedlich sehr ähnlich. Die besten Proben, die wir in unserer Technologie beobachten, stammen größtenteils aus der Natur: luftdichte Abteile in Schiffen und U-Booten - eine direkte Analogie zu Anneliden; Aufbau von Raid-Arrays und Überprüfung der Datenintegrität - Duplizierung der DNA-Kette; Neben gepaarten Organen sind die Unabhängigkeit der Arbeit verschiedener Organe vom Zentralnervensystem (automatische Herzfunktion) und Reflexe autonome Systeme im Internet. Natürlich ist das Aufnehmen und Anwenden von vorgefertigten Lösungen „frontal“ mit Problemen behaftet, aber wer weiß, vielleicht gibt es keine anderen Lösungen.
Wenn ich wüsste, wo du fallen würdest, würde ich Strohhalme legen!

- Belarusianisches Sprichwort
Backups sind daher für diejenigen von entscheidender Bedeutung, die Folgendes möchten:

  • Um den Betrieb ihrer Systeme mit minimalen Ausfallzeiten oder sogar ohne sie wiederherstellen zu können
  • Fühlen Sie sich frei zu handeln, denn im Fehlerfall besteht immer die Möglichkeit eines Rollbacks
  • Minimieren Sie die Auswirkungen absichtlicher Datenkorruption

Hier ist ein bisschen Theorie
Jede Klassifizierung ist beliebig. Die Natur klassifiziert nicht. Wir klassifizieren, weil es für uns bequemer ist. Und wir klassifizieren nach den Daten, die wir auch willkürlich nehmen.

- Jan Bruler
Unabhängig von der physischen Speichermethode kann die logische Speicherung von Daten in zwei Arten des Zugriffs auf diese Daten unterteilt werden: Block und Datei. Diese Aufteilung war in letzter Zeit sehr verschwommen, da es weder rein blockige noch rein dateilogische Speicher gibt. Der Einfachheit halber nehmen wir jedoch an, dass dies der Fall ist.

Die Blockspeicherung von Daten impliziert, dass es ein physisches Gerät gibt, auf dem Daten in einigen festen Abschnitten, Blöcken, aufgezeichnet werden. Der Zugriff auf die Blöcke erfolgt über eine bestimmte Adresse. Jeder Block hat eine eigene Adresse im Gerät.

Eine Sicherung erfolgt normalerweise durch Kopieren von Datenblöcken. Um die Datenintegrität zum Zeitpunkt des Kopierens sicherzustellen, wird die Aufzeichnung neuer Blöcke sowie die Änderung bestehender Blöcke ausgesetzt. Wenn wir eine Analogie aus der gewöhnlichen Welt nehmen, ist der nächste Schrank mit den gleichen nummerierten Zellen.

Datenspeicherung blockieren

Die Dateispeicherung von Daten nach dem Prinzip eines logischen Geräts ist nahe an der Blockspeicherung und wird häufig oben organisiert. Wichtige Unterschiede sind das Vorhandensein einer Speicherhierarchie und lesbarer Namen. Die Abstraktion wird in Form einer Datei hervorgehoben - eines benannten Datenbereichs sowie eines Verzeichnisses - einer speziellen Datei, in der Beschreibungen gespeichert und auf andere Dateien zugegriffen wird. Dateien können mit zusätzlichen Metadaten versehen werden: Erstellungszeit, Zugriffsflags usw. Sie sichern normalerweise auf diese Weise: Sie suchen nach den geänderten Dateien und kopieren sie dann in einen anderen Dateispeicher mit derselben Struktur. Die Datenintegrität wird normalerweise durch das Fehlen der Dateien implementiert, in die geschrieben wird. Dateimetadaten werden auf ähnliche Weise gesichert. Die nächste Analogie ist die Bibliothek mit Abschnitten mit verschiedenen Büchern sowie einem Katalog mit lesbaren Buchnamen.

Dateidatenspeicherung

In letzter Zeit wird manchmal eine andere Option beschrieben, mit der im Prinzip die Dateispeicherung von Daten begann und die dieselben archaischen Merkmale aufweist: die Speicherung von Objektdaten.

Es unterscheidet sich vom Dateispeicher dadurch, dass es nicht mehr als eine Verschachtelung (flaches Layout) hat und die Dateinamen, obwohl sie für Menschen lesbar sind, dennoch besser für die Verarbeitung durch Maschinen geeignet sind. Beim Sichern werden Objektspeicher meistens wie Dateispeicher behandelt, gelegentlich gibt es jedoch auch andere Optionen.
- Es gibt zwei Arten von Systemadministratoren: diejenigen, die keine Sicherungen erstellen, und diejenigen, die dies bereits tun.
- Tatsächlich gibt es drei Arten: Es gibt auch solche, die überprüfen, ob Sicherungen wiederhergestellt werden können.

- Unbekannt
Es ist auch sinnvoll zu verstehen, dass das Sichern von Daten von Programmen durchgeführt wird, sodass es dieselben Nachteile wie ein anderes Programm hat. Entfernen (nicht ausschließen!) Die Abhängigkeit vom menschlichen Faktor sowie Merkmale - die einzeln nicht stark beeinflussen, aber zusammen einen spürbaren Effekt erzielen können - wenden den sogenannten an Regel 3-2-1. Es gibt viele Möglichkeiten, es zu entschlüsseln, aber ich bevorzuge die folgende Interpretation: Sie müssen 3 Sätze derselben Daten speichern, 2 Sätze müssen in verschiedenen Formaten gespeichert werden und 1 Satz muss in einem geografisch entfernten Speicher gespeichert werden.

Das Speicherformat sollte wie folgt verstanden werden:

  • Wenn eine Abhängigkeit von der physischen Speichermethode besteht, ändern wir die physische Methode.
  • Wenn eine Abhängigkeit von der logischen Speichermethode besteht, ändern wir die logische Methode.

Um die maximale Wirkung von Regel 3-2-1 zu erzielen, wird empfohlen, das Speicherformat auf beide Arten zu ändern.

Unter dem Gesichtspunkt der Bereitschaft des Backups für den beabsichtigten Zweck - Wiederherstellung der Funktionsfähigkeit - gibt es "heiße" und "kalte" Backups. Heiß von Kalt unterscheiden sich nur in einem Punkt: Sie sind sofort einsatzbereit, während Kalt für die Wiederherstellung einige zusätzliche Maßnahmen erfordert: Entschlüsselung, Extraktion aus dem Archiv usw.

Verwechseln Sie heiße und kalte Kopien nicht mit Online- und Offline-Kopien, die eine physische Isolierung der Daten implizieren und tatsächlich ein weiteres Zeichen für die Klassifizierung von Sicherungsmethoden sind. Eine Offline-Kopie, die nicht direkt mit dem System verbunden ist, auf dem sie wiederhergestellt werden muss, kann entweder heiß oder kalt sein (in Bezug auf die Wiederherstellungsbereitschaft). Eine Online-Kopie ist möglicherweise direkt dort verfügbar, wo sie wiederhergestellt werden muss. Meistens ist sie heiß, aber es gibt auch kalte.

Vergessen Sie außerdem nicht, dass das Erstellen von Sicherungen normalerweise nicht mit dem Erstellen einer einzelnen Sicherung endet und es möglicherweise eine ganze Reihe von Kopien gibt. Daher ist es notwendig, zwischen vollständigen Sicherungen zu unterscheiden, d.h. diejenigen, die unabhängig von anderen Sicherungen wiederhergestellt werden können, sowie differenzielle (inkrementelle, differenzielle, dekrementelle usw.) Kopien - solche, die nicht selbst wiederhergestellt werden können und die vorläufige Wiederherstellung einer oder mehrerer anderer Sicherungen erfordern.

Differenzielle inkrementelle Sicherungen - ein Versuch, Speicherplatz für die Speicherung von Sicherungen zu sparen. Daher werden nur geänderte Daten aus der vorherigen Sicherung in die Sicherung geschrieben.

Differenzdekrementale werden für denselben Zweck erstellt, jedoch auf etwas andere Weise: Es wird eine vollständige Sicherung durchgeführt, aber nur der Unterschied zwischen der neuen und der vorherigen Kopie wird tatsächlich gespeichert.

Unabhängig davon lohnt es sich, den Sicherungsprozess über dem Speicher zu berücksichtigen, der das Fehlen von doppeltem Speicher unterstützt. Wenn Sie also vollständige Sicherungen darüber schreiben, wird in Wirklichkeit nur der Unterschied zwischen den Sicherungen aufgezeichnet. Der Vorgang des Wiederherstellens von Sicherungen ähnelt jedoch dem Wiederherstellen von einer vollständigen Kopie und ist vollständig transparent.

Quis custodiet ipsos custodes?

(Wer wird die Wächter selbst bewachen? - lat.)


Es ist sehr unangenehm, wenn keine Backups vorhanden sind, aber es ist viel schlimmer, wenn das Backup erstellt zu werden scheint. Während der Wiederherstellung stellt sich jedoch heraus, dass es nicht wiederhergestellt werden kann, weil:

  • Die Integrität der Quelldaten wurde verletzt.
  • Der Sicherungsspeicher ist beschädigt.
  • Die Wiederherstellung funktioniert sehr langsam. Sie können keine Daten verwenden, die teilweise wiederhergestellt wurden.


Ein ordnungsgemäß erstellter Sicherungsprozess muss solche Kommentare berücksichtigen, insbesondere die ersten beiden.

Die Integrität der Quelldaten kann auf verschiedene Weise gewährleistet werden. Die am häufigsten verwendeten sind: a) Erstellen von Dateisystem-Snapshots auf Blockebene, b) Einfrieren des Status des Dateisystems, c) eines speziellen Blockgeräts mit Versionsspeicher, d) sequentielles Aufzeichnen von Dateien oder Blöcken. Prüfsummen werden auch verwendet, um die Datenüberprüfung während der Wiederherstellung sicherzustellen.

Schäden am Speicher können auch anhand von Prüfsummen festgestellt werden. Eine zusätzliche Methode ist die Verwendung spezieller Geräte oder Dateisysteme, bei denen es unmöglich ist, bereits aufgezeichnete Daten zu ändern, Sie jedoch neue hinzufügen können.

Um die Wiederherstellung zu beschleunigen, wird die Datenwiederherstellung bei mehreren Wiederherstellungsprozessen verwendet - vorausgesetzt, es liegt kein „Engpass“ in Form eines langsamen Netzwerks oder eines langsamen Festplattensystems vor. Um die Situation mit teilweise wiederhergestellten Daten zu umgehen, ist es möglich, den Sicherungsprozess in relativ kleine Unteraufgaben zu unterteilen, von denen jede separat ausgeführt wird. Somit wird es möglich, die Leistung mit Vorhersage der Wiederherstellungszeit konsistent wiederherzustellen. Dieses Problem liegt meistens in der Organisationsebene (SLA), daher werden wir nicht näher darauf eingehen.

Weiß viel über Gewürze, nicht derjenige, der sie zu jedem Gericht hinzufügt, sondern derjenige, der niemals etwas Überflüssiges hinzufügt.

- B. Sinyavsky


Die Praxis in Bezug auf die von Systemadministratoren verwendete Software kann variieren, aber die allgemeinen Prinzipien sind auf die eine oder andere Weise immer noch dieselben, insbesondere:

  • Fertige Lösungen werden dringend empfohlen.
  • Programme sollten vorhersehbar funktionieren, d.h. Es sollten keine undokumentierten Funktionen oder Engpässe vorhanden sein.
  • Das Einrichten jedes Programms sollte so einfach sein, dass Sie nicht jedes Mal das Handbuch oder den Spickzettel lesen müssen.
  • Die Lösung sollte nach Möglichkeit universell sein. Server in ihren Hardwarespezifikationen können sehr, sehr unterschiedlich sein.


Die folgenden gängigen Programme stehen zum Entfernen von Sicherungen von Blockgeräten zur Verfügung:

  • dd, Veteranen der Systemadministration vertraut, gelten auch hier ähnliche Programme (zum Beispiel das gleiche dd_rescue).
  • In einige Dateisysteme integrierte Dienstprogramme (Dienstprogramme), die einen Speicherauszug des Dateisystems erstellen.
  • Allesfressende Versorgungsunternehmen; z.B. Partclone.
  • Eigene, oft proprietäre Entscheidungen; z.B. NortonGhost und später.


Bei Dateisystemen wird die Sicherungsaufgabe teilweise mithilfe von Methoden gelöst, die zum Blockieren von Geräten anwendbar sind. Das Problem kann jedoch effizienter gelöst werden, indem beispielsweise Folgendes verwendet wird:

  • Rsync, ein universelles Programm und Protokoll zur Synchronisierung des Status von Dateisystemen.
  • Integrierte Archivierungswerkzeuge (ZFS).
  • Archivierungswerkzeuge von Drittanbietern; Der beliebteste Vertreter ist Teer. Es gibt andere, die beispielsweise Teer durch einen Fokus auf moderne Systeme ersetzen.

Unabhängig davon ist die Datenkonsistenzsoftware beim Erstellen von Sicherungen zu erwähnen. Die am häufigsten verwendeten Optionen sind:

  • Mounten des Dateisystems im schreibgeschützten Modus (ReadOnly) oder Einfrieren des Dateisystems (Freeze) - die Methode ist begrenzt.
  • Erstellen von Snapshots des Status eines Dateisystems oder Blockgeräts (LVM, ZFS).
  • Die Verwendung von Tools von Drittanbietern zum Organisieren von Casts, auch in Fällen, in denen die vorherigen Absätze aus irgendeinem Grund nicht bereitgestellt werden können (Programme wie Hotcopy).
  • Die Copy-on-Change-Technik (CopyOnWrite) ist jedoch am häufigsten an die verwendete FS (BTRFS, ZFS) gebunden.


Für einen kleinen Server müssen Sie daher ein Sicherungsschema bereitstellen, das die folgenden Anforderungen erfüllt:

  • Einfach zu bedienen - beim Arbeiten sind keine besonderen zusätzlichen Schritte erforderlich, minimale Schritte zum Erstellen und Wiederherstellen von Kopien.
  • Universal - funktioniert sowohl auf großen als auch auf kleinen Servern; Dies ist wichtig, wenn Sie die Anzahl der Server erhöhen oder skalieren.
  • Es wird vom Paketmanager oder in einem oder zwei Befehlen vom Typ "Herunterladen und Entpacken" installiert.
  • Stabil - Verwendet ein Standard- oder seit langem etabliertes Speicherformat.
  • Schnell in der Arbeit.

Bewerber von denen, die die Anforderungen mehr oder weniger erfüllen:

  • rdiff-backup
  • rsnapshot
  • rülpsen
  • duplicati
  • Duplizität
  • deja dup
  • dar
  • zbackup
  • unruhig
  • Borgbackup

Prokrustes Bett

Eine virtuelle Maschine (basierend auf XenServer) mit den folgenden Eigenschaften wird als Prüfstand verwendet:

  • 4 Kerne 2,5 GHz,
  • 16 GB RAM
  • 50 GB Hybridspeicher (Speicher mit Caching auf SSD bei 20% der Größe der virtuellen Festplatte) als separate virtuelle Festplatte ohne Partitionierung,
  • 200 Mbit / s Internetkanal.

Fast derselbe Computer wird als Backup-Zielserver verwendet, nur mit einer 500-GB-Festplatte.

Betriebssystem - Centos 7 x64: Die Aufschlüsselung ist Standard, eine zusätzliche Partition wird als Datenquelle verwendet.

Nehmen wir eine WordPress-Site als Quelldaten mit 40 GB Mediendateien und einer MySQL-Datenbank. Da sich die Eigenschaften virtueller Server stark unterscheiden und die Reproduzierbarkeit verbessert wird, gibt es solche

Server-Testergebnisse mit sysbench.
sysbench --threads = 4 --time = 30 --cpu-max-prime = 20.000 CPU-Lauf
sysbench 1.1.0-18a9f86 (mit gebündeltem LuaJIT 2.1.0-beta3)
Führen Sie den Test mit den folgenden Optionen aus:
Anzahl der Threads: 4
Initialisierung des Zufallszahlengenerators aus der aktuellen Zeit

Primzahllimit: 20.000

Worker-Threads initialisieren ...

Threads gestartet!

CPU-Geschwindigkeit:
Ereignisse pro Sekunde: 836,69

Durchsatz:
Ereignisse / e (eps): 836.6908
verstrichene Zeit: 30.0039s
Gesamtzahl der Veranstaltungen: 25104

Latenz (ms):
min: 2,38
Durchschnitt: 4,78
max: 22,39
95. Perzentil: 10,46
Summe: 119923,64

Themen Fairness:
Ereignisse (Durchschnitt / Standard): 6276.0000 / 13.91
Ausführungszeit (avg / stddev): 29.9809 / 0.01

sysbench --threads = 4 --time = 30 --memory-block-size = 1K --memory-scope = global --memory-total-size = 100G --memory-oper = Lesespeicherlauf
sysbench 1.1.0-18a9f86 (mit gebündeltem LuaJIT 2.1.0-beta3)
Führen Sie den Test mit den folgenden Optionen aus:
Anzahl der Threads: 4
Initialisierung des Zufallszahlengenerators aus der aktuellen Zeit

Ausführen des Speichergeschwindigkeitstests mit den folgenden Optionen:
Blockgröße: 1 KB
Gesamtgröße: 102400MiB
Bedienung: lesen
Geltungsbereich: global

Worker-Threads initialisieren ...

Threads gestartet!

Gesamtbetrieb: 50900446 (1696677,10 pro Sekunde)

49707,47 MiB übertragen (1656,91 MiB / Sek.)

Durchsatz:
Ereignisse / e (eps): 1696677.1017
verstrichene Zeit: 30.0001s
Gesamtzahl der Veranstaltungen: 50900446

Latenz (ms):
min: 0,00
Durchschnitt: 0,00
max: 24.01
95. Perzentil: 0,00
Summe: 39106,74

Themen Fairness:
Ereignisse (avg / stddev): 12725111.5000 / 137775.15
Ausführungszeit (avg / stddev): 9.7767 / 0.10

sysbench --threads = 4 --time = 30 --memory-block-size = 1K --memory-scope = global --memory-total-size = 100G --memory-oper = Schreibspeicherlauf
sysbench 1.1.0-18a9f86 (mit gebündeltem LuaJIT 2.1.0-beta3)
Führen Sie den Test mit den folgenden Optionen aus:
Anzahl der Threads: 4
Initialisierung des Zufallszahlengenerators aus der aktuellen Zeit

Ausführen des Speichergeschwindigkeitstests mit den folgenden Optionen:
Blockgröße: 1 KB
Gesamtgröße: 102400MiB
Operation: schreiben
Geltungsbereich: global

Worker-Threads initialisieren ...

Threads gestartet!

Gesamtbetrieb: 35910413 (1197008,62 pro Sekunde)

35068,76 MiB übertragen (1168,95 MiB / s)

Durchsatz:
Ereignisse / e (eps): 1197008.6179
verstrichene Zeit: 30.0001s
Gesamtzahl der Veranstaltungen: 35910413

Latenz (ms):
min: 0,00
Durchschnitt: 0,00
max: 16,90
95. Perzentil: 0,00
Summe: 43604,83

Themen Fairness:
Ereignisse (Durchschnitt / Standard): 8977603.2500 / 233905.84
Ausführungszeit (avg / stddev): 10.9012 / 0.41

sysbench --threads = 4 --file-test-mode = rndrw --time = 60 --file-block-size = 4K --file-total-size = 1G fileio run
sysbench 1.1.0-18a9f86 (mit gebündeltem LuaJIT 2.1.0-beta3)
Führen Sie den Test mit den folgenden Optionen aus:
Anzahl der Threads: 4
Initialisierung des Zufallszahlengenerators aus der aktuellen Zeit

Zusätzliche Datei offene Flags: (keine)
128 Dateien zu je 8 MB
1 GB Gesamtdateigröße
Blockgröße 4KiB
Anzahl der E / A-Anforderungen: 0
Lese- / Schreibverhältnis für kombinierten zufälligen E / A-Test: 1,50
Periodische FSYNC aktiviert, wobei alle 100 Anforderungen fsync () aufgerufen wird.
Aufruf von fsync () am Ende des Tests, Aktiviert.
Verwenden des synchronen E / A-Modus
Zufälliger R / W-Test
Worker-Threads initialisieren ...

Threads gestartet!

Durchsatz:
Lesen Sie: IOPS = 3868,21 15,11 MiB / s (15,84 MB / s)
Schreiben: IOPS = 2578,83 10,07 MiB / s (10,56 MB / s)
fsync: IOPS = 8226,98

Latenz (ms):
min: 0,00
Durchschnitt: 0,27
max: 18.01
95. Perzentil: 1,08
Summe: 238469.45

Diese Notiz beginnt groß



Autoren : Finnix

Source: https://habr.com/ru/post/de449282/


All Articles