mixmastertobsi: PGP Memory-Limit

Hallo Zusammen,

ich bekomme beim erstellen eines Bildes per PHP folgende Fehlermeldung

Fatal error: Out of memory (allocated 56885248) (tried to allocate 27890497 bytes)

In der PHP.ini habe ich 2048 MB festgelegt - am Limit dürfte es also nicht liegen.

Wer kann mir einen Tipp geben?

  1. Moin

    Fatal error: Out of memory (allocated 56885248) (tried to allocate 27890497 bytes)

    Es ist das Memory-Limit tatsächlich überschritten

    In der PHP.ini habe ich 2048 MB festgelegt - am Limit dürfte es also nicht liegen.

    gib dir mal die phpinfo(); aus um zu sehen wie hoch das Limit tatsächlich ist.

    Hast du mit iniset() den Wert hochgesetzt oder direkt in der ini?

    Gruß Bobby

    --
    -> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <-
    ### Henry L. Mencken ###
    -> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <-
    ## Viktor Frankl ###
    ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)
    1. Hallo, habe es direkt in der ini auf 2048 mb stehen...

      Wenn ich mit phpinfo(); das Limit abfrage, wird auch 2048mb angezeigt

      1. Moin

        Wenn ich mit phpinfo(); das Limit abfrage, wird auch 2048mb angezeigt

        Also:

        memory_limit 2048M 2048M ?

        Gruß Bobby

        --
        -> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <-
        ### Henry L. Mencken ###
        -> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <-
        ## Viktor Frankl ###
        ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)
        1. Moin

          Wenn ich mit phpinfo(); das Limit abfrage, wird auch 2048mb angezeigt

          Also:

          memory_limit 2048M 2048M ?

          Wenn dem so ist, dann ist der Speicher (für PHP) vom BS begrenzt. Da kann im Memory-Limit drin stehen was will. So sieht es zumindest auf den ersten Blick aus, da bei "27890497 bytes" Schluss ist ( ca 26 MB)

          Gruß Bobby

          --
          -> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <-
          ### Henry L. Mencken ###
          -> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <-
          ## Viktor Frankl ###
          ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)
          1. Tach!

            Wenn dem so ist, dann ist der Speicher (für PHP) vom BS begrenzt.

            Die Meldung ist auch nicht die typische "Allowed memory size ..." sondern dass wirklich kein Speicher aufzutreiben war.

            Da kann im Memory-Limit drin stehen was will. So sieht es zumindest auf den ersten Blick aus, da bei "27890497 bytes" Schluss ist ( ca 26 MB)

            Nö, irgendwas zwischen 50 und 75 MB. 5x MB hat er ja schon, 2x MB sollten noch hinzukommen. Ich tippe aber nicht aus "das BS" sondern auf eine Limitierung seitens FCGI oder einem anderen Teil des Webservers.

            dedlfix.

            1. Moin

              Nö, irgendwas zwischen 50 und 75 MB. 5x MB hat er ja schon, 2x MB sollten noch hinzukommen. Ich tippe aber nicht aus "das BS" sondern auf eine Limitierung seitens FCGI oder einem anderen Teil des Webservers.

              Oha.. ja, sorry.. hast recht..  Naja mit BS meinte ich eher irgendeine Begrenzung die nicht direkt aus PHP heraus zu steuern, sondern von einem anderen Prozess oder physikalisch gegeben ist.

              Gruß Bobby

              --
              -> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <-
              ### Henry L. Mencken ###
              -> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <-
              ## Viktor Frankl ###
              ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)
              1. Hallo,

                und wie kann ich das Problem lösen, bzw. was kann ich noch versuchen.

                Ist ggf. der Apache die Fehlerquelle?!?

                1. Tach!

                  und wie kann ich das Problem lösen, bzw. was kann ich noch versuchen.

                  Nun, irgendetwas zwischen PHP und dem physischen Speicher will nicht mehr herausrücken. Mehr kann man derzeit nicht sagen.

                  Ist ggf. der Apache die Fehlerquelle?!?

                  Durchaus möglich. Wie ist den PHP überhaupt eingebunden, Apache-Modul oder über (F)CGI?

                  dedlfix.

                  1. Hallo, ja bin admin ;)

                    Das PHP-Modul ist über den Apache eingebunden.

                    1. Tach!

                      Das PHP-Modul ist über den Apache eingebunden.

                      Dann weiß ich nicht, wie das begrenzt sein kann. Wenn ich mir die Apache-Direktiven so anschaue, finde ich nur RLimitMEM, aber das wirkt laut Beschreibung nur auf neue Prozesse (wie CGI), nicht auf Apaches eigene Kinder - und dazu müsste das PHP-Modul zählen. Das sollte also nicht die Ursache sein, kannst aber trotzdem mal danach in deiner Apache-Konfiguration suchen. Jedenfalls sieht es grad so aus, als ob die Begrenzung irgendwo über dem Apachen sitzt.

                      dedlfix.

                2. Tach!

                  und wie kann ich das Problem lösen, bzw. was kann ich noch versuchen.

                  Bist du eigentlich Administrator von der Kiste? Wenn nicht, wende dich an einen, denn dann kannst du das Problem sowieso nicht lösen, auch nicht mit unserer Hilfe.

                  dedlfix.

  2. Tach!

    ich bekomme beim erstellen eines Bildes per PHP folgende Fehlermeldung
    Fatal error: Out of memory (allocated 56885248) (tried to allocate 27890497 bytes)

    Das kann schon mal passieren bei großen Bildern.

    In der PHP.ini habe ich 2048 MB festgelegt - am Limit dürfte es also nicht liegen.

    Wenn du ein Bild bearbeitest, wird dafür mindestens Pixel in der Breite × Pixel in der Höhe × (3 oder 4 Byte Farbinformation (4 mit Transparenzinformation)) benötigt. Und das gegebenenfalls mehrfach, weil die Verarbeitungsschritte ein oder mehrere Kopien benötigen und
    gegebenenfalls weiteren Platz zum Arbeiten brauchen. Du kannst also nicht von der Dateigröße eines komprimierenden Formats ausgehend auf den Arbeitsspeicherbedarf schließen.

    dedlfix.