Import .CSV sehr langsam trotz ausreichender Ressourcen

Servus,

ich habe bereits die suche verwendet und keine passende Antwort zu meiner aktuellen problematik gefunden.

erstmal die Basics zum Shop und Server:
Shopware 6.7.7.1 (Selbst gehostet)
Admin-Worker aktiv (mit asynchroner Verarbeitung)
8gb ram für Shopware fest zugesichert
265000 Artikel im Sortiment
DB für shopware ~35gb groß

Server läuft auf Ubuntu 24.04.4 LTS
32gb Ram
272gb Speicher
12 x QEMU Virtual CPU version 2.5+ (Xeon Silver aktuellste generation)
Maria DB 11.4

Folgende Werte werden beim Import befüllt geliefert:
cover.media.translations.DEFAULT.alt
cover.media.translations.DEFAULT.title
cover.media.url
cover.media.id
tax.taxRate
tax.name
id
productNumber
price.DEFAULT.gross
translations.DEFAULT.name
price.DEFAULT._net
tax.id
stock
categories
manufacturer.translated
active
deliveryTime.translated
minPurchase
purchaseSteps
maxPurchase
releaseDate
shippingFree
markAsTopseller
translations.DEFAULT.keywords
referenceUnit
translations.DEFAULT.packUnit
unitId
translations.DEFAULT.metaTitle
weight
purchaseprices.DEFAULT._net
translations.DEFAULT.description
media
ean
translations.de-DE.customFields.migration_Migrationshopware56-66_product_attr7

kurz gesagt: der import wurde am 10.2.2026 gestartet und hat stand jetzt 150650 Artikel importiert. Da ich aber täglich neue Bestände erhalte, muss ich dies auch irgendwie so beschleunigen können, dass der Import in 24h fertig wird.
Der Server ist im durchschnitt zu 20% ausgelastet, Workload und SSD haben ebenfalls deutlich luft nach oben.

vielleicht hat wer eine idee, was man noch machen kann, damit die Verarbeitung deutlich schneller funktioniert :grin:

Mach den Admin worker aus und lass 4 Worker im Hintergrund laufen, dann sollte das deutlich schneller gehen.

1 „Gefällt mir“

Moin,

ergänzend dazu noch:
Du kannst auch extra worker dann nur für den Import laufen lassen indem du einzelne tasks auslagerst in eigene Transporte.

Aber alleine den Admin worker auszustellen und mit supervisor abarbeiten zu lassen die Queue sollte einen enormen Effekt haben.

Weitere Ergänzung: mit 35gb Datenbank könnte der ram erhöht werden für eine bessere Performance. Oder eventuell einen eigenen dB Server nutzen.

Grüße
Matthias

1 „Gefällt mir“

Ich habe jetzt 4 worker aktiv laufen. in einer stunde kann ich mehr sagen, ob das was gebracht hat. Die Warteschlange ist jetzt zumindest grundsätzlich leer.
die Auslastung ist jetzt nicht merklich angestiegen. gibt es eine empfehlung welche buffergröße ich dem worker zuweisen kann? aktuell hat jeder 512mb erhalten

Moin @IIVII,

generell würde ich auch immer empfehlen mit 512mb zu beginnen. Sollte dies nicht reichen, dann hast du entsprechende errors in den Logs und musst schauen, woran es liegt und entweder den Prozess optimieren oder doch das Limit anheben. Das hängt immer sehr vom Setup ab.

Grüße
Matthias

1 „Gefällt mir“

Was ist der Hintergrund des Imports? Passiert das regelmäßig oder ist das Teil der Migration beispielsweise von Shopware 5?

Bei solchen Datenmengen würde ich über die API gehen. Hier kann man dann auch mit Zeitstempel arbeiten und nur das Delta importieren.

Bei solchen Sachen kannst du nochmehr und nochmehr (schnellere) Hardware draufwerfen und es wird nicht besser. CSV ist für solchen Datenmengen einfach nicht ideal.

2 „Gefällt mir“

Nur mal so als Anmerkung:

Während meines SW-Migrations-Marathon mussten wir feststellen (Zusammen mit dem Shopware-Support) das MariaDB für große SW6-Datenbanken nicht geeignet ist. MySQL 8.4 ist wesentlich schneller.

Desweiteren kann der RAM noch so groß, nutzt alles nichts wenn die Datenbank für Shopware nicht optimiert ist.

1 „Gefällt mir“

über den import werden bestandsinformationen aktualisiert, sowie bildupdates. diese informationen aktualisieren wir auf allen marktpätzen und online-shops täglich

ich habe jetzt auch mal ein update auf redis angefangen um auch dort mehr performance zu bekommen. die 4 worker sind in der aktuellen variante leider nicht so schnell, wie gehofft, was mit der änderung auf redis wohl besser funktionieren soll

Da Bestandsupdates schneller gehen dürfte (und häufiger passieren sollte), würde ich mal probieren das in einem separaten CSV Import machen.

1 „Gefällt mir“

das stimmt. allerdings habe ich grade 8000 neue artikel mit bild neu dabei und komme nicht drum herum :sweat_smile: der gedanke war mir auch schon gekommen. nur momentan nicht möglich, bis die neuen artikel mit bild drin sind

Bei so vielen Artikeln und somit Updates würde ich wirklich schauen wie die Verbindung ordentlich aufgebaut wird, wie angesprochen über API.

Du sprichst auch von Markplätzen: sind diese an Shopware angebunden? Habt ihr ein ERP oder Middleware für Marktplätze?

Vielleicht kannst du dein komplettes Setup hier mal beschreiben?

1 „Gefällt mir“

die anderen marktplätze sind über die ERPp angebunden. shopware selbst hat aktuell 2 onlineshops enthalten, wobei es dort auch noch einstellungsprobleme gibt, die ich aber erst danach angehen würde.
über eine api können wir auch hochladen, vermutlich muss die api dafür dann noch geschrieben werden. grundsätzlich werden alle bestandsdaten als .csv oder .xlsx bereitgestellt, sofern diese keine direkte api haben.

ich lese mir mal die dokumentation zur api durch. momentan hat das update auf redis leider den core beschädigt. sobald der shop wieder läuft, wird das angegangen (:

Genau: entweder Shopware direkt an das ERP anbinden (per API, vielleicht gibts auch einen fertigen Konnektor dafür) oder per Middleware also ERP > Middleware > Shop und auch Middleware an den Marktplatz anbinden.

Wenn du ein ERP hast, was für den Handel ideal ist, hat der Anbieter diese Anforderung schon mehrfach gehört: diese können dann sicherlich sagen, was ideal ist, bzw. wie das andere Kunden des ERPs machen.

Dann kannst du auch wieder einen Server für den Onlineshop mit nur 4-8 Kerne nutzen und 16 GB RAM :slight_smile:

1 „Gefällt mir“

Moin @IIVII

was genau machst du denn alles über Redis? Würde dir dann empfehlen, die Admin Worker auch mit Supervisor/Systemd abarbeiten zu lassen. Also keine „normalen“ Cronjobs.

Grüße
Matthias

1 „Gefällt mir“