ACP2E-4908: Große Kataloge verursachen übermäßige Redis- oder Valkey-Speichernutzung
Mit dem Patch ACP2E-4908 wird das Problem behoben, dass große Kataloge zu übermäßiger Speichernutzung in Valkey (oder Redis) führen konnten, da für jedes Produkt in jeder Shop-Ansicht separate Layout-Cache-Einträge erstellt wurden. Dieser Patch ist verfügbar, wenn Quality Patches Tool (QPT) 1.1.83 installiert ist. Die Patch-ID lautet ACP2E-4908. Dieses Problem wird voraussichtlich in Adobe Commerce 2.4.10 behoben.
Betroffene Produkte und Versionen
Der Patch wird für die Adobe Commerce-Version erstellt:
- Adobe Commerce (alle Bereitstellungsmethoden) 2.4.8-p4
Kompatibel mit Adobe Commerce-Versionen:
- Adobe Commerce (alle Bereitstellungsmethoden) >=2.4.8 <2.4.10
magento/quality-patches auf die neueste Version und überprüfen Sie die Kompatibilität auf der Seite Quality Patches Tool: Nach Patches suchen. Verwenden Sie die Patch-ID als Suchbegriff, um den Patch zu finden.Problem
Große Kataloge können zu übermäßiger Speichernutzung in Redis oder Valkey führen, da für jedes Produkt in jeder Shop-Ansicht separate Layout-Cache-Einträge erstellt werden.
Schritte zur Reproduktion:
-
Konfigurieren Sie Valkey (oder Redis) als Standard-Cache-Backend.
-
Bearbeiten Sie
app/etc/env.phpund legen Sie den cache.frontend.default-Block auf Folgendes fest:code language-none 'default' => [ 'id_prefix' => '061_', 'backend_options' => [ 'server' => 'valkey', // your Valkey/Redis hostname 'port' => '6379', 'database' => '1', 'password' => '', 'compress_data' => '0', // key recipe — leaves XML uncompressed 'persistent' => 0, 'read_timeout' => 10, 'connect_retries' => 2, ], 'backend' => 'redis', ],Dann
flush: bin/magento cache:flush. -
Erzeugen Sie die Vorrichtung mit mittlerer Leistung:
code language-none bin/magento setup:performance:generate-fixtures \ setup/performance-toolkit/profiles/ce/medium.xmlDies erzeugt 3 Websites × 3 Store-Gruppen × 3 Store-Ansichten, 24.000 einfache + 640 konfigurierbare Produkte, 33 Attributsätze, 50.000 Bestellungen. Rechnen Sie mit 10 Min. auf einer schnellen Maschine.
-
Valkey
db1zurücksetzen und aufwärmen:code language-none valkey-cli -h <host> -n 1 FLUSHDB bin/magento cache:flush -
Crawlen Produktseiten über Stores hinweg. Erstellen Sie eine Beispielliste und klicken Sie auf jede URL:
code language-none # Build 200 random product URLs across stores 1–4 mysql -e "SELECT CONCAT(s.code,'|',u.request_path) FROM url_rewrite u JOIN store s ON u.store_id=s.store_id WHERE u.entity_type='product' AND u.request_path NOT LIKE 'catalog/product/%' AND s.store_id BETWEEN 1 AND 4 ORDER BY RAND() LIMIT 200;" magento > urls.txt while IFS='|' read -r STORE URL; do curl -s -o /dev/null "http://<base-url>/${URL}?___store=${STORE}" done < urls.txt -
Beachten Sie den
LAYOUTCache-Platzbedarf:code language-none valkey-cli -h <host> -n 1 --scan --pattern "*LAYOUT_FRONTEND_STORE*" | wc -l valkey-cli -h <host> INFO memory | grep used_memory_humanSkalieren Sie den crawlen (oder verwenden Sie
large.xml/extra_large.xmlund ein echtes Lasttool wie Belagerung/Wrk), um den 10.000-Schlüssel-/1,7-GB-Standard des Kunden zu erreichen.
Erwartete Ergebnisse:
Die Leistung wird durch die aktivierte Komprimierung nicht beeinträchtigt.
Tatsächliche Ergebnisse:
- Die
LAYOUT_FRONTEND_STORERedis verbrauchen sehr viel Platz. - Bei einer neuen Installation mit mittlerer Ausstattung nach 200 Produkttreffern: ca. 564
LAYOUT_FRONTEND_STOREundused_memory_humanvon ca. 20 MB (gegenüber ca. 10 MB Baseline vor dem crawlen) - ca. 2,8 LAYOUT-Cache-Schlüssel pro Produktseitentreffer, die linear mit individuellen Produkten, die × Geschäften besucht werden, zunehmen.
Patch anwenden
Verwenden Sie je nach Bereitstellungsmethode die folgenden Links, um einzelne Patches anzuwenden:
- Adobe Commerce oder Magento Open Source On-Premise: Quality Patches Tool > im Quality Patches Tool
- Adobe Commerce in Cloud-Infrastruktur: Upgrades und Patches > Patches anwenden im Handbuch zu Commerce in Cloud-Infrastruktur
Verwandtes Lesen
Weitere Informationen zu Quality Patches Tool finden Sie unter:
- Quality Patches Tool: Ein Self-Service-Tool für hochwertige Patches im Tools-Handbuch