PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Unlimitierter RAM für php funktioniert nicht



amazor
12.03.15, 20:15
Huhu,

ich möchte php auf meinem Testrechner erlauben, alles verfügbaren RAM zu nutzen, der da ist. Also habe ich versucht, in der php.ini das memory_limit auf -1 gesetzt und im php-Script selbst auch oben ini_set('memory_limit', '-1'); eingetragen.

Allerdings bricht das Script ab, auch wenn der RAM nicht mal zur Hälfte voll ist :(


PHP Fatal error: Out of memory (allocated -1142685696) (tried to allocate 20 bytes) in script.php on line 26

Habe ich vllt. etwas vergessen, oder nicht richtig konfiguriert? :S

ThorstenHirsch
12.03.15, 20:41
Welche Architektur? 64bit?
Wieviel RAM, wieviel swap, wann bricht PHP ab?
Ist PHP auch in 64bit installiert?
Sind andere limits gesetzt? (ulimt, rlimit, cgroup)

marce
12.03.15, 20:56
... und dann wäre da noch die Frage, was das Betriebssystem denn zu der Thematik "freier Speicher" sagt.

corresponder
12.03.15, 22:28
phpinfo.php zeigt dir die einstellungen, die greifen....

gruss

c.

amazor
13.03.15, 15:28
Hallo,

Danke erstmal für die Antworten! :)


Welche Architektur? 64bit?
Linux debian 3.2.0-4-686-pae #1 SMP Debian 3.2.65-1+deb7u2 i686 GNU/Linux
32Bit mit 16GB RAM (ja, das geht)


Wieviel RAM, wieviel swap, wann bricht PHP ab?

Der Screenshot im Anhang zeigt htop, kurz nachdem das Script abgebrochen ist.


Ist PHP auch in 64bit installiert?
Sind andere limits gesetzt? (ulimt, rlimit, cgroup)
php ist standardmäßig installiert, außer memory_limit habe ich auch nichts weiter geändert.
Wüsste also nicht, dass da noch etwas ist.


Man könnte anhand des Screenshots auf die Idee kommen, dass das OS aufgrund seiner 32Bittigkeit doch nur 4GB RAM nutzen kann. Allerdings kann ich die 16GB ohne Probleme nutzen (PAE sei Dank ;) )(s. zweiter Anhang).
Oder hat php da noch extra eine Beschränkung?

Das memory_limit wurde auch in der phpinfo()-Information übernommen.


... und dann wäre da noch die Frage, was das Betriebssystem denn zu der Thematik "freier Speicher" sagt.
Wenn du die Festplatte meinst, da ist noch genug frei :D

Danke euch! :)

marce
13.03.15, 18:04
Das OS kann die den Mehr-Speicher nutzen, aber nicht die laufenden Anwendungen - die sind pro Prozess auf 4GB limitiert.

amazor
13.03.15, 22:13
Hm, das erklärt das Problem, Danke!
Kann man das irgendwie ändern (ich vermute mal nicht)?

marce
14.03.15, 10:11
ein 64-Bit-Os verwenden.

amazor
15.03.15, 17:05
Hm. Na gut.

Kann ich das ohne Neuisntallation migrieren?
Habe gelesen, dass man von Squeeze auf Wheezy im Zuge des Upgrades migrieren konnte, geht das auch mit Wheezy-->Jessi?

cane
17.03.15, 21:18
Warum überhaupt Testing?

Du willst kein Upgrade machen sondern die Architektur wechseln, installier neu und kopiere deine Daten rüber.

mfg
cane

amazor
18.03.15, 15:08
Naja, das wollte ich gerade verhindern; ich wollte mein OS behalten. Mal sehen, wird mir wohl nichts anderes übrig bleiben.

Danke.

marce
18.03.15, 15:33
Grundlegend kannst Du natürlich schon ein Update machen - im Endeffekt tauschst Du so oder so das komplette OS aus und ggf. ist beim Update die eine oder andere Klippe zu umschiffem was Abhängigkeiten und ggf. Kollisionen angeht. Daher ist Architekturwechsel eigentlich am idealsten über eine Neuinstallation zu erledigen.

Für die Risiko-Variante - es gibt HowTos im Netz, die fangen aber alle mit dem Punkt "Datensicherung, falls es schief geht" an. Aus Erfahrung heraus: Zurecht.

amazor
18.03.15, 17:56
OK, ihr habt mich ja überzeugt :D
Dann halt am Wochenende wieder neu installieren, trotzdem danke ;)