Zum Inhalt springen
EuroVPSEuroVPS

Hören Sie nicht beim ersten Fehler auf.

Der erste Fehler, den Sie finden, ist fast nie der einzige. Unsere Methode, einen Zusammenbruch mit mehreren Ursachen zu entwirren: Ursachen nach Beitrag ordnen statt nach Lautstärke, Primärquellen auf Kernel-Ebene lesen statt Dashboards, einen Fehler nach dem anderen abschälen, und jedes zurückkehrende Symptom als brandneue Diagnose behandeln.

Von EuroVPS EngineeringDer Maschinenraum

7 Min. Lesezeit
In diesem Artikel 6 Abschnitte
Kurz gesagt
  • Bei einem Zusammenbruch mit mehreren Fehlern tragen mehrere Fehler gleichzeitig dasselbe Symptom. Den lautesten zu beheben fühlt sich wie Fortschritt an und ändert fast nichts.
  • Die Methode: Ursachen nach Beitrag ordnen, nicht nach Lautstärke. In dieser Reihenfolge beheben. Nach jeder einzelnen Änderung an der ausgefallenen Grenze neu messen.
  • Wenn eine Korrektur hält und das Symptom zurückkehrt, wenden Sie die Korrektur nicht erneut an. Diagnostizieren Sie von vorn. Gleiches Symptom heißt nicht gleiche Ursache.
  • Auch die Wiederherstellung hat eine Reihenfolge: zuerst den unmittelbaren Auslöser stoppen, vor jedem destruktiven Schritt den Zustand beweisen, jeden Schritt umkehrbar halten.

Ihre Site bricht zusammen. Jemand findet einen plausiblen Fehler, behebt ihn und erklärt den Sieg. Die Site bleibt unten, oder sie kommt zurück und bricht beim nächsten Auslöser erneut zusammen. Die Korrektur hat beim ersten Fehler aufgehört, und an den schlimmsten Tagen stecken dahinter vier weitere. Das hier ist die Disziplin, die nicht aufhört.

Regel eins: nach Beitrag ordnen, nicht nach Lautstärke

Das lauteste Symptom ist ein schrecklicher Sortierschlüssel. Beispiel: Der Kernel schreit nach Disk-I/O-Contention, aber der Motor der Kaskade ist ein hängender Resolver, der jeden Worker festhält, und der größte fortlaufende Treiber ist ein Sturm von Session-Dateien, den keine erste Theorie enthielt. Ordnen Sie die Ursachen danach, wie viel des Zusammenbruchs ihnen gehört, und beheben Sie sie in dieser Reihenfolge.

SORTIERT NACH LAUTSTÄRKE
  • Disk-I/O-Contention (das laute Symptom)
  • Der Job, den alle verdächtigen
  • Der Resolver, den niemand verdächtigt
SORTIERT NACH BEITRAG
  • Der Resolver: der Motor
  • Der Session-Sturm: der größte Treiber
  • Der Job: real, nicht der Treiber

Regel zwei: Primärquellen lesen, nicht Dashboards

Dashboards fassen zusammen. Kernel sagen aus. Wenn die Ebenen sich widersprechen, gewinnt der Kernel. Der kanonische erste Durchgang auf jeder festgefahrenen Linux-Maschine ist jedes Mal dieselbe kurze Liste, und dann eine Faustregel, die es wert ist, eingerahmt zu werden: Reserve vorhanden und Site unten bedeutet einen Fehler in der Anwendung oder einer Abhängigkeit, nicht in der Kapazität. Eine Festplatte bei Bruchteilen eines Prozents Auslastung, während Worker hängen, ist Lock-Contention, nicht I/O, egal was der Graph sagt.

THE FIRST PASS, ON ANY WEDGED BOX
# the canonical first pass on a wedged Linux box
dmesg -T | tail -50          # OOM kills, hung tasks, hardware complaints
journalctl --list-boots      # did this box reboot when you think it did?
last -x reboot | head        # corroborate the reboot story
cat /etc/resolv.conf         # who does this box think answers DNS?
iostat -x 5 3                # is the disk actually busy, or just blamed?
cat /proc/<pid>/stack        # where exactly is that worker stuck?
strace -p <pid> -c -f        # a few seconds: is it even making syscalls?

Zehn Minuten Primärquellen schlagen einen Nachmittag Dashboard-Archäologie.

Regel drei: einen Fehler nach dem anderen abschälen

Eine Änderung, dann an der Grenze neu messen, die ausgefallen ist, bevor Sie die nächste Ebene anfassen. Die Disziplin fühlt sich langsam an und ist das Schnellste, was es gibt, denn zwei gleichzeitige Änderungen, die sich gegenseitig beeinflussen, sagen Ihnen über keine von beiden etwas. Die Verifikation erfolgt pro Ebene: Resolver reparieren, Namensauflösung auf der Maschine beweisen; Sturm beseitigen, Worker-Zustände beweisen; dann nach oben gehen.

Regel vier: dem «Wir haben es behoben»-Moment misstrauen

Wenn eine Korrektur hält und das Symptom Stunden später zurückkehrt, ist der Reflex, die Korrektur noch härter erneut anzuwenden. Messen Sie stattdessen neu. Die Frage, die zu stellen ist, ist die einfache: Woher wissen Sie, dass es I/O macht? Ein paar Sekunden strace, die null Systemaufrufe einfangen, bedeuten, dass die Worker im Kernel auf einem Lock blockiert sind und gar kein I/O machen, und so wird der eigentliche Treiber gefunden, statt übertüncht zu werden. Wenn ein Symptom nach einer echten Korrektur zurückkehrt, ist es ein anderer Fehler in denselben Kleidern.

Regeln fünf bis sieben: auch die Wiederherstellung hat eine Reihenfolge

01

Stoppen Sie den unmittelbaren Auslöser, bevor Sie die Ursache anfassen.

Wenn ein Monitoring-Poll das ist, was ein Cluster zum Absturz bringt, stoppen Sie zuerst den Poll, stellen Sie die Position wieder her, entfernen Sie die Ursache, und wenden Sie erst dann die geplante Änderung auf ein gesundes Cluster an.

02

Beweisen Sie den Zustand vor jedem destruktiven Schritt.

Ein als beschädigt markiertes Volume bekommt eine Integritätsprüfung im Nur-Lese-Modus, bevor jemand ein Flag löscht oder zum Restore greift. Die Wiederherstellung selbst hat Fallen. Kennen Sie sie, bevor Sie den Schritt machen.

03

Halten Sie jeden Schritt umkehrbar.

Backup vor dem Anfassen. Beiseite verschieben, nicht löschen. Reload statt Restart, unter Last. Der Panikschritt, der sich nicht rückgängig machen lässt, ist nie der richtige Schritt.

Regel acht: das Loch für alle schließen

Jedes neue Fehlermuster wird zu einer benannten Vorabprüfung in der Referenzkonfiguration. Die Methode ist nicht nur die Art, wie ein schlechter Morgen entwirrt wird. Sie ist die Art, wie derselbe Morgen daran gehindert wird, sich irgendwo anders zu wiederholen.

Klare Antworten

Warum kommt mein Serverproblem nach jeder Korrektur zurück?+

Weil der Vorfall mehr als eine Ursache hat und jede Korrektur eine davon behoben hat. Wenn eine Korrektur hält und das Symptom zurückkehrt, diagnostizieren Sie von Grund auf neu. Gleiches Symptom heißt nicht gleiche Ursache.

Wie finde ich die eigentliche Ursache hoher Server-Load?+

Primärquellen zuerst: dmesg für OOM und hängende Tasks, iostat, um zu prüfen, ob die Festplatte wirklich beschäftigt ist, ein Prozess-Stack oder ein paar Sekunden Tracing, um zu sehen, wo die Worker hängen. Ordnen Sie, was Sie finden, nach dem Beitrag zum Zusammenbruch, nicht danach, wie laut es aussieht.

Was bedeutet es, wenn die Load hoch ist, aber die Festplatte untätig?+

Meist Lock-Contention oder eine hängende Abhängigkeit, nicht Kapazität. Vorhandene Reserve bei einer Site, die unten ist, deutet auf einen Fehler in der Anwendung oder einer Abhängigkeit, und zusätzliche Ressourcen ändern nichts.

Soll ich einen abstürzenden Dienst neu starten, um ihn zu reparieren?+

Nicht, solange der Auslöser noch aktiv ist. Wenn etwas ihn wiederholt beendet, wiederholt ein Neustart den Absturz. Stoppen Sie zuerst den unmittelbaren Auslöser, entfernen Sie dann die Ursache, und starten Sie dann in einen gesunden Zustand neu.

Was ist eine gute Methode für ein Post-mortem nach einem Vorfall?+

Listen Sie jeden beitragenden Fehler auf, nicht nur den ersten. Ordnen Sie nach Beitrag. Halten Sie das Erkennungszeichen fest, das jeden entlarvt hat. Und machen Sie aus jedem Loch eine ständige Vorabprüfung, damit es sich nicht erneut ausrichten kann. Wenn ein Post-mortem genau eine Ursache für einen Totalausfall nennt, lesen Sie es zweimal.

Zweite Meinung zu einem hartnäckigen Vorfall?

Wenn er immer wieder zurückkommt, hat er mehr Ursachen, als der letzte Bericht gefunden hat. Bringen Sie uns die Symptomhistorie, wir bringen die Methode.

Mit einem Ingenieur sprechen

Sie haben das Ende erreicht.

Setzen Sie das Gelesene um

Was betreiben Sie?

Erzählen Sie uns von Workload, Traffic und Anforderungen an die Wiederherstellung. Beginnen Sie mit dem Server-Konfigurator oder besprechen Sie die Details mit einem Ingenieur.

Geschrieben von den Ingenieuren, die die beschriebene Infrastruktur bauen und betreiben.
Mit einem Ingenieur sprechen
XIn

Noch 7 Min.