Fatal error: Out of memory - Apache hängt sich auf - Bug?

Irgendwelche Probleme mit XAMPP für Windows? Dann ist hier genau der richtige Ort um nachzufragen.

Re: Fatal error: Out of memory - Apache hängt sich auf - Bug?

Postby actionman007 » 06. April 2009 09:32

Es sieht für mich also nach wie vor ganz stark nach einem Bug aus. Wenn das Limit ja pro Script gilt und die Scripte gerade mal 2,5 MB verbrauchen, kann es doch nicht sein, dass nach einiger Zeit, alle Scripte die gleiche Fehlermeldung liefern und der Webserver nicht mehr richtig arbeitet.
actionman007
 
Posts: 20
Joined: 06. April 2009 07:41

Re: Fatal error: Out of memory - Apache hängt sich auf - Bug?

Postby Wiedmann » 06. April 2009 09:38

also wir haben uns nun einmal mit memory_get_peak_usage() den peak des skripts ausgeben lassen. der liegt bei 2,5 mb?

Die ursprüngliche Fehlermeldung deutet allerdings auch nicht darauf hin, dass das memory_limit in der php.ini zu niedrig wäre. Dein Apache Prozess wird wohl einfach nicht genug Speicher vom System zugewiesen bekommen.
Dafür ist dann der Admin des Systemes zuständig. (Wobei man sich hier eh auch wieder fragen kann, wieso Du den Apache benutzt, und nicht den Webserver der zum System gehört...)
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: Fatal error: Out of memory - Apache hängt sich auf - Bug?

Postby illneaddix » 06. April 2009 09:46

aber man kann doch dem apache keinen speicher zuweisen, oder? man kann beim apache doch nur die anzahl der kind prozesse festlegen. und unser arbeitsspeicher ist ja auch noch lange nicht am limit, wie eigangs berichtet.
illneaddix
 
Posts: 12
Joined: 16. November 2006 16:02

Re: Fatal error: Out of memory - Apache hängt sich auf - Bug?

Postby Nobbie » 06. April 2009 10:40

illneaddix wrote:also wir haben uns nun einmal mit memory_get_peak_usage() den peak des skripts ausgeben lassen. der liegt bei 2,5 mb? da sollten dann doch 32 mb mehr als genug sein!


Wie habt ihr memory_get_peak_usage() aufgerufen - mit oder ohne Parameter? Und habt ihr das an den richtigen Stellen aufgerufen? Unmittelbar in der Zeile bevor das Script abstürzt? Und stürzt das Script dann auch ab?

Was steht denn in der besagten Zeile drin, wo der Speicher ausgeht? Vielleicht ist da eine dynamisch generierte Select-Anweisung, die (sporadisch) überläuft. Oder oder oder - der memory_get_peak_usage() nützt doch überhaupt nichts, wenn das Script fehlerfrei durchläuft.

Was ich aber immer noch verstehe - es tut doch nun wirkich nicht weh, den Wert von 32MB auf 128MB zu erhöhen - wieso probiert Ihr das nicht wenigstens einmal? Wenn die Fehlermeldung bleibt, kann man immer noch an anderen Stellen suchen, aber zunächst ist die angezeigte Fehlermeldung die stinknormale Fehlermeldung von PHP, wenn der Speicher alle ist.
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: Fatal error: Out of memory - Apache hängt sich auf - Bug?

Postby illneaddix » 06. April 2009 10:57

Wie habt ihr memory_get_peak_usage() aufgerufen - mit oder ohne Parameter? Und habt ihr das an den richtigen Stellen aufgerufen? Unmittelbar in der Zeile bevor das Script abstürzt? Und stürzt das Script dann auch ab?


mit und ohne parameter.
mit parameter = true ändert sich der wert auf 3,1 mb, ohne parameter liegt er bei 2,5.
laut php.net gibt es mir die spitze des skripts aus. daher m.e. uninteressant, wann die funktion aufgerufen wird.

PHP.net:
"Returns the peak of memory, in bytes, that's been allocated to your PHP script."

Aber zur Info : Ich rufe die Funktion als letztes im Skript auf.

Was steht denn in der besagten Zeile drin, wo der Speicher ausgeht? Vielleicht ist da eine dynamisch generierte Select-Anweisung, die (sporadisch) überläuft. Oder oder oder - der memory_get_peak_usage() nützt doch überhaupt nichts, wenn das Script fehlerfrei durchläuft.


Ich habe mir mal ein Skript angeschaut, da steht nur eine ganz normale Variablenzuweisung drin:

Code: Select all
$endOutput = $begin + 15;


Nichts ungewöhnliches.

Was ich aber immer noch verstehe - es tut doch nun wirkich nicht weh, den Wert von 32MB auf 128MB zu erhöhen - wieso probiert Ihr das nicht wenigstens einmal? Wenn die Fehlermeldung bleibt, kann man immer noch an anderen Stellen suchen, aber zunächst ist die angezeigte Fehlermeldung die stinknormale Fehlermeldung von PHP, wenn der Speicher alle ist.


Was aber nicht sein kann, da das Skript nicht mehr als 3 MB verbraucht. Daher möchten wir gerne der Ursache auf den Grund gehen. Das erhöhen können wir immer noch machen.
illneaddix
 
Posts: 12
Joined: 16. November 2006 16:02

Re: Fatal error: Out of memory - Apache hängt sich auf - Bug?

Postby Nobbie » 06. April 2009 11:33

Dann klinke ich mich an dieser Stelle aus, viel Glück bei der Suche.
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: Fatal error: Out of memory - Apache hängt sich auf - Bug?

Postby Wiedmann » 06. April 2009 11:55

aber man kann doch dem apache keinen speicher zuweisen, oder?

Du kannst durchaus festlegen, wieviel Speicher ein einzelner Prozess haben darf (max. anfordern darf). Also in Windows, nicht in der Apache Config. Und wenn der Apache insgesamt sein Limit aufgebraucht hat, kann es einem PHP Script auch nicht (keinen) mehr Speicher zur Ausführung geben.

Mal mit ganz simplen Zahlen:
- der Apache (oder irgendein einzelner Prozess) darf max 10MB haben (bei 100 installierten gesamt MB's, können also 10 Prozesse garantiert laufen)
- es laufen bereits 3 Scripte mit jeweils 3 MB = der Apache verbraucht also jetzt schon 9 von 10 MB's
- ein 4. Script gleichzeitig das 3 MB benötigt, könnte nicht laufen, da nur noch 1 MB zur Verfügung steht

Das Ganze ist also völlig unabhängig vom memory_limit der php.ini, das in diesem Beispiel z.B. auf 5 MB steht, was ja für die einzelnen PHP Scripte an sich reichen würde.

Ein Bug kann das natürlich trotzdem sein, wenn z.B. der Apache oder eine PHP-Extension nicht benötigten Speicher nciht mehr freigibt, und daher im Laufe der Zeit immer mehr benötigt. Da können wir aber auch nicht helfen.

Du kann nur schauen, ob du in diesem (oder einem anderen Script) einen Übeltäter findest, der viel Speicher braucht. Oder halt den passenden Server zu deinem System verwenden...
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: Fatal error: Out of memory - Apache hängt sich auf - Bug?

Postby illneaddix » 06. April 2009 12:19

Wiedmann wrote:
aber man kann doch dem apache keinen speicher zuweisen, oder?

Du kannst durchaus festlegen, wieviel Speicher ein einzelner Prozess haben darf (max. anfordern darf). Also in Windows, nicht in der Apache Config. Und wenn der Apache insgesamt sein Limit aufgebraucht hat, kann es einem PHP Script auch nicht (keinen) mehr Speicher zur Ausführung geben.

Mal mit ganz simplen Zahlen:
- der Apache (oder irgendein einzelner Prozess) darf max 10MB haben (bei 100 installierten gesamt MB's, können also 10 Prozesse garantiert laufen)
- es laufen bereits 3 Scripte mit jeweils 3 MB = der Apache verbraucht also jetzt schon 9 von 10 MB's
- ein 4. Script gleichzeitig das 3 MB benötigt, könnte nicht laufen, da nur noch 1 MB zur Verfügung steht

Das Ganze ist also völlig unabhängig vom memory_limit der php.ini, das in diesem Beispiel z.B. auf 5 MB steht, was ja für die einzelnen PHP Scripte an sich reichen würde.

Ein Bug kann das natürlich trotzdem sein, wenn z.B. der Apache oder eine PHP-Extension nicht benötigten Speicher nciht mehr freigibt, und daher im Laufe der Zeit immer mehr benötigt. Da können wir aber auch nicht helfen.

Du kann nur schauen, ob du in diesem (oder einem anderen Script) einen Übeltäter findest, der viel Speicher braucht. Oder halt den passenden Server zu deinem System verwenden...


ok, das habe ich verstanden. aber das würde doch eigentlich heißen, dass lediglich der 4. user zu diesem zeitpunkt probleme hätte und die anderen 3 user, oder? denn der speicher sollte ja nach dem aufruf wieder freigegeben werden. theoretisch.
bei uns bleiben die seiten, die mehr speicher verbrauchen dann auch leer, d.h. auch nach mehrmaligem aktualisieren wird nichts angezeigt.
illneaddix
 
Posts: 12
Joined: 16. November 2006 16:02

Re: Fatal error: Out of memory - Apache hängt sich auf - Bug?

Postby Nobbie » 06. April 2009 13:02

Wiedmann wrote:Du kannst durchaus festlegen, wieviel Speicher ein einzelner Prozess haben darf (max. anfordern darf). Also in Windows, nicht in der Apache Config.


Wie und wo soll das gehen? Und insbesondere arbeitet Windows mit virtuellem Speicher, das heißt die Gesamtmenge des zuweisbaren Speichers hängt nicht von der Menge eingebautem Speicher ab, sondern zzgl. von der Größe der Auslagerungsdatei. Bei 32bit Systemen darf ein einzelner Prozess bis zu 2GB Benutzerspeicher haben, und das gilt für jede Instanz.

Wie kann man auf Betriebssystemebene (Registry?) einem bestimmten Prozess eine bestimmte Menge max. Speichernutzung zuordnen?
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: Fatal error: Out of memory - Apache hängt sich auf - Bug?

Postby Wiedmann » 06. April 2009 15:27

illneaddix wrote:denn der speicher sollte ja nach dem aufruf wieder freigegeben werden. theoretisch.

Wiedmann wrote:Ein Bug kann das natürlich trotzdem sein, wenn z.B. der Apache oder eine PHP-Extension nicht benötigten Speicher nicht mehr freigibt, und daher im Laufe der Zeit immer mehr benötigt.



Nobbie wrote:Wie kann man auf Betriebssystemebene (Registry?) einem bestimmten Prozess eine bestimmte Menge max. Speichernutzung zuordnen?

Mit Windows eigenen Mitteln über entsprechende Resource Management Policies.

Bei einem VServer (um den es ja hier wohl geht), gibt es aber auch alle möglichen 3rd-Party Tools dafür (welche dann auch schon die VServer verwalten).
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: Fatal error: Out of memory - Apache hängt sich auf - Bug?

Postby illneaddix » 06. April 2009 15:32

Wiedmann wrote:Bei einem VServer (um den es ja hier wohl geht), gibt es aber auch alle möglichen 3rd-Party Tools dafür (welche dann auch schon die VServer verwalten).


Sorry, es handelt sich um keinen V-Server.
illneaddix
 
Posts: 12
Joined: 16. November 2006 16:02

Re: Fatal error: Out of memory - Apache hängt sich auf - Bug?

Postby Wiedmann » 06. April 2009 15:35

Sorry, es handelt sich um keinen V-Server.

Wieso sorry? Das macht ja keinen Unterschied. Nur das man da dann halt oft 3rd-Party Tools nimmt, anstatt Bordmittel.

Oder vielleicht doch. Wenn du selbst der Admin eines Windows 2003er Servers bist, weist du natürlich auch über eben Resource Policies bescheid,
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: Fatal error: Out of memory - Apache hängt sich auf - Bug?

Postby Nobbie » 06. April 2009 16:28

Wiedmann wrote:
Sorry, es handelt sich um keinen V-Server.

Wenn du selbst der Admin eines Windows 2003er Servers bist, weist du natürlich auch über eben Resource Policies bescheid,


Ne, nur wenn das installiert ist, Und dann kann man immer noch nicht einfach einstellen "Apache - 10MB" - das geht so nicht.

Außerdem geht es hier nicht darum, so etwas zu installieren, sondern festzustellen, ob Apache irgendeiner solchen Restriktion unterliegt - und das ist ganz ganz sicher nicht "einfach so" der Fall.
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: Fatal error: Out of memory - Apache hängt sich auf - Bug?

Postby Wiedmann » 06. April 2009 16:51

Und dann kann man immer noch nicht einfach einstellen "Apache - 10MB" - das geht so nicht.

10 MB natürlich nicht. Aber ich kann gezielt für nur den Apache eine Richtlinie erstellen.
(Wenn man ja oft erstmal eine generische für ~alle Prozesse macht.)

Ne, nur wenn das installiert ist,

Yup. Was aber beim 2003 Standard tatsächlich nicht wirklich geht. (weshalb ich ursprünglich auf den VServer und ein 3rd Party Tool kam).

Irgendwas muss den Apache jedenfalls Limitieren, wenn die Werte des Posters passen:
- 4 GB RAM
- Die beiden Apache Prozesse haben dann i.d.R. zwischen 600 und 750 MB RAM im Zugriff und das System, auf dem unser XAMPP Paket läuft, hat noch über 1,5 GB freien RAM.

Bei den Werten dürfte ja sonst PHP (bzw. Apache) nicht der Speicher ausgehen.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: Fatal error: Out of memory - Apache hängt sich auf - Bug?

Postby Nobbie » 06. April 2009 17:56

Wiedmann wrote:Bei den Werten dürfte ja sonst PHP (bzw. Apache) nicht der Speicher ausgehen.


Das weiß man eben nicht - was machen diese Scripts? Die Meldung ist eigentlich eindeutig und identisch mit der "normalen" Meldung, wenn PHP nicht mehr genügend Speicher hat.

Das Script zu debuggen, wenn es NICHT abstürzt, bringt nichts. Da es offensichtlich nur unregelmäßig passiert (wobei wir hier ja gar nichts über die Anwendung wissen), würde ich in jedem Fall erst einmal die Grenze von 32MB auf einen deutlich höheren Wert setzen. Erst wenn dann die gleichen Scripts wieder auf Dauer abstürzen, würde ich an einen Bug glauben - vorher halte ich das ganze für "möglich". Gerade bei SELECTs mit großen Fundstellen und bei Grafikfunktionen wird oft viel Speicher verbraten.
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

PreviousNext

Return to XAMPP für Windows

Who is online

Users browsing this forum: No registered users and 25 guests