I/O Wait-Engpass beheben

Kurzfassung:

  • Das System wurde bei moderater Last durch iowait einige Minuten lang lahmgelegt.
  • Zu diesem Zeitpunkt fand keine signifikante Festplatten-E/A statt.
  • DigitalOcean versichert, dass auf der Hypervisor-Ebene keine ungewöhnlichen Aktivitäten vorlagen.

Ausführliche Version:
Derzeit läuft ein 8-Kern/16-GB-Droplet bei DigitalOcean, das kürzlich von 4/8 für erwarteten kurzfristigen höheren Traffic hochgestuft wurde.

Zum Zeitpunkt des Vorfalls waren db_shared_buffers auf 2 GB und die Unicorn-Worker auf 8 eingestellt. Ich habe beide Werte mittlerweile erhöht.

Während einer ca. zweistündigen Live-Veranstaltung gab es eine intensive Aktivität zu einem einzelnen Thema. Insgesamt waren in diesem Zeitraum etwa 200 Nutzer beteiligt, wobei Analytics durchschnittlich rund 70 gleichzeitige Nutzer anzeigte.

Das System war über eine Stunde stabil. Die Lastmittelwerte lagen bei etwa 4, die CPU-Auslastung bei rund 30 % und der Arbeitsspeicher bei etwa 35 %. Es gab keine signifikante Festplattenaktivität und keine Probleme mit dem Forum.

Plötzlich verdoppelte sich laut Analytics die Anzahl der Nutzer. Ich weiß nicht, ob es sich um echte Nutzer handelte oder um ein Artefakt eines anderen Problems. Wir sind keine große oder bekannte Community. Niemand verlinkt auf uns, und es wäre sehr ungewöhnlich, plötzlich eine große Anzahl neuer Nutzer zu gewinnen.

Gleichzeitig stieg iowait auf sehr hohe Werte mit anhaltenden Warnungen über 50 %. Der 1-Minuten-Lastmittelwert sprang auf 12, der 5-Minuten-Wert überstieg 8. Das gesamte System wurde sehr unresponsive, das Forum lief extrem langsam, und es gab viele temporäre Abmeldungen aufgrund hoher Last. Die CPU-Auslastung überschritt niemals 40 %.

Dies dauerte 3–4 Minuten, danach normalisierte sich alles innerhalb der nächsten 10 Minuten wieder. Laut den Diagrammen von DigitalOcean blieb die Festplatten-E/A die ganze Zeit unter 1 MB/s, überwiegend Schreibvorgänge.

Ist es möglich, dass dies ein Problem mit dem Forum oder der Konfiguration ist? Lügt DigitalOcean, und handelt es sich tatsächlich um ein Hardwareproblem? Falls es das Ersteres ist, gibt es dann Vorschläge, wie man verhindern kann, dass dies erneut passiert (dies war nicht das erste Mal)?

In Kürze steht ein weiteres, größeres, einmaliges Ereignis mit hohem Traffic an, das für die Community sehr wichtig sein wird. Ich habe nicht den Luxus von Versuch und Irrtum, um herauszufinden, was funktioniert. Ich habe nur eine einzige Chance, es richtig (oder falsch) zu machen.

Ich bin mir nicht sicher, ob dies mit Ihrem Problem zusammenhängt, aber kürzlich gab es viele Diskussionen über Live-Events und die Aktivitätsspitzen, die sie verursachen.