Moodle: Kann maximal 4096MB Speicher zuweisen

Hallo System- und Moodle-Admin’s,
es gelingt mir nicht Moodle (Ubuntu18.04, Apache2, MariaDB, php7.3) mehr als 4096MB RAM „maximize memory usage“ zuzuweisen.
Habe versucht den Speicher händisch durch einen Eintrag in der config.php zu erhöhen.
Ergebnis:
Bis exakt 4096MB wird er übernommen, ab 4097MB wird es als „ungültiger Wert“ ausgegeben.
In Moodle/Administration/Performance ist der höchste Wert auch 4096MB, obwohl laut der info.php von Moodle ein deutlich höherer Wert angegeben ist.

Wie ist das bei euch, könnt ihr mehr Speicher vergeben?
Jemand eine Idee an was es liegen könnte?

Habe bisher nichts gefunden was mich weiter bringt.

Danke!
VG Andre

Hallo Andre, ich bin zwar kein Moodle Admin, aber die PHP Instanz sollte ein memorylimit von 4GB haufenweise ausreichen. (Haste mal mit htop geschaut was die php Instanz überhaupt braucht?)
Ich kenne es zwar nur von Nextcloud, aber php-fpm sollte dir entsprechend mehr prformance bieten als nur den memoryliomit hochzusetzen

Hallo Andre,

das ist das Systemlimit in der php.ini.
Die sollte etwa hier liegen: /etc/php/php?/apache/php.ini

Such da drin mal nach 4096

LG

Holger

Hallo Holger,
die „Stellschraube“ war zu finden in /moodle_install_dir/admin/settings/server.php. Dort ist eine Begrenzung auf 4096MB eingetragen. Erhöht - und funktioniert.

Hallo Bellm,
danke für den Hinweis, was meinst Du mit „php-fpm sollte … mehr Performance bieten als memeorylimit hochsetzen“?
Bin mit php nicht sonderlich bewandert.
Danke!
Andre

Hallo Andre,

das ist hier ganz gut erklärt:

Beste Grüße

Jörg

Hallo Andre,
falls du auf die Shell zugreifen kannst, prüfe am besten mal mit htop nach, wieviel Arbeitsspeicher deine php Prozesse wirklich brauchen. (zum Beispiel mit htop.) Solltest du das memory_limit zu hoch setzen, kann ein fehlerhaftes bzw abgeschmiertes Skript zu viel Arbeitsspeicher dauerhaft belegen, und den anderen Prozessen steht noch weniger zur Verfügung. Sprich dann wird früher oder später, bevor der RAM volläuft, wird auf die Festplatte ausgelagert und die Performance mit Ladezeiten etc. geht richtig in den Keller. Daher gibt es das Limit, und es sollte einen gesunden Wert annehmen. Mehr als 4GB finde ich persönlich sehr viel, zwischen 512MB und 1 GB sollte bei weitem ausreichend sein. (Laut Doku werden 128 MB empfohlen https://docs.moodle.org/38/en/PHP) Wichtiger ist daher, dass möglichst viele Kindprozesse laufen dürfen, daher muss an den PHP-FPM Einstellungen bisschen gearbeitet werden. Hier solltest du schauen, wieviel gleichzeitige Nutzer hast du auf dem System, wieviel RAM steht zur Verfügung, wie ist die durchschnittliche und die von dir eingestellte maximale Speicherbelegung der php Prozesse, wie lange dürfen diese rechnen bevor Sie beendet werden, etc… Mit all diesem Berücksichtigungen kannst du deutlich an der Performance Schraube drehen. (Ich vermute es ging dir urspünglich um das Thema Optimierung von Moodle)

Und hier auch nochmal schön erklärt: https://blog.bitnami.com/2014/06/performance-enhacements-for-apache-and.html

Hallo Bellm,was eine Info-Flut :wink:
Exakt, es geht um Moodle-Optimierung.
Server: I7, 32GB, mehr brauche ich nicht wirklich.
Wir setzen gerne das Moodle-Plugin Sharing Card ein und da gibt es bei großen Kursen/Kursräume immer wieder „Hänger“ wie „504 Gateway timeout“ und Moodle steht. Ein php-fpm restart hilft dann zwar, aber das ist keine Lösung.
Versuche mit höherem Timeout und viel Speicher brachten Teilerfolge, aber keine praktizierende Lösung auf dem Test-Moodle.
Irgend wo sitzt der Flaschenhals und ich finde ihn noch nicht.
Naja, 128MB, selbst 512MB - das macht NULL-Spass ich schwör :wink:
Die Info ist noch aus den Moodle-Anfängen, keine Ahnung warum dieser Beitrag immer wieder mit übernommen wird :wink:
Vielen Dank für deine Antwort, damit kann ich etwas anfangen und werde mich näher damit beschäftigen.
VG Andre

Sever mal auf jeden Fall mit htop beobachten. Was sagen den die Logs dazu? Gateway Timeout kann viele Ursachen haben…