Wie lange dauert es, ein Volume zu überprüfen?

9

Wir betreiben eine Website, die derzeit 3-5 Millionen Seitenaufrufe bereitstellt. Unsere Site ist eine Filesharing-Site und enthält 250.000 Dateien und einige tausend symbolische Links.

Die Festplatte ist eine 1500 GB SATA-Festplatte.

Mit haben hdparmwir erfahren, dass unsere Festplattengeschwindigkeit auf 15-20 MB / s reduziert wurde , was 80 MB / s entspricht.

Jetzt möchten wir also ausführen fsck, um das Festplattenproblem zu beheben.

  1. Wird fsckdieses Problem lösen?
  2. Wie viel Zeit wird es fsckdauern (nur wir wollen die Ausfallzeit berechnen, die wir haben werden)?
Khizar Ansari
quelle
Welches Dateisystem verwenden Sie? Ist dies ein RAID-Array oder eine einfache SATA-Festplatte?
Kyle Smith
einfache SATA-Festplatte und Dateisystem ist ext3
khizar ansari
11
Warum führen Sie einen Produktionswebserver auf einer einzelnen Festplatte aus? Server mit einzelnen Festplatten sind keine Server - sie ticken Zeitbomben.
Evan Anderson
3
Es hört sich so an, als würde die Festplatte sterben. Migrieren Sie Ihre Daten sofort (auf ein echtes RAID-Array mit einem batteriegepufferten Hardware-Controller).
Joel E Salas

Antworten:

7

Die Geschwindigkeitsverschlechterung ist zu erwarten, wenn die Anzahl der Dateien, auf die gleichzeitig zugegriffen wird, zunimmt. Auf Festplattenlaufwerke wird nicht gerne parallel zugegriffen: Jedes Mal, wenn der Lese- / Schreibkopf die Zylinder wechseln muss, verlieren Sie mehrere Millisekunden. Selbst wenn sich zwei Dateien auf demselben Zylinder oder sogar auf derselben Spur befinden, müssen Sie möglicherweise noch eine Drehung abwarten, um von einer zur anderen zu wechseln. Wenn Sie die Laufwerksleistung in Megabit pro Sekunde messen, müssen Sie damit rechnen, dass diese mit zunehmendem Parallelzugriff exponentiell abnimmt.

fsck hilft dabei nicht: Es repariert nur Schäden an der Verzeichnisstruktur, es führt keine Optimierung durch.

Die ideale Lösung wäre die Umstellung auf Festkörperspeicher, da dies keine der physikalischen Einschränkungen von sich drehenden Platten aufweist. Aber das ist wahrscheinlich unerschwinglich.

Das nächstbeste wäre die Verwendung eines für den parallelen Zugriff optimierten RAID. Beachten Sie, dass RAIDs für viele verschiedene Leistungsprofile konfiguriert werden können. Daher müssen Sie einige Zeit in Anspruch nehmen, um die Einstellungen der jeweiligen RAID-Hardware und -Treiber zu erlernen.

Möglicherweise können Sie das Problem mithilfe von aggressivem Dateisystem-Caching reduzieren. Wenn Ihr System über ausreichend RAM verfügt, sollte Linux dies bereits recht gut tun. Führen Sie ein Programm aus, um topzu sehen, wie viel freier Arbeitsspeicher vorhanden ist. Wenn die am häufigsten verwendeten Dateien jedoch nicht in den Arbeitsspeicher passen (oder in einen Arbeitsspeicher, den Sie wahrscheinlich erwerben), hilft dies nicht wirklich.

Die Problemumgehung eines armen Mannes besteht darin, Ihre Dateien auf mehrere verschiedene physische Festplatten aufzuteilen (nicht nur auf verschiedene Partitionen auf derselben Festplatte). Das ist keine langfristig skalierbare Lösung und würde Sie am Ende mehr kosten als ein anständiges RAID. Es kann jedoch eine schnelle Lösung sein, wenn Laufwerke herumliegen.

Stellen Sie bei allen Lösungen mit Festplattenlaufwerken sicher, dass diese eine schnelle Rotationsgeschwindigkeit und eine geringe Suchlatenz aufweisen.

Ich habe hier einen Artikel mit allgemeinen Hintergrundinformationen zur Festplattenleistung geschrieben:

UNIX-Tipps - Dateisysteme

Seth Noble
quelle
Ich sehe nicht, dass sein hdparmBenchmark viel mit "parallelem Zugriff" zu tun hat. Für mich klingt es eher so, als hätte er eine fehlerhafte Festplatte. Früher war es schneller und jetzt nicht mehr. Wahrscheinlich, weil es Sektoren verlagert.
Evan Anderson
Dies ist sicherlich eine Möglichkeit, obwohl ich denke, dass eine Verlagerung in dieser Größenordnung einige E / A-Fehler verursachen würde. Basierend auf der sehr langsamen Basislinie von 80 Megabit pro Sekunde ging ich davon aus, dass der Test auf einem aktiven System ausgeführt wurde. Also ... gibt es E / A-Fehler im Systemprotokoll, wie wurden die hdparmTests durchgeführt und wurden die Ergebnisse in "Megabit" oder "Megabyte" pro Sekunde angegeben?
Seth Noble
3

Ich würde erwarten, dass der fsck 5 Stunden dauert.

Ich würde stattdessen eine Migration zu reiserfs in Betracht ziehen (das heißt: Testen, Testen und Testen).

marcoc
quelle
2
  1. Nein (fsck kann beschädigte Metadaten des Dateisystems reparieren, weder eine defekte Festplatte noch ein Defragmentierungswerkzeug).
  2. Hängt vom Dateisystem ab. Mit ext3, unglaublich lang, würde ich mehrere Stunden reservieren. Moderne Dateisysteme wie ext4 oder xfs können leicht um eine Größenordnung schneller sein.
janneb
quelle
1

hdparm liest sequentiell. Ihre Dateiserver-Festplatte sollte viel suchen, wie die anderen sagten.

Wenn Sie HD-Fehler erhalten, sollten diese irgendwo in Ihrem / var / log / angezeigt werden.

Warum versuchen Sie nicht "smartctl -t short / dev / sda" und dann "smartctl -t long / dev / sda"? ... Bei den meisten neuen Festplatten können Sie diesen Befehl auch bei Verwendung der Festplatte ausgeben . Smart liefert Ihnen einige Ergebnisse. Sie können den Zustand Ihrer Festplatte mit "smartctl --all / dev / sda" ablesen.

Wenn Sie einen HDParm an eine Festplatte senden, die mit gleichzeitigem Zugriff bereitgestellt wird, könnte dies die Antwort sein, warum Ihre Ergebnisse viel geringer sind als zuvor.

Ich sollte Ihre Daten so schnell wie möglich in ein RAID-Setup verschieben.

Jose Tavares
quelle