CSV import ist sehr sehr langsam

Hallo werte Community,

kann man irgendwo an der Performanceschraube für CSV Imports bzw. Updates drehen?

Für eine 379KB Große Datei benötigt der sehr lange, oder er bricht ab, da die max execution time erreicht ist.

Hat jemand vielleicht eine Idee woran das liegen könnte?

Max execution time erhöhen beim Hoster? Welchen Hoster und Tarif?

Wir sind unser eigener Hoster. Durch das erhöhen der max execution time läuft der import nun durch. Er benötigt dennoch ca. 180 Sekunden um ca. 100 Datensätze zu aktualisieren. Gemeßen im DEV modus Ajax request duration.

Der Rest im Shop “rennt” förmlich. Noch eine Idee an was an liegen könnte?

Anbei die Konfig

  • Ubuntu 18.04
  • 16GB RAM
  • 100 GB SSD
  • PHP 7.4
  • NGNINX
  • MySQL 8 (auf einer dedizierten Maschiene)

MariaDB auf derselben Maschine als MySQL auf einer anderen (wie schnell ist die andere Maschine?). CPU? Upgrade auf Ubuntu 20.04.1 LTS?

Die MySQL Maschiene hat 8 GB RAM und 8 CPU und ist sich laut HTOP am langweilen. (Auch beim Import)

Ein Upgrade auf 20.04 kommt ebenfalls in frage

Oder habe ich deine Frage falsch verstanden?

Ich hätte dann keine Ideen mehr aber dein Problem ist ja erstmal behoben. Ich mein: wie oft importierst du via CSV?

Zur Zeit recht häufig (Initialbefüllung) Aber in der Regel sind es nicht so viele Artikel auf einmal :wink:

Hallo,

wir haben derzeit das selbe Problem, allerdings etwas drastischer (6kB große .csv mit 40 Zeilen (Varianten eines Produkts)) dauert 66 Minuten. Die 40 Zeilen sind eigentlich Teil einer großen .csv mit etwa 1000 Zeilen. Die wiederum sind ein Teilbereich eines 4900-variantigen Produkts, von dem wir einige gerne verändern würden.

Im htop kann ich ebenfalls sehen, dass nur 2 Threads von MySQL und einer von Apache/PHP gleichzeitig auf mehr oder weniger Volllast betrieben werden. Ich nehme an das Limit entsteht daraus, dass MySQL einzelne Querys nicht wirklich selbst parallelisieren kann?

Deswegen präzisiere ich die ursprüngliche Frage hiermit:

Wäre es denkbar, mehrere Import-Anfragen gleichzeitig zu starten (z.B. via API die Requests des Backends nachbilden?) um das Problem zu lösen, ohne dass man gleich den ganzen Import-Code angreift damit er weniger Tabellen gleichzeitig erfordert/manipuliert? Oder würde das zu Nebenläufigkeitsproblemen führen?

Habt ihr hier eine Lösung gefunden?
Der Import ist so langsam, in der Zeit kann man die Artikel ja von Hand alegen. Message Queue läuft konstant…

Hallo

Gibt es dazu Lösungsansätze?
Irgendein Shopware Update oder Server Update löste das Problem aus.
Servereinstellungen haben wir definitiv nicht geändert, aber ab ca. Anfang/Mitte Oktober laufen sämtliche Imports -extrem- langsam.
Der Server ist nur minimal ausgelastet.

Gruß
Tom

Bei uns das gleiche Problem, scheint durch einen der letzten Patches ausgelöst worden zu sein. orher ging es alles relativ fix. Allmählich überlegen wir ob wir nich doch lieber wieder auf SW5 oder gar einen ganz anderen Shopsoftware Anbieter ausweichen sollten, SW6 hat unsere Probleme eher verschlimmbessert als verbessert… Schade, eigentlich war ich immer ein großer Fan von SW aber die Fanbase schwindet…

Achso, Datei ist 15kb groß, enthält 6 Zeilen und lädt nun schon 8 Minuten…

Hi,

wir haben das Problem dann gelöst indem wir auf den direkten CSV-Import via vorgesehenem Modul verzichten und stattdessen die Sync-API via Python ansprechen.

Vorteil: Die Sync-API erlaubt bei den zusätzlich übergebenen Headern das Verschieben der Indexierung auf später (indexing-behavior). Das muss aber trotzdem gemacht werden! Kann aber dann via MessageQueue über CLI-Worker erledigt werden die dann länger Zeit haben und in kein Timeout laufen!

Viel Erfolg!