ILIAS unter Last: Grosse Repositories Werner Randelshofer Peter Hofer 16. Mai 2016 Agenda Hochschule Luzern Einsatz von ILIAS Probleme Redesign: Ursachen + Massnahmen + Ergebnisse Nutzen für die ILIAS Community Folie 2, 16. Mai 2016 Hochschule Luzern Die Hochschule Luzern ist eine der acht Fachhochschulen der Schweiz 5 Teilschulen 3600 Studierende in der Ausbildung 1900 Personen in der Weiterbildung Lerngruppen mit bis zu 30 Teilnehmern Folie 3, 16. Mai 2016 Andere 782 Einsatz von ILIAS MediaWiki 253 Lernmodul 520 Test 536 Kategorie 575 Umfrage 831 ILIAS wird hauptsächlich für die Kollaboration in Lerngruppen eingesetzt. HTML 1'650 Gruppe 9'065 Kurs 2'009 Forum 2'149 Weblink 3'113 Folie 4, 16. Mai 2016 Einsatz von ILIAS Andere 21'483 Ordner 90'040 ILIAS wird hauptsächlich für die Kollaboration in Lerngruppen eingesetzt. Mehr als 500'000 Objekte im Magazin Datei 412'958 Folie 5, 16. Mai 2016 Nutzung Herbstsemester 2008 - im Durchschnitt Intranet Internet 500 450 400 350 300 250 200 150 100 50 0 0 Folie 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 Nutzung Herbstsemester 2008 - am 18. September Intranet Internet 500 450 400 350 300 250 200 150 100 50 0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Bis 500 Benutzer online Folie 17 18 19 20 21 22 23 Probleme Allgemein nicht tragbar lange Wartezeiten Anrufe von Dozierenden, das System sei fast eingefroren… Anrufe von Dozierenden, sie hätten Studierende in Ilias einführen wollen, und die Wartezeiten seien peinlich gewesen Enorm viele Wartezeiten grösser als 5 Sekunden Einige Wartezeiten sind über 200 Sekunden Folie 8, 16. Mai 2016 Folie 9, 16. Mai 2016 1:12:00 AM 12:00:00 AM 10:48:00 PM 9:36:00 PM 8:24:00 PM 7:12:00 PM 6:00:00 PM 4:48:00 PM 3:36:00 PM 2:24:00 PM 1:12:00 PM 12:00:00 PM 10:48:00 AM 9:36:00 AM 8:24:00 AM 7:12:00 AM 300 6:00:00 AM 4:48:00 AM 3:36:00 AM 2:24:00 AM 1:12:00 AM 12:00:00 AM Probleme Antwortzeit Apache; 17.4.2009; [s] 250 200 150 100 50 0 0 Folie 10:04:12… 10:11:25… 10:17:06… 10:35:31… 10:38:58… 10:40:06… 10:40:25… 10:40:49… 10:41:17… 10:41:14… 10:41:14… 10:41:43… 10:42:39… 10:42:31… 10:42:20… 10:42:27… 10:42:39… 10:43:39… 10:43:23… 10:45:19… 10:44:29… 10:44:48… 10:45:42… 10:45:39… 10:45:55… 10:46:54… 10:46:58… 10:47:10… 10:47:46… 10:48:02… 10:48:26… 10:48:29… 10:49:43… 10:53:13… 11:07:59… 11:13:54… 11:16:37… 11:21:23… 11:39:50… 11:56:19… Probleme - Ausschnitt zeigt den linear anmutenden Auf- und Abbau von Staus Antwortzeiten Apache; 17.4.2009; [s] 10:00 - 12:00 160 140 120 100 80 60 40 20 10, 16. Mai 2016 Tuning Massnahmen Getroffene Massnahmen ab Herbst 2008: Abschalten News-Funktion Optimierung SQL-Abfragen Entfernen redundanter SQL-Abfragen Unterbinden von Mehrfachklicks → Ergebnis unbefriedigend, teilweiser Redesign von ILIAS notwendig Folie 11, 16. Mai 2016 Ursachen Keine Parallelität bei Schreibzugriffen Lesezugriff Folie 12, 16. Mai 2016 Ursachen Keine Parallelität bei Schreibzugriffen Wartezeiten Folie 13, 16. Mai 2016 Schreibzugriff Lesezugriff Redesign Massnahmen Ersatz von MyISAM durch InnoDB MyISAM: InnoDB: Parallelität mit InnoDB statt MyISAM Folie 14, 16. Mai 2016 Redesign Ursachen Magazin mit Nested Sets + Tabellensperren 2 3 1 4 5 6 7 8 9 10 11 12 13 14 Folie 15, 16. Mai 2016 Redesign Ursachen Magazin mit Nested Sets + Tabellensperren 7 ? 2 1 Folie 3 16, 16. Mai 2016 4 5 6 8 ? 7 8 9 10 11 12 13 14 9 10 13 13 14 14 Redesign Massnahmen Magazin mit Materialized Path + Transaktionen Nested Sets: 1 3 2 4 5 6 7 7 8 8 11 12 13 14 9 10 13 13 Materialized Path: 1 Folie 2 1 17, 16. Mai 2016 3 2 1 5 2 1 7 10 2 1 11 10 1 13 10 1 Parallelität mit Materialized Path + Transaktionen statt Nested Sets + Tabellensperren 14 Redesign Zusammenfassung der Massnahmen Ursache: Keine Parallelität bei Schreibzugriffen Getroffene Massnahmen im Frühling 2009: Ersatz von MyISAM Tabellen durch InnoDB Tabellen Ersatz von Nested Sets durch Materialized Path für das Magazin Ersatz von Tabellensperren durch Transaktionen Folie 18, 16. Mai 2016 Redesign Ergebnisse Genauere Messungen Detailliertere Messwerte: Readevents: benötigte Zeit nach der Verarbeitung der Session bis Ilias alle Daten von der erhalten Datenbank hat. Writeevents: benötigte Zeit nach der Session bis die Daten in der Datenbank abgelegt wurden. Standen ab 14. Mai 2009 zur Verfügung Folie 19, 16. Mai 2016 Folie 20, 16. Mai 2016 1:12:00 AM 12:00:00 AM 10:48:00 PM 9:36:00 PM 8:24:00 PM 7:12:00 PM 6:00:00 PM 4:48:00 PM 3:36:00 PM 2:24:00 PM 1:12:00 PM 12:00:00 PM 10:48:00 AM 9:36:00 AM 8:24:00 AM 7:12:00 AM 6:00:00 AM 4:48:00 AM 3:36:00 AM 2:24:00 AM ! 1:12:00 AM 12:00:00 AM Redesign Ergebnisse Writeevents vor der Optimierung Writeevents: Dauer und Zeitpunkt; 14.5.09; [ms] 70000 60000 50000 40000 30000 20000 10000 0 Redesign Ergebnisse Writeevents nach der Optimierung Prozentuale Anteile Writeevent-Wartezeiten; %, [s] 90% 80% 70% 60% 14.05.2009 50% 19.05.2009 25.05.2009 40% 30% 20% 10% 0% 1 Folie 2 21, 16. Mai 2016 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Redesign Ergebnisse Für die AnwenderInnen fühlbar: Antwortzeiten Apache Prozentuale Antwortzeiten Apache; %, [s] 90% 80% 70% 60% 17.04.2009 50% 14.05.2009 19.05.2009 40% 25.05.2009 30% 20% 10% 0% 1 Folie 2 22, 16. Mai 2016 3 4 5 6 7 8 9 10 11 12 13 14 15 Anwendung ILIAS 3.10.7 Enthält grössten Teil des Performance-Tunings ILIAS 4.0 Enthält Performance-Tuning + zusätzliche Indizes HSLU 3.10.x Branch Enthält Performance-Tuning + zusätzliche Indizes Enthält Performance-Redesign ILIAS 4.1 ? Performance Redesign ? Folie 23, 16. Mai 2016 Danke und herzliche Grüsse aus Luzern Folie 24, 16. Mai 2016