Speicherverbrauch reduzieren / Speicherlecks schließen

      Speicherverbrauch reduzieren / Speicherlecks schließen

      Durch ein Speicherleck im Magento-Core kann es vorkommen, dass der Shop immer mehr Arbeitsspeicher belegt und diesen anschließend nicht wieder freigibt. Dies führt dazu, dass nach kurzer Zeit der zur Verfügung stehende Arbeitsspeicher voll ist bzw. nicht mehr optimal genutzt werden kann. - Abhilfe schafft ein Fix von Sebastian Heuer, welcher durch einen kleinen Eingriff in den Code eingebaut werden kann.

      Tests zeigten einen konstanten nicht mehr steigenden Bedarf an Arbeitsspeicher und eine Reduzierung des Gesamtbedarfes auf ca. 1/3!

      BENUTZUNG AUF EIGENE GEFAHR!

      In der Datei app/code/core/Mage/Eav/Model/Entity/Attribute/Abstract.php wird nach der Funktion:

      PHP-Quellcode

      1. protected function _construct()
      2. {
      3. }
      folgender Code eingetragen:

      PHP-Quellcode

      1. public function __destruct()
      2. {
      3. unset($this->_backend);
      4. }
      In der Datei app/code/core/Mage/Eav/Model/Entity/Abstract.php muss nach folgendem Code gesucht werden:

      PHP-Quellcode

      1. catch (Exception $e) {
      2. $exception = new Mage_Eav_Model_Entity_Attribute_Exception($e->getMessage());
      3. $exception->setAttributeCode($attrCode)->setPart($part);
      4. throw $exception;
      5. }
      Darunter muss der folgende Code eingefügt werden:

      PHP-Quellcode

      1. $attribute->__destruct();
      Als nächstes suchen wir nach:

      PHP-Quellcode

      1. elseif (!$attribute->isValueEmpty($v)) {
      2. $insert[$attrId] = $v;
      3. }
      und fügen folgenden Code ein:

      PHP-Quellcode

      1. $this->unsetAttributes();
      Wenn alles korrekt geändert wurde verbraucht Magento nun wesentlich weniger und konstant viel Speicher. - Ein Testscript finden Sie im Originalbeitrag.

      Originalbeitrag: Speicherverbrauch reduzieren | Magento Experts
      Magento Hosting | Cloud Server | Shopware Hosting | Elasticsearch Hosting
      Unsere Hosting-Lösungen nutzen ultraschnelle SSDs und sind jederzeit skalierbar.
      Aus aktuellem Anlass möchte ich zu dieser Änderung etwas schreiben.

      Diese Änderung verursacht - zumindest bei uns im Shop - zwei Probleme beim Anlegen von neuen Produkten.

      1. Wir verkaufen Berufsbekleidung und arbeiten fast ausschließlich mit "Configurable Products". Da es bei Bekleidung teils bei Übergrößen zu anderen Preisen führt, kann man dank dieser Änderung leider keine Preisänderungen in den einzelnen Varianten ("Simple Products") vornehmen (EK wie VK lassen sich nicht mehr ändern).

      2. Die zweite Sache ist, wenn man ein Configurable Product anlegt und diesem Bilder zuordnet, man den Artikel abspeichert und im Shop ansieht, sind die Bilder nicht da obwohl man diese vorher zugeordnet hat. Geht man wieder in den Artikel um zu überprüfen was mit den Bildern ist, wird man feststellen, das sie nicht da sind. Nur das nochmalige zuordnen hilft.

      Aus meiner Sicht kann ich zu dieser Änderung also nicht raten. Wenn bei mir schon zwei Sachen nicht richtig funktionieren, kann ich mir gut vorstellen, das weitere Dinge nicht so funktionieren wie sie sollen.

      Grüße

      René