Magento ist eine erstaunlich leistungsstarke E-Commerce-Plattform. In dieser Miniserie lernen wir, wie Sie mit der Plattform beginnen, die Terminologien kennenlernen, ein Geschäft und alle damit verbundenen Aspekte einrichten und schließlich lernen, wie Sie es anpassen können, um es zu unserem ganz eigenen zu machen.
In diesem letzten Teil werden wir uns mit einer der größten Beschwerden befassen, die Menschen mit Magento haben: seine Leistung. Wir werden eine Reihe verschiedener Methoden prüfen, die Sie anwenden könnten, um die Plattform erheblich zu steigern. Aufgeregt? Lass uns anfangen!
In den letzten Abschnitten haben wir uns eingehend mit der Zusammenstellung von Magento-Themen, den Komponenten und dem Zusammenwirken von Magento-Themen beschäftigt, um ein funktionierendes Thema zu erstellen und einen Überblick über eine Reihe von von Magento verfügbaren API-Methoden zu erhalten. Außerdem haben wir uns Schritt für Schritt ausführlich mit dem Magento Multi Store beschäftigt, wie er Ihnen helfen kann und wie Sie alles einrichten können.
Die Leistung von Magento ist ein Bereich, über den sich Benutzer regelmäßig beschweren. Nicht viel davon ist wahr, aber es gibt viele verschiedene Möglichkeiten, die Leistung zu verbessern. Heute werden wir nach Wegen suchen, um die Leistung Ihrer Magento-Installation drastisch zu verbessern. Ich weiß, dass es sich interessant anhört, und Sie wollen unbedingt anfangen.
Kurzer Hinweis bevor wir anfangen. Die Mehrzahl der hier genannten Optimierungen und / oder Optimierungen werden nur die folgenden sein: Erwähnungen. Sie sollten sich wahrscheinlich um die Implementierung kümmern, da für die Implementierung selbst ein ausreichend großes Tutorial erforderlich ist. Lass uns damit anfangen!
Dies ist der kritischste Aspekt Ihrer Magento-Installation. Magento kann auf einem gemeinsam genutzten Host ausgeführt werden, aber Achtung, die Leistung ist nicht optimal. Magento benötigt wirklich mehr Leistung, als ein Lauf der Mühle, die ein gemeinsam genutzter Host bieten kann, und es wird sich wirklich zeigen, wenn Sie es auf einem laufen lassen.
Ein VPS oder ein dedizierter Server ist am besten, wenn es um Magento geht. Denken Sie daran, dass Sie den Speicher nicht auslassen, weil Sie ihn benötigen. Viel davon.
Magento einige Teile seiner Codebasis zwischenspeichern zu lassen, ist eine der wenigen Maßnahmen, die Sie tun sollten, wenn Sie mit der Optimierung einer Installation beginnen. Sie müssen die Zwischenspeicherung nicht für alles aktivieren, aber ich würde Layouts vorschlagen und die HTML-Ausgabe als grundlegend blockieren. Wenn diese Zwischenspeicherung aktiviert ist, können Sie abhängig von der Größe der Site erwarten, dass Ihre Ladezeit drastisch abnimmt.
Denken Sie daran, dass Sie die Zwischenspeicherung während der Entwicklung deaktivieren müssen. Wenn Sie Änderungen an Ihrem Code vornehmen und im Frontend nicht berücksichtigt werden, ist das Zwischenspeichern der Grund. Dies ist ein offensichtlicher Punkt, aber es war die Ursache für so viel Haarsträhnen während der Entwicklung.
Wenn Sie die Zwischenspeicherung aktiviert haben, können Sie jetzt einen Schritt weiter gehen. Magento speichert Informationen in einem dateibasierten Speichersystem. Dies ist zwar der zuverlässigste Weg, aber es gibt oft Zeiten, in denen Sie Geschwindigkeit pur wollen. In diesen Fällen sollten Sie die Bereitstellung eines speicherbasierten Caching-Systems prüfen.
Es gibt eine Reihe von Optionen, mit denen die Leute großen Erfolg hatten. eAccelerator ist heutzutage mein Werkzeug der Wahl. Denken Sie daran, es mit ausreichend Speicher zu konfigurieren, oder es müssen möglicherweise Daten in den ungünstigsten Momenten gelöscht werden.
Wenn Sie sich auf einem VPS oder einem dedizierten Server befinden, deaktivieren Sie nicht unbedingt erforderliche PHP-Erweiterungen. Magento benötigt nur eine Handvoll wie PDO_MySQL, also können Sie die überflüssigen deaktivieren.
Darüber hinaus gibt es zwei Verbesserungen, die zu einer besseren Leistung führen.
Standardmäßig ist PHP so konfiguriert, dass es nur wenig Speicherplatz verwendet. Sie müssen dies erhöhen. Sie können dies tun, indem Sie der Konfigurationsdatei die folgende Zeile hinzufügen:
php_value memory_limit 512M
Die zweite ist das Tweaking realpath_cache Wert auf so.
realpath_cache_size = 1M realpath_cache_ttl = 86400
Dies ist eher ein allgemeines Thema als ein Magento-spezifisches, daher werde ich mich hier kurz fassen. Es gibt eine Reihe von Apache-Modulen, die Sie aktivieren und / oder einrichten müssen, um die Leistung Ihres Shops zu verbessern.
Das erste ist mod_deflate. Dadurch kann die Ausgabe des Servers drastisch komprimiert werden, was zu einer besseren Leistung führt. Definitiv ein Modul, das aktiviert werden muss.
Zweitens schauen Sie in mod_expires. Dieses Modul ermöglicht es dem Browser, bestimmte Ressourcen für eine bestimmte Zeit zwischenzuspeichern, sodass wiederkehrende Besucher ein schnippigeres Erlebnis haben.
Und schlussendlich, KeepAlives. Dies ermöglicht dauerhafte Verbindungen, indem langlebige Sitzungen erstellt werden, mit denen mehrere Anforderungen über dieselbe TCP-Verbindung geleitet werden können. Dies ist hilfreich, wenn sich auf Ihrer Seite eine Reihe von kleinen Assets befindet.
Denken Sie daran, Ihre Indizes für die Tabellen regelmäßig über das Back-End neu zu erstellen. Dies ist ein wesentlicher Punkt, der zu einer spürbaren Leistungssteigerung für Ihren Shop führt.
Denken Sie daran, dass der Aufbau der Indizes eine sehr kostspielige Angelegenheit ist, die Ressourcen betrifft und außerhalb der Öffnungszeiten erfolgen sollte. Wenn Sie dies selbst bei moderaten Aktivitäten in Ihrem Geschäft tun, wird die Leistung und Reaktionsfähigkeit des Geschäfts erheblich beeinträchtigt.
Der PHP-Interpreter muss jede Datei von der Festplatte lesen und bei jeder Anforderung kompilieren. Dies ist extrem CPU-hungrig, wenn Sie die Größe von Magento in Betracht ziehen. In diesen Fällen wird ein PHP-Beschleuniger wie APC oder eAccelerator dringend empfohlen.
Tools wie diese steigern die Leistung Ihres PHP-Codes erheblich, indem Sie Ihren Code in Byte-Zwischencode zwischenspeichern. Er wird bereitgestellt, anstatt den Interpreter um eine Kompilierung bitten zu müssen.
Dies ist eine Erweiterung des etwas oben erwähnten Punktes. Magento speichert viele Informationen [nicht nur die DB] auf der Festplatte des Servers, die, wie Sie wissen, das langsamste Glied in der Kette ist. Dazu gehören Caches, Sitzungsinformationen usw. Wenn Sie die Leistung in diesem Bereich verbessern möchten, können Sie am besten ein speicherbasiertes Dateisystem implementieren, um sicherzustellen, dass alle diese Daten im Arbeitsspeicher gespeichert werden und nicht kostspielige Aufrufe der Festplatte erforderlich sind.
Da wir hier keinen Platz haben, zeige ich Sie einfach in die richtige Richtung. Sie müssen eine tmpfs-Partition einrichten, die sich um Ihre Sitzungs- und Cache-Verzeichnisse kümmert. Diese finden Sie unter /var/www/domain.com/var/sessions/ und /var/www/domain.com/var/cache/ beziehungsweise.
Das Flat-Front-End-Katalogmodul erstellt zusätzliche Datenbanktabellen zum Speichern von Daten in einem flachen / linearen Format. Dieses Modul ist sowohl für Kategorien- als auch für Produktdaten verfügbar. Sie können es also unabhängig von Ihrem Anwendungsfall unabhängig aktivieren.
Die Aktivierung dieses Moduls wird nur für große Geschäfte empfohlen. Geschäfte mit einem kleinen Katalog sollten sich definitiv fernhalten, da dies bei einem Leistungsschub möglicherweise nicht ausreicht, um die Nutzung zu rechtfertigen, und die Leistung tatsächlich beeinträchtigen kann. Treffen Sie hier eine sorgfältig überlegte Entscheidung.
Magentos Backend ist wesentlich ressourcenintensiver als das Frontend, da es viel mehr Informationen verarbeiten muss. Sobald Ihr Geschäft einen bestimmten Schwellenwert in Bezug auf die Anzahl der Produkte, beispielsweise 5.000, erreicht hat, beginnt der Server wirklich zu besteuern.
Ein dedizierter Admin-Server kann dazu beitragen, dass das Admin-Panel die erforderlichen CPU-Zyklen erhält, was sich negativ auf die Leistung der restlichen Site auswirkt.
Das standardmäßige Magento-Design ist ein guter Ausgangspunkt, ist aber nicht der effizienteste. Lass mich etwas näher ausführen. Das Standarddesign ist so konzipiert, dass es alle Funktionen von Magento zeigt, und bündelt somit natürlich alle Whizz-Bang-Funktionen. Denken Sie daran, dass Magento eine Seite erstellt, indem das von uns angegebene Layout analysiert wird. Daher hängt die Generierungszeit der Seite direkt von der Anzahl der Blöcke ab, die Sie auf einer Seite verwenden.
Vermeiden Sie daher beim Erstellen Ihres eigenen Designs unnötig komplexe Layouts, vereinfachen und / oder kombinieren Sie die kleineren Blöcke, um die CPU-Zyklen zu reduzieren, die zum Rendern des Seitencodes erforderlich sind.
Magento verfügt über ein elegantes System zum programmgesteuerten Ein- und Ausschalten von Stylesheets und JavaScript-Dateien in Designs. Viele Theme-Autoren scheinen dieses System vollständig zu umgehen, indem sie diese Elemente manuell in die HTML-Vorlage integrieren. Das ist falsch.
Der richtige Weg zum Einschließen dieser Assets wird unten gezeigt:
Durch Verwendung des obigen Codes in den Layoutdateien fügt Magento die JS-Dateien in einer einzigen Datei zusammen und wird in einer einzigen Anforderung an den Browser geliefert.
Auch hier gelten die Regeln zur Optimierung normaler Sites oder Anwendungen. Browser begrenzen normalerweise die Anzahl der Downloads von einer Domäne auf 2 bis 5, was beim Laden eines medienreichen Themas mit einer Reihe kleiner Assets sehr einschränkend ist. Es gibt eine Reihe von einfachen Möglichkeiten
Die erste und einfachste Sache kennen Sie alle: Sprites. Mit Sprites können Sie die Anzahl der von Ihrem Design generierten Anforderungen minimieren.
Dieser Ansatz funktioniert möglicherweise nicht in allen Fällen. Was ist, wenn Ihr Theme ein paar nette Skripte, Videos und Whatnots hat? Diese sollten das Laden der restlichen Seite nicht blockieren. Erstellen Sie in diesen Fällen einfach eine Unterdomäne für statische Assets und verweisen Sie Ihre Magento-Installation auf die Ressource.
Die Protokollierung ist wichtig, aber auch teuer, da auf die Festplatte geschrieben werden muss. Magento ist im Allgemeinen sehr gesprächig, wenn es ums Logging geht, und bald werden Sie tief in Protokolldateien stecken, von denen die meisten nicht benötigt werden.
Die Lösung hier ist, alle außer den wesentlichen Teilen zu deaktivieren. Haben Sie langsame Abfragen für die Protokollierung auf Ihrem Produktionsserver aktiviert? Schalten Sie es aus, gleich jetzt! Langsame Abfragen müssen lange vor der Bereitstellung untersucht und behoben werden. Es hat seinen Platz in einem Entwicklungsserver, nicht in einem Produktionsserver.
Dies ist ein weiterer wichtiger Tipp, den viele Menschen immer wieder vergessen. Egal, ob es sich um die Version von PHP, MySQL oder Magento selbst handelt, die neueren Versionen bieten eine beträchtliche Geschwindigkeit und Stabilität, die Sie sich nicht leisten können.
Speziell im Fall von Magento behebt sogar jedes Mini-Update eine Reihe von Leistungsproblemen und Fehlerbehebungen, sofern der Zweig als stabil bezeichnet wird!
Magento verfügt über ein schickes Compilermodul, das eine Beschleunigung von 25% bis 50% verspricht. Wie der Name vermuten lässt, kompiliert dieses Modul alle Magento-Dateien und führt so zu einer besseren Leistung.
Beachten Sie, dass sich dieses Modul noch in der Beta befindet und nur 1.3x-Builds unterstützt. Dies sollte in Kürze fertig sein. Denken Sie auch an diesen Punkt.
Fooman Speedster ist eine leistungsstarke Erweiterung, die Ihrem Geschäft eine schöne Leistungssteigerung verleiht. Es funktioniert, indem Sie Ihre JavaScript- und CSS-Dateien kombinieren, minimieren, komprimieren und zwischenspeichern. Darüber hinaus ermöglicht es die GZIP-Komprimierung für den Rest des Geschäfts.
Alles in allem bedeutet dies, dass weniger Daten gesendet werden und weniger Anfragen gesendet werden. Es funktioniert mit allen wichtigen Magento-Versionen und ist definitiv ein Muss für jeden Laden.
Eine andere Sache, die Sie regelmäßig tun sollten, um die Leistung zu verbessern. Sie müssen Ihre Datenbank ggf. reparieren und anschließend optimieren. Sie können dies über das CPanel Ihres Hosts, über phpMyAdmin oder einfach über Shellbefehle ausführen. Hier ist ein schneller Link, der Sie mit phpMyAdmin durch den Prozess führt.
Und wir sind fertig! Heute haben wir uns verschiedene Möglichkeiten zur Verbesserung der Leistung von Magento angesehen. Hoffentlich war das für Sie nützlich und Sie fanden es interessant. Ich bin mir sicher, dass ich hier einige Punkte verpasst habe, also zögern Sie nicht, die Kommentare mit den von Ihnen verwendeten Tipps zu kommentieren.
Fragen? Schöne Dinge zu sagen? Kritikpunkte Schlagen Sie den Kommentarbereich an und hinterlassen Sie einen Kommentar. Glückliche Kodierung!