WebUI - Einschreibeseite hat lange Ladezeit

Liebes Team, speziell @Arnaud,
wenn ich die Einschreibeseite der WebUI aufrufe (unter Klassenzimmer > Einschreiben, Seitentitel Enrolle), dann benötigt sie ca. 60 Sekunden Ladezeit, das war „früher“ nicht so, aber ich kann leider den Zeitpunkt nicht mit einem Update oder einer anderen Änderung am System in Verbindung bringen. Ich habe nach der Ursache gesucht und von den drei Abschnitten Schulklassen, Drucker, Projekte lädt nur der Zugriff auf die Projekte so lange, also der API Zugriff auf

https://serverFQDN/api/lmn/groupmembership/projects.

Auf dem Server geht einer der Sambaprozesse auf Vollast >90% CPU:

samba: task[ldap] pre-forked worker <

Wenn ich die Projekte mit einem externen LDAP Browser abrufe geht die Abfrage innerhalb von 1 Sekunde durch.

Wenn ich den Loglevel hochsetze, sehe ich in den Samba logs nur, dass der global-binduser beim Laden der Seite sich sehr oft authentifiziert, aber es gibt keine Fehlermeldungen, die Seite lädt ja auch einwandfrei, nur eben viel länger…

Hat jemand Ideen zur Ursache, bzw. Problembehebung?

Der Server ist auf:
-Base…: 7.2.16-0
-Linbo…: 4.2.14-0
-WebUI…: 7.2.81
-Sophomorix…: 3.92.1-3

Wir haben 151 Projekte und 52 Schulklassen, aber keine Drucker über CUPS.

Vielen Dank, Adrian

Hallo Adrian,

Ich glaube ich weiss, woran es liegen könnte: die Webui sucht rekursiv nach allen Mitglieder von allen Projekten, und bei Schulen die es intensiv nutzen, kann es lang dauern.

Wenn du dich traust, kannst du probieren die Datei /usr/lib/linuxmuster-webui/plugins/lmn_groupmembership/views.py Zeile 44 zu kommentieren:

project.get_all_members()

in

#project.get_all_members()

und dann die Webui neu starten, und schauen, ob es daran liegt.
Ich werde von meiner Seite auch anschauen.

Gruß

Arnaud

Lieber Arnaud,

vielen Dank für die schnelle Antwort. Ich habe die Zeile 44 auskommentiert und die Ladezeit ist unter 1 Sekunde. Du hattest also die richtige Idee. Vielleicht gibt es ja eine Optimierungsmöglichkeit in der Methode get_all_members im ldapconnector. In Python bin ich aber leider nicht so fit, dass ich sehe, was man da machen kann. Wir können erstmal auch mit der langen Ladezeit leben, da die Projekte ja nur selten verändert werden.

Besten Dank, Adrian

Hallo Adrian,

Es tut mir leid, ich habe es nicht geschafft es noch vor die Pfingsferien anzuschauen, ich muss es für nach den Ferien verschieben.

Gruß

Arnaud

Lieber Arnaud, kein Eile, schöne Ferien!