Programmieren - alles kontrollieren 4.937 Themen, 20.662 Beiträge

PHP Speicherproblem

bechri / 11 Antworten / Flachansicht Nickles

Hallo!
Seit einigen Tagen habe ich das Problem, dass bei der Ausführung meines recht komplexen PHP-Scripts innerhalb von einigen Stunden der gesamte Arbeitsspeicher gefüllt wird. Das Problem ist neu, ich weiß allerdings nicht, woher es kommt, da ich keine nennenswerte Änderungen am Script vorgenommen habe.

Das kuriose hierbei ist: In der Prozessliste wird PHP konstant mit 2,3% Speicherauslastung aufgelistet! Es wird auch kein Prozess aufgelistet, der mehr verbrauchen würde, als PHP...

Ich bin ratlos, da ich zu diesem Problem bisher keine Lösung finden konnte.

Wenn ihr weitere Infos benötigt, bitte einfach fragen!
OS: Ubuntu Server 11.04
PHP: die aktuelle PHP5

Ich verwende keinerlei Objekte, Klassen und Datenbanken sondern nur Funktionen, die 1- und 2 dimensionale Arrays übergeben, berechnen und in Dateien abspeichern.

Wenn ihr mir helfen könntet, den Fehler zu lokalisieren oder grundsätzlich den Verursacher zu finden, wäre ich euch sehr dankbar. Was mich verwundert ist eben, dass laut der Prozessliste PHP nur 23 MB verbraucht, aber dennoch der freie Gesamtspeicher stetig abnimmt.


//Das Problem habe ich auf allen Rechnern mit gleicher Konfiguration (Ubuntu + PHP5).

///Nach dem Beenden des Scripts erhöht sich der freie Speicher nur um 20-30 MB, die PHP ja auch laut Prozessliste offiziell verbraucht.

MfG Chris
bei Antwort benachrichtigen
bechri Nachtrag zu: „die Prozessliste lass ich per top anzeigen, dort steht ja auch, welcher Prozess...“
Optionen

Update: Ich meine den Fehler nun durch teilweises Auskommentieren und Testen lokalisiert zu haben und bräuchte nun Hilfe bei der Behebung.

Wie gesagt werden sekündlich Ergebnisse in Dateien eingetragen. Dazu nutze ich folgende Funktion:

function adden($datei, $text){
$handler = fOpen($datei , "a");
fWrite($handler , $text);
fClose($handler);
}

Dabei füllen sich laut "vmstat" cache & buffer und der freie Arbeitsspeicher geht kontinuierlich zurück.
Wie gesagt bleibt aber laut "top" die Speicherauslastung durch php dauerhaft bei nur 2,3%

Wenn ich keine Dateien schreiben lasse, bleiben auch der freie Gesamtspeicher und der Cache auf einem gleichbleibenden Niveau, so wie es sein sollte.

Woran könnte das liegen?

MfG Chris
bei Antwort benachrichtigen