Wenn Sie Skripte haben, die Sie wissen große Mengen an Speicher benötigen, ist es vollkommen sicher und benötigt, um das Limit hoch zu setzen. Probleme können auftreten, wenn das Limit für das System in Bezug auf die verfügbare Speichermenge und andere laufende Anwendungen auf "Hoch" gesetzt ist.
Denken Sie auch daran, dass ein fehlerhaftes Skript, das in einer Endlosschleife enden könnte, oft ziemlich schnell zum Stillstand kommt, wenn das Speicherlimit 64 MB oder etwas ähnliches beträgt. Wenn das Speicherlimit in diesem Szenario bei 4 GB liegt, würde ein System länger in voller Länge in einer Endlosschleife laufen, was dazu führen könnte, dass Ihr gesamtes System nicht mehr reagiert.
Aber ich hatte große Datenverarbeitung Anwendungen mit Speicherlimits von etwa 2-4 GB ohne Probleme auf Systemen mit 4-8 GB Speicher. Beachten Sie, dass diese Anwendungen, wie von anderen Benutzern angegeben, EINE Instanz waren. Wenn Sie Anwendungen haben, die mehrere Instanzen Ihrer Skripte ausführen (wie bei den meisten Web-Anwendungen), werden Sie große Probleme haben, wenn Sie in jedem Fall viel Speicher verwenden. Sie werden nicht mehr genügend Arbeitsspeicher haben und weitere Clients können Ihre Anwendung erst verwenden, wenn der Arbeitsspeicher freigegeben wurde.
Aber erhöhen Sie nicht nur das Speicherlimit, um Probleme zu verbergen. Überprüfen Sie, warum Ihre Anwendung so viel Arbeitsspeicher benötigt, und prüfen Sie, ob Sie dies zuerst beheben können.
In einem Wort, NEIN. Ihr Speicherlimit sollte so niedrig wie möglich innerhalb der Grenzen dessen festgelegt werden, was Sie benötigen. Das Speicherlimit wird auf jedes einzelne Skript angewendet, das gleichzeitig ausgeführt wird, nicht global. Wenn Sie die Einstellung niedrig einstellen, wird sichergestellt, dass bei Fehlern, die z. eine Endlosschleife, wird das Skript früh getötet, anstatt außer Kontrolle zu geraten und den gesamten Server zum Stillstand zu bringen. – DaveRandom
Wie viel Speicher benötigen Sie für 100 gleichzeitige Anfragen? 200GB? – JvdBerg
@JvdBerg Das Speicherlimit definiert nicht, wie viel Speicher _actually_ verwendet wird. Es ist nur die Grenze, die ein einzelner Prozess verwenden darf. – KingCrunch