Die Leistungsvorteile des Ganzseiten-Caches in Magento Enterprise sind allgemein bekannt. Was vielleicht nicht ganz so gut bekannt ist, ist, dass es, um den vollen Nutzen daraus zu ziehen, voll besetzt und heiß sein muss, insbesondere bei großen Produktsets, bei denen Sie nicht nur ein paar Seiten haben, um den organischen Verkehr zu nutzen Grund es schnell genug.
Magento enthält einen eingebauten Cronjob, um die Site zu crawlen und die FPC am frühen Morgen aufzuwärmen.
Ich habe Probleme gesehen und gehört, die dadurch verursacht wurden, dass die Ausführung von Jobs am frühen Morgen zu lange dauerte, andere Jobs blockierten, und möchte wissen, was andere dazu verwenden, oder ich würde vorschlagen, dies zu tun. Ein paar Ideen, die ich habe, sind:
- Stellen Sie ein Shell-Skript zusammen, um jede Seite in der generierten Sitemap-Datei zu crawlen.
- Verwenden Sie einen separaten crontab-Eintrag und ein kurzes PHP-Skript, um Magento zu booten und den Crawler-Prozess direkt auszuführen.
Alle Gedanken und / oder Erfahrungen dazu sind willkommen!
quelle
Antworten:
Sie können Belagerung in Kombination mit der
sitemap.xml
Datei verwenden, wie es MageSpeedTest tut.Dann renne
Inhalt von hier bezogen .
quelle
–delay
Wir tun es einfach nicht - überhaupt nicht. Je. Wir werden das immer und immer wieder sagen, aber
Ihre Site muss schnell sein, ohne die Zugabe von FPC (oder Lack für diese Tatsache). Es wird immer eine Zeit geben, in der der Inhalt nicht vorbereitet ist (Ihr Szenario oben).
In einem entladenen Geschäft sollten die Ladezeiten von Seiten mit FPC nicht so beeindruckend sein wie mit Nicht-FPC. Magento ist durchaus in der Lage,
< 400ms
Seitenladezeiten auf Standard-Caches (auf Kategorie- / Produkt- / Suchseiten) festzulegen. FPC bringt das auf den< 80ms
Punkt - aber es gibt Vorbehalte.Neue Artikel / relevantere Suche ist veraltet, bis sie ungültig wird oder die TTL abläuft
etc.
Warum das Vertrauen in FPC (oder Lack) eine schlechte Idee ist
Wenn Sie kontinuierlich sicherstellen möchten, dass die Caches manuell vorbereitet werden, gibt es wahrscheinlich ein paar Gründe
Sie können nicht alles zwischenspeichern
Wenn Sie ein Geschäft mit nur 5 Kategorien, 2 Ebenen tief verschachtelt, 5 filterbaren Attributen, jeweils 5 Attributoptionen und 1000 Produkten annehmen; das sind viele mögliche kombinationen.
25 Optionen zur Auswahl, von denen ich bis zu fünf Mal hintereinander eine auswähle - ich bin kein Statistiker , aber mir ist bewusst, dass ... (vorausgesetzt, die Anzahl der Attributoptionen nimmt nicht vollständig ab)
Ok, das obige Szenario ist kein wahrscheinliches Szenario, wie ich mir innerhalb von 3 Klicks vorstellen würde - die Anzahl der verfügbaren Produkte wäre ausreichend gesunken, damit der Kunde sein Produkt finden kann. Also selbst wenn es wäre ...
Dann mal das mit 5 Kategorien, also 625 URLs. In dieser Phase handelt es sich um einen winzigen Katalog, bei dem alle Produkt-URLs vollständig ignoriert werden.
Wir berücksichtigen auch nicht, dass die Anzahl der verschachtelten Kategorien mit
is_anchor
on exponentiell zunehmen wird.Wenn Sie also dieses Seitenvolumen crawlen möchten, müssen Sie entweder hoffen, dass die Ladezeiten für Ihre Seiten anfangs gut und niedrig sind, so dass es sich um einen schnellen Prozess handelt (der den Zweck des Crawls zunichte macht), oder Sie müssen dies tun genug Zeit, um den Vorgang abzuschließen, bevor die TTL abläuft.
Wenn Ihre Seiten eine Ladezeit von 0,4 s hatten und Sie eine 8-Kern-CPU - dann ...
0,5 Minuten, nicht schlecht - aber stellen wir uns vor, Sie hatten 2s Ladezeiten
Aber wenn Sie das maximal mögliche Szenario genommen haben
Das ist also Ihr Produktionsserver, unter 100% CPU-Auslastung für 15 Minuten. Sie würden die Crawling-Geschwindigkeit proportional zur gewünschten TTL verringern.
Wenn Sie also möchten, dass der Inhalt eine TTL von 3600s hat, könnte das Crawlen viermal langsamer sein - dh. Nur 25% der CPU sind für das Crawlen vorgesehen. Das ist eine Menge Ressourcen, nur um den Inhalt der Kategorie auf dem neuesten Stand zu halten - wir haben in dieser Phase noch nicht einmal Produkte, Suchbegriffe oder zusätzliche Store Views berücksichtigt
Wenn Sie sich die bloße Größe der Kombinationen in der
catalog_url_rewrites
Tabelle ansehen (wobei die Parameter der geschichteten Navigation nicht einmal berücksichtigt werden), erhalten Sie eine Vorstellung davon, wie viele URLs möglicherweise nicht mehr gecrawlt werden müssen.Jeder Laden wird sicherlich anders sein, aber ich versuche, nach Hause zu kommen, weil es nicht praktisch ist, die Site auf Prime FPC zu durchsuchen. Stellen Sie einfach sicher, dass Ihr Geschäft von Anfang an schnell ist .
Wo FPC nützlich ist
Wo die Vorteile von FPC zum Tragen kommen, liegt in einem stark ausgelasteten Geschäft - wo Sie wirklich viel Verkehr haben und die Caches natürlich und ständig allein durch Fußstapfen vorbereitet sind.
FPC kommt dann ins Spiel, indem der Infrastruktur-Overhead für häufig angeforderte Inhalte reduziert wird - und so die wiederholten Aufrufe des Magento-Backends reduziert werden.
Wir haben festgestellt, dass sich FPC hervorragend für die Bereitstellung eignet, wenn Sie über ein hohes Verkehrsaufkommen verfügen - nicht um die Ladezeit der Seite zu verringern, sondern um den Ressourcenverbrauch zu verringern.
Wen kümmert es, ich will immer noch kriechen
Dann haben Sie zwei Möglichkeiten
Und es gibt viele Hilfsprogramme, die ich kenne
Mage-Perftest verwenden
Sie können Ihren Shop mit Mage-Perftest ganz einfach durchsuchen, indem Sie ihn zuerst herunterladen
Definieren Sie dann den Crawl-Prozess mithilfe der Magento-Sitemap (Sie können dies anpassen, indem Sie eine Sitemap aller URLs erstellen, sofern die URLs in
<loc></loc>
Tags eingeschlossen sind). Mit dem folgenden Befehl werden alle URLs aus der Sitemap-Datei gelesen und anschließend die URLs innerhalb von 1440 Minuten (1 Tag) gecrawlt (nur PHP). Wenn der Server mehr als 20% der CPU-Auslastung aufweist oder die durchschnittliche Auslastung 2 beträgt, wird das Crawlen vorübergehend unterbrochen.Wenn Sie 1000 URLs haben, die über einen Tag gecrawlt wurden, sind dies ca. 1 Anforderung alle 86 Sekunden ~ Ziel von 0,011 RPS
quelle
Ich werde meine ganze Scherzerei für einen Blogeintrag in diesen Tagen aufheben, aber in der Zwischenzeit einen Höhepunkt an meinem kleinen Cache-Wärmer haben
wfpc
.Leistung testen
Sie können die Leistung Ihrer Magento-Site testen
./wfpc -t http://mymagentosite.com/sitemap.xml
FPC Erwärmung
Und Sie können den FPC erwärmen, der jede URL in sitemap.xml trifft.
./wfpc -w http://mymagentosite.com/sitemap.xml
Wenn Sie möchten, können Sie auch eine Verzögerung zwischen den Anforderungen festlegen. Hier ist eine Verzögerung von 1 Sekunde zwischen den Anforderungen.
./wfpc -w -d=1 http://mymagentosite.com/sitemap.xml
Der Testmodus trifft nur 10 URLs zufällig. Sobald Sie Ihre FPC erwärmt haben, können Sie den Testmodus ausführen, um herauszufinden, welchen Unterschied die FPC macht!
Gedanken
Ich persönlich halte einen Wärmer für sinnvoll ... Auf einer kleinen Site mit etwa 40 Seiten halbiert der FPC die Download-Zeit in etwa. Auf einer großen Site mit fast 40.000 Produkten, die Lesti_FPC mit APCu als Backend verwenden, verwende ich etwas mehr als 200 MB für den Cache, was ehrlich gesagt nichts auf dem 8-GB-Produktionsserver ist.
quelle