Heute ein neues, umfangreiches, allumfassendes Intranet-System (auf Basis OpenCMS) für mehr als 6.000 Mitarbeiter und diverse Tochtergesellschaften eingeführt.
13:00 Uhr Einführung und auf einen Schlag melden sich 4.000 Mitarbeiter gleichzeitig an – das war es dann, ab jetzt hiess es Warten für die Mitarbeiter.
Monatelange Projektarbeit, Programmierungen, Tests, Performancetests, Infrastrukturmassnahmen ohne Ende und dann das.
Was war schief gelaufen ?
Was hatte ich übersehen ?
Bei jedem Webseitenaufruf werden viele Berechtigungen überprüft, das heisst, es gibt unendlich viele Aufrufe an das angeschlossene Berechtigungssystem.
Das ist soweit für die grossen Datenbank-Systeme kein Problem, allerdings gibt ein Statement, welches zu einem Default-User die Berechtigungen bei jedem Webseitenaufruf liest, d.h. dieses Statement liest immer das Gleiche, und das 1.500.000 Mal in einer 1/2 Stunde.
Für die Datenbank wäre das kein Problem gewesen, wenn das 1.500.000 Mal etwas Unterschiedliches gewesen wäre, aber der Zugriff auf die gleichen 1024 Bytes wurden von Oracle serialisiert abgearbeitet und das hiess dann ‘Warten’.
(Hier stellt sich natürlich auch die Frage, wie kann man so etwas programmieren
)
Nachdem wir das Statement optimiert hatten, einmal lesen, merken und dann die nächsten 1.499.999 Mal aus dem Cache lesen, funktionierte das System.
Eine Frage allerdings bleibt, warum ist das nicht in den Lasttests aufgefallen ?
Wahrscheinlich, weil wir diese Infrastrukturkomponente, das Berechtigungssystem, weil es schon ein etabliertes war, nicht gut genug in die Tests einbezogen hatten.
Lessons learned:
Teste auch bestehende Systeme in deinen Lasttests, selbst wenn sich diese schon seit Jahren als hochperformant erweisen.
Vielleicht bringst Du mit Deinem neuen System das Fass zum Überlaufen.
Ich, auf jeden Fall, bin froh, dass es ‘nur’ ein Intranetsystem ist (auch wenn die 20.000 Anrufe in der Hotline etwas anderes dokumentierten) und nicht ein Space Shuttle, denn wie wir alle schon immer wussten, 200.000 Zeilen Code können optimal laufen, eine einzige Zeile geschludert, und schon ist die ganze Freude vorbei.
Computer machen Spass, aber sie drücken kein Auge zu, auch wenn Du nett bist…
Schlagwörter: lauer, mobinauten, oliver, opencms