Migrationsassistent Migration von 5 auf 6 - Out of Memory Exception (55GB!)

Ziel

Migration eines vorhandenen Shops in Version 5 auf neuen Shop in Version 6.

Umgebung

  • Neuer Server mit Shopware 6
  • Vorhandene Umgebung mit Shopware 5
  • Migrationsassistent Plugin (Shops sind verbunden)

Problem

Über die Weboberfläche war es nicht möglich die Migration sauber durchzuführen.
Der Doku zufolge sollte hier nun die migration via CLI ausgeführt werden.
Das haben wir nun auch getan. Wir migrieren jeden part einzeln mit dem migrate tool.
Im Error Log wurde in beiden Fällen eine Out of Memory Exception geworfen.

Zustand jetzt

Wir haben alle memory Limits auf unlimitiert gesetzt (php, fpm, cli) und die Server RAM auf sage und schreibe 55 GB angehoben.
Die write operation der migration (frontend) macht jetzt zumindest Fortschritte.
Der Prozess verbrät die gesamte RAM, wir erreichen bald die 55GB und erhalten wieder eine OOM Exception.

Prozess:

Hat jemand die selben Probleme?
Was für eine Lösung kann hier abhilfe schaffen?
Wieso benötigt der Migration Prozess so viel RAM, das ist nicht normal.

Für jede Hilfe dankbar!

LG
Ron

Wenn du das Forum durchsuchst, dann findest du ein paar Beiträge zur Speicherallokation während des Schreibprozesses. Shopware oder Symfony, der „Schuldige“ wurde in den Beiträgen nicht bestimmt, sperrt beim Schreiben ca. 2 MB und gibt diese nicht mehr frei. In einer Schleife sind wir bei 1000 Schreiboperationen dann bei 2 GB gesperrtem (aber nicht benötigtem) Speicherplatz.

Neben dem Speichern wird ja noch weiterer Speicherplatz benötigt… so kommen die Summen zusammen.

Irgendwo habe ich mal gesehen, dass jemand die komplette Klasse umgeschrieben hat und der Speicherbedarf dadurch um gefühlte 99% herunterging. Hatte etwas mit den initiiertem Prozessen (Suche, etc.) nach dem Schreiben zu tun.

Hey Max!

Ah dann doch :slight_smile:
Den Beitrag hatte ich auch kurz überflogen, nicht genauer reingeschaut.
Dachte halb so wild.

Ja du hast recht, da kommt eine stolze Summe zusammen.

Werde mich mal auf die Suche nach diesem Beitrag machen und eventuell sogar den Fix in der Klasse finden.

Vielen Dank vorerst für den Hinweis!