Memory Limit – Die Werte
-
Hey zusammen,
ich frage mich gerade folgendes zum WordPress Memory Limit. Meine Werte sind:
WP_MEMORY_LIMIT = 40MB (nicht extra in der wp-confiq.php definiert) WP_MAX_MEMORY_LIMIT = 256MB (entspricht dem allg. zulässigen PHP Memory)
Mein installiertes Memory Usage Plugin zeigt aber an:
Memory Usage = 43 of 256 MB
Jetzt meine Frage: Wie kann die aktuelle Nutzung 43MB betragen, wenn das WP_MEMORY_LIMIT bei 40MB liegt?
-
Beim so genannten Shared Webhosting (dt. „gemeinsam genutztes Hosting“) werden die Resourcen eines Rechners auf möglichst viele Kunden verteilt. Je weniger Hauptspeicher Kunden in Anspruch nehmen, um so mehr Kunden kann der Server bewirtschaften. Andererseits brauchen Webanwendungen je nach Komplexität der Aufgaben mehr Kapazitäten, um dynamisch eine Website zu erstellen. Der Webhoster wird in der Ausgangskonfiguration den Arbeitsspeicher niedrig ansetzen. Da viele Kunden wenig Ahnnung haben und nicht wissen, ob oder wann sie den Wert ändern müssen, können so trotz vollmundigen Werbeversprechen (512 MB Arbeitsspeicher verfügbar!) mehr Kunden auf dem Server platziert werden.
Die Kunden haben verschiedenen Möglichkeiten, den angebotenen Arbeitsspeicher ausnutzen zu können. Manche Webhoster bieten eine Einstellung im Kundenmenü, andere erlauben individuelle Einstellungen über eine eigene
php.ini
und hat WordPress nutzt das PHP-eigene@ini_set( 'memory_limit', WP_MEMORY_LIMIT );
mit dem Wert, der der Konstante WP_MEMORY_LIMIT zugewiesen wurde (40MB).Für Multisite ist der Standard übrigens 60MB. Der Wert WP_MAX_MEMORY_LIMIT gilt als Obergrenze für aufwendigere, administrative Aufgaben im Backend.
Ob diese beiden Vorgaben aber überhaupt berücksichtigt werden, hängt von der Serverkonfiguration des Webhoster ab.
Im Moment scheint es so zu sein, dass dir 256MB zugewiesen wurden, davon werden 43MB genutzt – du kannst also parallel noch andere Anwendungen wie phpMyAdmin und PIWIK nutzen. Der Wert 40MB wird im Grunde ignoriert.
Danke für deine ausführliche Antwort. 🙂
Demnach hat WP_MEMORY_LIMIT keinerlei Bedeutung, wenn es über die Server-Konfiguration anders gehandhabt wird? Selbst wenn ich es in der „wp-confiq.php“ definiere und auf 64MB hochsetze und der aktuelle Verbrauch bei 80MB liegt, kommt keinerlei Fehlermeldung wie „allowed memory size is exhausted“.
Diese Fehlermeldung würde demnach erst auftreten wenn die 256MB überschritten werden.
Danke sehr.
WP_MEMORY_LIMIT ist bei single site standardmäßig bei 40MB:
Also released with Version 2.5, the WP_MEMORY_LIMIT option allows you to specify the maximum amount of memory that can be consumed by PHP. This setting may be necessary in the event you receive a message such as „Allowed memory size of xxxxxx bytes exhausted“.
This setting increases PHP Memory only for WordPress, not other applications. By default, WordPress will attempt to increase memory allocated to PHP to 40MB (code is at the beginning of /wp-includes/default-constants.php) for single site and 64MB for multisite, so the setting in wp-config.php should reflect something higher than 40MB or 64MB depending on your setup.
Im Adminbereich wird mehr benötigt (für Thumbnail-Erstellung z.B.), also wird dort WP_MAX_MEMORY_LIMIT versucht, was in deinem Fall 256 MB sind. Sofern der Hoster es zulässt.
Administration tasks require much memory than usual operation. When in the administration area, the memory can be increased or decreased from the WP_MEMORY_LIMIT by defining WP_MAX_MEMORY_LIMIT.
Quelle: https://codex.wordpress.org/Editing_wp-config.php#Increasing_memory_allocated_to_PHP
Da dein Memory Usage Plugin wohl im Backend anzeigt stehen korrekterweise 256 MB zur Verfügung und davon sind 43 MB verbraucht.
Gruß, Torsten
Nachtrag: Bego war schneller 🙂
- Diese Antwort wurde geändert vor 7 Jahren, 2 Monaten von Torsten Landsiedel. Grund: Nachtrag hinzugefügt
- Diese Antwort wurde geändert vor 7 Jahren, 2 Monaten von Torsten Landsiedel. Grund: Quelle hinzugefügt
Demnach hat WP_MEMORY_LIMIT keinerlei Bedeutung, wenn es über die Server-Konfiguration anders gehandhabt wird? Selbst wenn ich es in der „wp-confiq.php“ definiere und auf 64MB hochsetze und der aktuelle Verbrauch bei 80MB liegt, kommt keinerlei Fehlermeldung wie „allowed memory size is exhausted“.
Doch die Fehlermeldung käme, wenn der Speicher im Frontend 80 MB verbraucht wird, denn da steht dann nur 64MB zur Verfügung.
Durch
WP_MAX_MEMORY_LIMIT = 256MB
käme die Fehlermeldung aber nicht im Backend.Wenn der Hoster ohnehin nur 48 MB zur Verfügung stellt und den Wert im Hintergrund kappt, dann können Plugins falsche Werte anzeigen und der Speicher nach 48 MB eben trotzdem voll sein, ergo White Screen of Death, etc.
Gruß, Torsten
Doch die Fehlermeldung käme, wenn der Speicher im Frontend 80 MB verbraucht wird, denn da steht dann nur 64MB zur Verfügung.
… was aber voraussetzt, dass die Funktion
ini_set()
überhaupt Vorgaben überschreiben darf. 🤓Ich kenne nur wenige Fälle, in dem
define( 'WP_MEMORY_LIMIT', '256M' );
geholfen hätte (während eine Änderung im Kundenmenü oder einerphp.ini
natürlich durchaus sinnvoll sein kann).Das macht unter diesen ggf. Einschränkungen durchaus Sinn 🙂
- Das Thema „Memory Limit – Die Werte“ ist für neue Antworten geschlossen.