Bei den LFB-BBBs kommen heute Nacht noch drei Server dazu, 25 sind bestellt, sollen morgen kommen.
Und das war die Mail von den Belwueadmins heute, da haben ein paar Leute sehr viel Arbeit investiert und wollten das auch mal loswerden.
Sehr schoene Mail.
Status der Moodle-Plattform
Aktueller Stand:
Sehr geehrte Damen und Herren,
am Montag (11.01.2021) kam es zu Problemen mit einigen Moodle-Instanzen. Die
Probleme traten unter der bisher größten Last auf, die die BelWü Moodle-
Plattform bisher gesehen hatte. In dem Zeitfenster in dem es Probleme gab,
hatten wir versucht das Problem zunächst schnell durch Verwendung von Teilen
unserer Hardware-Reserven zu erschlagen, um so genug Luft zu haben um die
konkreten Probleme und Engpässe zu finden und zu analysieren.
Da die Probleme bei den meisten Instanzen nicht oder nur in einem bestimmten
Zeitraum auftraten, dauerte diese Analyse einige Zeit. Wir könnten
verschiedene Punkte identifizieren, die nur bei sehr hohen Lastsituationen
sichtbar werden und im Voraus nicht trivial gefunden oder simuliert werden
können.
Wir möchten die aufgetretenen Probleme und unsere technischen Änderungen hier
kurz darstellen.
Das größte Problem lag im Verhalten der Datenbanken. Hier gibt es viele
Konfigurationsparameter an denen justiert werden kann und muss. Einer davon
beeinflusst wie viele Daten im Arbeitsspeicher verarbeitet werden und wann
Daten auf Festplatte geschrieben werden. Die Konfiguration sah vor, dass
möglichst viel im Arbeitsspeicher bleibt, denn Arbeitsspeicher ist schnell
und Festplattenzugriffe können theoretisch früher zum Flaschenhals werden.
Unter der hohen Last waren die seltenen aber großen Festplattenzugriffe
allerdings ein Problem, da die Datenbank hier kurz zum Stocken kommt. PHP-
/Webserverprozesse warten dann auf die Datenbank, und es stauen sich offene
Anfragen an, die danach parallel auf die Datenbank einprasseln. Damit
schaukelt sich das Problem ab einer gewissen Lastgrenze auf und die Instanzen
blockieren.
Die Parameter wurde am 11.01.21 gegen 12:00 Uhr an der virtuellen Maschine
mit den meisten Problemen angepasst. Die virtuelle Maschine und die
daraufliegenden Moodles waren danach sofort mit der gewohnten Performance
erreichbar. Die Parameter wurden im Laufe des gestrigen Tages weiter getestet
und als mögliche Problemlösung angesehen. Am Abend und in der Nacht wurden
die Parameter auf allen Datenbankservern konfiguriert. Heute (Dienstag,
12.01.2021) konnten diese Probleme nicht mehr festgestellt werden.
Ein weiteres Problem ist Datenbank-Locking durch die Moodle-Software.
Bestimmte Teile von Moodle bzw. Moodle-Plugins stellen große Anfragen an die
Datenbanken. Für die Anfragen wird die Datenbank in bestimmten Fällen gelockt
(für andere Anfragen komplett gesperrt), damit müssen andere Prozesse kurz
warten, bis die Datenbank wieder schreibbar ist. Das erzeugt ebenfalls
wartende Prozesse und hohe Last im System.
An einigen Stellen wurden diese Datenbankzugriffe im Moodle-Code verbessert,
sodass sie schneller sind und eine bessere Parallelität ermöglichen. Wir
haben hierfür auch Hilfe von den Betreibern der Moodle-Plattform in Berlin
bekommen. Moodle ist freie Software. Der Quellcode ist offen zugänglich und
kann damit auch gelesen und verbessert werden. Die konkreten Verbesserungen
werden von den Betreibern in Berlin in den offiziellen Moodle-Quellcode
eingepflegt.
Außerdem wurden in den Datenbanken zusätzliche Indizes angelegt. Indizes sind
wie ein Stichwortverzeichnis in einem Buch und sorgen dafür, dass
Datenbankzugriffe auf Kosten von etwas Speicherbedarf schneller beantwortet
werden können. Der größte Flaschenhals bei den Indizes waren die Tabellen des
Moodle-Kalenders, die Datenbankzugriffe erzeugten, die bis zu 40 Sekunden
andauerten.
Um bei höherer Last ein Flaschenhals im Webserver ausschließen zu können
wurde hier auch an Parametern optimiert.
Um die virtuellen Maschinen mit den meisten Zugriffen weiter skalieren zu
können wurden diese Heute um 5:00 Uhr auf größere Server umgezogen. Dadurch
ist es möglich im laufenden Betrieb den virtuellen Maschinen mehr CPU-Kerne
oder mehr Arbeitsspeicher zuzuweisen und auf eine höhere Last zu reagieren.
Die Moodle-Plattform hielt dem Ansturm heute (Dienstag) ohne Probleme stand.
Kleinere Lastspitzen wurden innerhalb kurzer Zeit behoben. Ein kurzer DDoS-
Angriff führte zur Mittagszeit zum Ausfall einer virtuellen Maschine für 5
Minuten.
Um die Last noch besser verteilen zu können kann es in den nächsten Tagen
zwischen 22:00 und 06:00 Uhr zu kurzen Ausfällen kommen.
Die meistgestellten Moodle Fragen haben wir unter
Moodle - BelWü Hilfe zusammengefasst. Die FAQ-
Seite wird bei Bedarf erweitert.
Aktuell betreiben wir auf jeder virtuellen Maschine 50 Moodle-Instanzen.
Insgesamt sind derzeit 112 virtuelle Maschinen im Betrieb.
Mit freundlichen Grüßen
Ihre Webmaster
Status: open
Typ: Ausfall
Beginn: 2021-01-11 09:00
Ende: 2021-01-11 15:00
Beschreibung:
Die Moodle-Plattform hat heute morgen um Punkt 8 Uhr alle Rekorde gebrochen.
Die meisten Instanzen halten dem Ansturm stand.
Nur ein kleiner Teil der Zugriffe sind im Moment langsam (länger als 5
Sekunden), oder werfen eine Fehlermeldung. Diese konzentrieren sich auf
einzelne Server. Einer der Server bekommt DDoS-Angriffe ab und ist deshalb
überlastet. Bei weiteren Servern gibt es aktuell Softwareprobleme, die die
Performance der Server einschränken. Wir arbeiten im Moment daran, die
Probleme einzugrenzen und zu lösen.
Korrektur: die Zugriffe, die derzeit langsam sind, oder Fehler werfen liegen
nicht immer bei 1%, sondern schwanken etwas, je nach Last und Situation.
Den Verlauf dieses Vorgangs können Sie unter folgender URL erreichen:
https://www.belwue.de/trouble-tickets/ticket/208_2021-01-11_09-01-48.xml
Eine Übersicht der Störungsmeldungen finden Sie unter
https://www.belwue.de/trouble-tickets/overview.xml