Mhh, nur eine Ausführung kostet jeweils 20MB Fehlermeldung im Errorlog. Der war dann heute auf 545 angeschwollen. Sieht aus wie eine Fehler den ich hier (https://forum.shopware.com/discussion/comment/266707/#Comment_266707) schon einmal hatte und immernoch habe im zusammen mit der Suche (Suchindex aufbauen) Ganz viele UNIONS und am Schluss:
Hast Du die Live-Aktualisierung des Such-Index aktiv und neue Produkte im Shop oder den Index gelöscht?
Du bekommst die Fehlermeldung wenn:
a) das RAM nicht ausreicht, um die Indexierung durchzuführen. Das geht ziemlich schnell, wenn Du eine vernünftige php-memory-limit Grenze gewählt hast oder grundsätzlich zu wenig RAM für deine MySQL Operationen zur Verfügung steht.
b) evtl. wenn dein Raid1 Probleme mit einer defekten Fesplatte hat. Ist dann letztlich ein Folgefehler. Haben wir schon im Support gehabt. Wahrscheinlicher ist allerdings Option a
Probier mal den Suchindex per CLI aufzubauen und dort geziel ein hohes RAM-Limit zu setzen.
Falls Dir das aufgrund Eures Hostings nicht möglich ist, bleibt eigentlich nur die Datenbankfelder für den Suchindex zu begrenzen.
Habe (rambo-mässig) memory_limit auf 15000M gesetzt und live modus ist aktiv. Aktuell sind schon 15.000 Keywords vorhanden.
CLI bringt ein haufen Fehler (Auszug s.u.) und stoppt nach 10004012:
...
SELECT sk.id as keywordID, 4043 as elementID, 5 as fieldID FROM s_search_keywords sk WHERE sk.keyword IN ('10004010')
UNION ALL
SELECT sk.id as keywordID, 4044 as elementID, 5 as fieldID FROM s_search_keywords sk WHERE sk.keyword IN ('10004011')
UNION ALL
SELECT sk.id as keywordID, 4045 as elementID, 5 as fieldID FROM s_search_keywords sk WHERE sk.keyword IN ('10004012')'
und am Schluss:
SQLSTATE[42000]: Syntax error or access violation: 1064 memory exhausted near 'sk.id as keywordID, 4043 as elementID, 5 as fi
eldID FROM s_search_keywords sk WH' at line 15995
Nimm mehr RAM. Ich habe das bei der “Intelligenten” Suche schon mit 48GB laufen lassen, weil es mit irgendetwas in den 20er GB nicht funktionierte. Und das war kein besonders großer Shop. Im Endeffekt habe ich die Suche auf absolut notwendige Datenfelder reduziert, um mit den häufigsten Suchphrasen vernünftige Ergebnisse zu bekommen.
Also Rambo ist noch nicht 15GB . Reduzier mal die DB-Spalten auf Name und Meta-Keyowords oder so und schau, ob es mit den 15GB auf der Kommandozeile funktioniert. Du hast auch schon explizit bei dem CLI-Aufruf die 15Gb zugeordnet?
In einer zweiten SSH.Sitzung kannst Du dir mit top ansehen, welcher Prozeß RAM zieht.
Wenn Du dir die Select-Statements bei der Keyword-Index Erstellung ansiehst, weißt Du auch, warum RAM die entscheidende Stellschraube ist.
Die Aktualisierung musst Du auf jeden Fall aus Live auf Cron stellen müssen. Den Fehler wirst Du sonst dauernd sehen.
Im CLI habe ich keine Angabe zu 15GB gemacht, das habe ich in Timmes Einstellungen “memory_limit = 15000M” gemacht. Wie ist der Befehl das an die CLI zu hängen? Unter --help stand nix davon. Bitte ein Beispiel. Danke.
Das mit htop habe ich schon gemacht, aber der bleibt bei seinen ausgelastetem RAM, also keine Veränderung wenn ich das Script oder den Backendprozess laufen lasse.
Ja, ich habe die Suche angepasst gehabt, Ich habe Artikel-Eigenschaften mit einbezogen. Ich teste es mal wenn ich das rausnehme. Aber wir brauche das! :-/
EDIT: ich muss ncoh sagen, dass ich vorher 64GB (Hetzner) hatte und jetzt nur noch 32GB (Timme).
Im CLI habe ich keine Angabe zu 15GB gemacht, das habe ich in Timmes Einstellungen „memory_limit = 15000M“ gemacht. Wie ist der Befehl das an die CLI zu hängen? Unter --help stand nix davon. Bitte ein Beispiel. Danke.
Das mit htop habe ich schon gemacht, aber der bleibt bei seinen ausgelastetem RAM, also keine Veränderung wenn ich das Script oder den Backendprozess laufen lasse.
Ja, ich habe die Suche angepasst gehabt, Ich habe Artikel-Eigenschaften mit einbezogen. Ich teste es mal wenn ich das rausnehme. Aber wir brauche das! :-/
EDIT: ich muss ncoh sagen, dass ich vorher 64GB (Hetzner) hatte und jetzt nur noch 32GB (Timme).