Hallo,
wir haben gelegentlich enorme Transaktionslasten auf unserem Speicher. Wir konnten keinen Zeitplan oder ein Zeitmuster für dieses Ereignis finden, aber es tritt mindestens einmal täglich auf. Auch die Dauer variiert von 10 Minuten bis zu mehreren Stunden.
Während dieser Lastspitzen verhält sich unsere gesamte Installation leicht seltsam; beispielsweise werden gelesene Themen nicht als gelesen erkannt und erscheinen weiterhin unter “Neu” und/oder “Ungelesen”.
Es scheint, als würde Discourse enorme Mengen an Dateien verschieben. Insbesondere READ-Operationen nehmen zu. Wir haben bereits geprüft, ob auch der externe Datenverkehr steigt, was jedoch nicht der Fall ist. Nur der Datenverkehr zwischen Discourse und dem Speicher ist betroffen.
Dieses Verhalten haben wir erstmals nach dem Upgrade von Discourse 2.4.0.beta9 auf 2.4.0.beta10 festgestellt, sind uns aber nicht sicher, ob es davor schon einmal aufgetreten ist. Wir nutzen derzeit Version 2.5.0.beta4.
Unsere Discourse-Installation läuft in einer Azure-Umgebung mit einem Premium-Speicher, der über SMBv3 angebunden ist und normalerweise einwandfrei funktioniert.
Kann jemand erklären, was hier vor sich geht? Zunächst haben wir den Sidekiq-Job MigrateUploadScheme verdächtigt, aber wenn dieser Job für diese Transaktionen verantwortlich wäre, müssten wir diese hohen Lasten viel häufiger beobachten. Zudem haben wir keinen anderen Job gefunden, der dafür verantwortlich sein könnte.
Aufgrund von “Burst IOPS” ist dieser Peak bei ca. 800.000 Transaktionen/30 Min. zu sehen. Sobald diese Gutschriften aufgebraucht sind, wird die Geschwindigkeit auf ca. 250.000 Transaktionen/30 Min. gedrosselt. Bitte ignorieren Sie diesen Peak also, da es sich lediglich um einen begrenzten/gutgeschriebenen Bonus des Azure-Speichertiers handelt.
Normalerweise haben wir 5.000 bis 40.000 Transaktionen pro 30 Minuten.
An diesem Punkt wissen wir nicht, wo wir ansetzen sollen, und jede Idee oder jeder Hinweis wird geschätzt.
Mit freundlichen Grüßen
Sascha

