Horatius: memory_limit ignoriert?!

Hallo Leute,

seit einem Serverumzug funktionieren leider einige Skripte nicht mehr wie sie sollen, da sie mit dem bekannten "Fatal error: Out of memory (allocated 87031808) (tried to allocate 46 bytes) in" abbrechen. Ich bin leider etwas ratlos, da ich den "memory_limit"-Wert der Php.ini beliebig ändern kann (per ini_set), dies aber keine Auswirkungen hat (stets der gleiche Fehler). Hat vielleicht jemand eine Idee wie sich das Problem umgehen oder noch besser lösen lässt?

Hier ein paar Auszüge aus der phpinfo:

Configure Command (...)--enable-memory-limit'(...)
Server API CGI
memory_limit 800M (local value), 50M (master value)
upload_max_filesize  50M, 50M
post_max_size 8M, 8M

Gruß
Horatius

  1. n'abend,

    seit einem Serverumzug funktionieren leider einige Skripte nicht mehr wie sie sollen, da sie mit dem bekannten "Fatal error: Out of memory (allocated 87031808) (tried to allocate 46 bytes) in" abbrechen. Ich bin leider etwas ratlos, da ich den "memory_limit"-Wert der Php.ini beliebig ändern kann (per ini_set), dies aber keine Auswirkungen hat (stets der gleiche Fehler). Hat vielleicht jemand eine Idee wie sich das Problem umgehen oder noch besser lösen lässt?

    Zur Konfiguration einer PHP-Laufzeitumgebung gibt es mehrere Ebenen. Folgende Seiten erklären den Umgang mit der Konfiguration:
    Wie man Konfigurationseinstellungen ändert
    Liste der Konfigurationsoptionen und ihre Berechtigungsstufen zur Änderung
    Wie man sich die aktuelle Konfiguration anzeigen lässt

    Hier ein paar Auszüge aus der phpinfo:
    memory_limit 800M (local value), 50M (master value)

    Damit sollte eine PHP-Instanz eigentlich 800MB Ram belegen dürfen. Hast du im "fehlerhaften" Script evtl. ein ini_set() verbaut, welches den Wert ändert? Hast du evtl. eine php.ini in einem der (Eltern-) Verzeichnisse liegen, in dem dein Problemscript liegt, dein phpinfo-Script aber nicht? Hast du den Webserver zwischendurch mal neugestartet?

    weiterhin schönen abend...

    --
    #selfhtml hat ein Forum?
    sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|
    1. Hallo,

      Damit sollte eine PHP-Instanz eigentlich 800MB Ram belegen dürfen. Hast
      du im "fehlerhaften" Script evtl. ein ini_set() verbaut, welches den Wert »» ändert?

      nichts dergleichen.

      Hast du evtl. eine php.ini in einem der (Eltern-) Verzeichnisse liegen,
      in dem dein Problemscript liegt, dein phpinfo-Script aber nicht?

      nein, auch nicht.

      Hast du den Webserver zwischendurch mal neugestartet?

      ist ein managed server, ich habe da leider keinen Einfluss auf irgendwelche Änderungen, von daher nein, wüsste aber auch nicht was das bringen könnte (es wurden ja keine Anpassungen vorgenommen)

      Gruß
      Horatius

      1. Hallo

        »» Hast du den Webserver zwischendurch mal neugestartet?

        ist ein managed server, ich habe da leider keinen Einfluss auf irgendwelche Änderungen, von daher nein, wüsste aber auch nicht was das bringen könnte (es wurden ja keine Anpassungen vorgenommen)

        Du kannst ja mal den Manager deines Servers fragen, was es damit auf sich hat. Das sollte mMn die erste Anlaufstelle sein.

        Tschö, Auge

        --
        Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
        Terry Pratchett, "Wachen! Wachen!"
        Veranstaltungsdatenbank Vdb 0.3
        1. Hallo,

          Du kannst ja mal den Manager deines Servers fragen, was es damit auf sich hat. Das sollte mMn die erste Anlaufstelle sein.

          IMHO ist das erst die zweite Anlaufstelle, denn ein PHP-Script, was 800 MB Speicherbedarf hat, muss entweder eine Fehlkonstruktion sein, oder PHP wird hier zu Arbeiten herangezogen, die besser von richtigen™ Programmen abgearbeitet werden sollten. Gegebenenfalls sollte man über den Gebrauch von tmpfile() etc. nachdenken.

          Gruß aus Berlin!
          eddi

          --
          Ab einem gewissen Erkenntnisstand ist die Versuchung wohl zu groß, in diesem und seinen begleitenden Errungenschaften zu verharren.
          Das nenne ich Aufblick zu den Stufen des Tempels von der geistigen Gosse aus!
          1. Hallo

            »» Du kannst ja mal den Manager deines Servers fragen, was es damit auf sich hat. Das sollte mMn die erste Anlaufstelle sein.

            IMHO ist das erst die zweite Anlaufstelle, denn ein PHP-Script, was 800 MB Speicherbedarf hat, muss entweder eine Fehlkonstruktion sein, ...

            Unter diesem Gesichtspunkt hast du natürlich recht. Wobei im Ausgangsposting von "Fatal error: Out of memory (allocated 87031808) (tried to allocate 46 bytes) in" die Rede ist, was, wenn da nicht ein Tippfehler drin ist, "nur" knapp über 80Mb sind (was für ein PHP-Skript immer noch übermäßig viel ist).

            Gruß aus Berlin!
            eddi

            Von eben diesem Ort, tschö, Auge

            --
            Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
            Terry Pratchett, "Wachen! Wachen!"
            Veranstaltungsdatenbank Vdb 0.3
  2. Lieber Horatius,

    da ich den "memory_limit"-Wert der Php.ini beliebig ändern kann (per ini_set)

    hast Du auch gewissenhaft überprüft, ob Deine Änderungen auch tatsächlich angenommen werden? Dass Du keine Fehlermeldung erhälst, bedeutet noch lange nicht, dass Deine Werteänderung auch angenommen wurde!

    Liebe Grüße,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)