Allowed memory size

am 25.10.2007 - 07:24 Uhr in
Hallo zusammen,
ich habe ein Problem beim hochladen kleinster Bilder (Profilbilder max 30kb).
Folgende Fehlermeldung habe ich erhalten:
Fatal error: Allowed memory size of 26214400 bytes exhausted (tried to allocate 2048 bytes) in /home/www/includes/image.inc on line 308
Nach meiner Suche im Forum habe ich folgendes ausprobiert:
http://www.drupalcenter.de/faq/3866
Habe a,b und c auf 64M gesetzt; bei a und b gab´s keine Probleme jedoch auch keine Verbesserung.
Nachdem ich die .htaccess angepasst habe, hatte ich keinen Zugriff mehr auf die Homepage.
Die phpinfo Ausgabe hat mir folgenden Wert geliefert:
memory_limit 25M 25M
Hat noch jemand einen Vorschlag woran es liegen könnte und was ich noch unternehmen kann?
Oder meint Ihr das ich zuerst einmal den Hoster ansprechen sollte und je nach Reaktion
weitere Lösungsmöglichkeiten suchen?!
Danke für Eure Unterstützung!!
Gruß, der Jenzen!!
- Anmelden oder Registrieren um Kommentare zu schreiben
Es liegt am Memory Limit von
am 25.10.2007 - 08:44 Uhr
Es liegt am Memory Limit von PHP und dein Hoster erlaubt die Änderung des Parameters nicht. Wenn du da auf kurzem Dienstweg in Absprache mit deinem Hoster nichts erreichen kannst, hast du bei ihm auch keine Möglichkeit den Zustand zu ändern.
"I invented the term Object-Oriented, and I can tell you I did not have C++ in mind." -Alan Kay
Suchmaschinenoptimierung (SEO) & Drupal
Hallo, mein Hoster hat das
am 26.10.2007 - 20:37 Uhr
Hallo, mein Hoster hat das Limit erhöht und jetzt funktioniert alles einwandfrei. Wie genau kommt es zu den Problemen und womit muss ich in Zukunft noch rechnen? Kommt es nur zu Komplikationen wenn ich noch weitere Module installiere oder wie füllt sich der Memory unwideruflich? Wenn User viele Bilder hochgeladen haben oder kommt es zu Problemen wenn zuviele User online sind?
Würde mich freuen wenn mir jemand zu diesem Thema ein paar erklärende Sätze schreiben würde.
Danke euch schonmal!
Gruß, der Jenzen!!
Das Memory Limit begrenzt
am 27.10.2007 - 09:45 Uhr
Das Memory Limit begrenzt die Menge Hauptspeicher, die dem PHP-Interpreter bei der Ausführung zur Verfügung steht. Dabei läuft vereinfacht gesagt pro Seitenaufruf ein einzelner eigener Interpreter. Die Menge des benötigten Speichers hängt von der Menge an Daten ab, die während der Ausführung des Skript vorgehalten werden. Das hat zum einen mit dem Einsatzzweck der aktiven Module und zum anderen natürlich mit sorgsamem Umgang mit Ressourcen durch den Programmierer zu tun.
Eingeführt wurde der Parameter um schlecht entwickelte Skripte davor zu bewahren, ganze Systeme durch das An-sich-reißen von zu viel Hauptspeicher herunterzuziehen.
Eine Regel welches Modul oder wieviele Module wieviel Speicher benötigen, gibt es dabei nicht.
"I invented the term Object-Oriented, and I can tell you I did not have C++ in mind." -Alan Kay
Suchmaschinenoptimierung (SEO) & Drupal
Danke
am 07.12.2007 - 08:58 Uhr
für die Erklärung! Der Fehler ist jetzt wieder aufgetreten da habe ich das Memory_Limit auf 64 MB hochgesetzt, jetzt scheint es wieder zu funktionieren. Seit dem letzten Problem habe ich vielleicht ein paar Module installiert....
Leider bin ich bei der Erklärung nicht ganz durchgestiegen und habe noch die ein oder andere Frage:
- liegt es quasi "nur" an dem Skript was der User in dem Moment benötigt (z.B. um sein Bild hochzuladen)?
- tritt das Problem "nur" auf wenn sich die Skripte, durch Module oder sonstige Veränderungen, vergrößern?
- wie verhält sich das System in Bezug auf die Userzahlen? Oder gibt es hier keinen direkten Zusammenhang (10User-64MB = kein Problem; 2000User-1GB=kein Problem), was ich damit sagen will... es ist nur ein Problem wenn mehrere User zur gleichen Zeit das selbe tun und es hat nichts mit dem Speicherplatz zu tun?
Danke für die Info!!
Gruß, der Jenzen!!
Ja es liegt "nur" an dem
am 07.12.2007 - 09:21 Uhr
Ja es liegt "nur" an dem Skript. Wobei "das Skript" im Falle von Drupal natürlich recht umfangreich werden kann, weil für jeden Aufruf das Bootstrapping läuft, diverse Includes reingeladen werden und das Skript vergrößern, ggf. Module aktiv werden, etc...
Das Memory Limit gilt pro PHP-Instanz. Der Webserver startet zunächst mehrere Prozesse und wenn eine Anfrage reinkommt, wird diese von einer Webserver-Instanz bearbeitet abgearbeitet, die gerade nüscht zu tun hat. Sind alle ausgelastet, wird eine neue gestartet. Zu dieser Webserver-Instanz gehören die konfigurierten Erweiterungen (wie z.B. PHP), so dass sich das Limit pro Anfrage auf eine PHP-Seite auswirkt. Wieviele User gleichzeitig online sind ist für den einzelnen Prozess schnuppe (so lange kein Modul wilde Sachen bei jedem Aufruf in Abhängigkeit der Zahl eingeloggter User veranstaltet). Gleichzeitig eingeloggte User werden interessant, bei maximal zu öffnenden Dateien, maximalen Web-Server-Prozessen, CPU- und RAM-Auslastung, max. DB-Verbindungen, usw. usf.
--
"Wer grundlegende Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu gewinnen, verdient weder Freiheit noch Sicherheit." -Benjamin Franklin
Suchmaschinenoptimierung (SEO) & Drupal
Installiere mal das Devel
am 07.12.2007 - 09:21 Uhr
Installiere mal das Devel Modul. Das kann mn so konfurieren das man eine Info ueber den verwendeten Memory bekommt.
64 MB Memory ist relativ hoch. Da muesstest Du schon sehr viele Module aktiviert haben um diesen Wert auszulasten. Wenn dieser Wert hoeher definiert wird als erlaubt bringt es nichts. Ueber das von Deinem Hoster festgelegte Memorylimit kannst Du Dich mit phpinfo() selbst informieren.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Da geht noch was.
Danke
am 07.12.2007 - 09:43 Uhr
für die Informationen!!
Der Hoster erlaubt mir 64 MB, deshalb sollte es noch etwas bringen. Werde Nachher mal das Devel-Modul installieren um noch etwas mehr zu erfahren.
Gruß, der Jenzen!