Počas vývoja vášho eCommerce obchodu Magento výkon zvyčajne ustupuje do úzadia v porovnaní s funkčnosťou a dizajnom. Po nainštalovaní všetkých rozšírení a kontrole pravopisu na poslednej stránke cms však budete chcieť zamerať svoju pozornosť na to, aby bol váš obchod pre zákazníkov čo najcitlivejší. Je pravda, že sa oplatí mať skvelého poskytovateľa hostingu, ktorý rozumie tomu, ako optimalizovať serverové prostredie, ale existuje aj niekoľko vecí, ktoré môžete urobiť na svojom konci, aby ste minimalizovali latenciu a aby váš obchod fungoval čo najefektívnejšie.
Tip 1: Vylaďte svoj súbor .htaccess:
Súbor .htaccess Magento je predkonfigurovaný s niekoľkými vylepšeniami, aby sa vaše stránky načítali rýchlejšie, ale keďže sa hostiteľské prostredia líšia, mnohé z nich sú komentované alebo nastavené na nízke predvolené hodnoty.
1. Zapnite výstupnú kompresiu
mod_deflate je povolený na všetkých našich serveroch. Tento modul komprimuje vaše textové súbory pred ich odoslaním cez sieť. Prehliadač zákazníka ich potom pred zobrazením používateľovi automaticky dekomprimuje. Ak to chcete povoliť, zrušte odkomentovanie príslušných riadkov takto:
[php]
############################################
## povoliť kompresiu súborov poskytovaných Apache
## http://developer.yahoo.com/performance/rules.html#gzip
# Vložte filter na všetok obsah
SetOutputFilter DEFLATE
# Vložiť filter iba na vybrané typy obsahu
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript
# Netscape 4.x má nejaké problémy…
BrowserMatch ^Mozilla/4 gzip-only-text/html
# Netscape 4.06-4.08 má ďalšie problémy
BrowserMatch ^Mozilla/4\.0[678] no-gzip
# MSIE sa maskuje ako Netscape, ale je to v poriadku
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# Nekomprimujte obrázky
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
# Uistite sa, že servery proxy nedoručujú nesprávny obsah
Pripojenie hlavičky Vary User-Agent env=!dont-vary
[/php]
2. Povoľte uplynutie ďalekej budúcnosti
Niektorý obsah, ako sú obrázky a css, sa tak často nemenia. V prípade obsahu, ako je tento, môžete zlepšiť výkon tým, že využijete správanie webového prehliadača ukladania do vyrovnávacej pamäte. Nastavenie hlavičiek s ďalekým uplynutím platnosti umožní webovým prehliadačom ukladať obrázky a iné statické súbory do vyrovnávacej pamäte, takže pri ďalších návštevách ich nebude potrebné znova sťahovať.
[php]
############################################
## Pridať predvolenú hlavičku Expires
## http://developer.yahoo.com/performance/rules.html#expires
ExpiresActive On
Platnosť vyprší Predvolený „prístup plus 1 rok“
[/php]
Tip 2: Obnovte svoje indexy
Magento uchováva indexy niektorých vašich údajov v špeciálnych tabuľkách, aby boli dotazy efektívnejšie. Keď ste vyvíjali svoj obchod, pridávali ste a odstraňovali produkty, kategórie, adresy URL atď. Táto aktivita spôsobuje, že vaše indexy majú medzery a neaktuálne údaje. Keď budete pripravení na uvedenie do prevádzky, budete chcieť obnoviť všetky svoje indexy, aby ste mohli znova zostaviť tieto tabuľky.
Existujú dva spôsoby, ako to urobiť: z hlavného panela správcu alebo z príkazového riadku. Ak chcete znova vytvoriť svoje indexy z panela správcu Magento, prejdite do časti Systém > Správa indexov, vyberte položku Všetko, vyberte možnosť Preindexovať údaje a potom kliknite na tlačidlo Odoslať.
Je tiež možné prebudovať vaše indexy z príkazového riadku pomocou nástrojov shellu, ktoré sú súčasťou Magento verzie 1.4 a vyššej. Tieto nástroje sa nachádzajú vo vašom adresári MAGENTO_ROOT/shell/ a možno ich spustiť volaním rozhrania príkazového riadku php:
[bash]$ php -f indexer.php pomoc
Použitie: php -f indexer.php — [options]
–status Zobraziť stav indexera(ov).
–mode Zobraziť indexer(y) Indexový režim
–mode-realtime Nastavte typ indexového režimu „Aktualizovať pri uložení“
–manuálny režim Nastavte typ indexového režimu „Manuálna aktualizácia“
–reindex Reindexovať údaje
info Zobraziť povolené indexátory
reindexall Preindexovanie údajov všetkými indexátormi
pomoc Táto pomoc
Čiarkami oddelené indexovacie kódy alebo hodnota “all” pre všetky indexátory[/bash]
Ako vidíte, rovnakú funkcionalitu, ktorú možno nájsť na paneli Správca v časti Správa indexov, nájdete tu. Ak chcete znova vytvoriť všetky svoje indexy, zadajte:
[bash]$ php -f indexer.php reindexall[/bash]
Tip 3: Zapnite ukladanie do vyrovnávacej pamäte
Keď vyvíjate svoju stránku, pravdepodobne ste vypli natívnu vyrovnávaciu pamäť Magento, aby ste mohli okamžite vidieť zmeny svojho dizajnu. Teraz, keď ste dokončili svoju návrhársku prácu, nezabudnite znova zapnúť vyrovnávaciu pamäť. To zvyšuje výkon 5-10 krát v porovnaní s vypnutou vyrovnávacou pamäťou.
Zaujímalo vás niekedy, čo sa ukladá do vyrovnávacej pamäte? Tu je prehľad:
- Konfiguračné súbory (xml)
- rozloženia (xml)
- Bloky HTML pre hornú navigáciu a pätu
- Preklady uložené ako pole
- Zhromažďovanie údajov pre webové stránky, obchod a zobrazenie obchodu
Tip 4: Použite funkciu plochého katalógu
Magento vo veľkej miere využíva model EAV na ukladanie údajov o zákazníkoch, produktoch a kategóriách vo svojej databáze. Hlavnou výhodou modelu EAV je, že umožňuje úplne rozšíriteľné atribúty pre tieto objekty. Hlavnou nevýhodou je, že tieto atribúty sú uložené vo viacerých tabuľkách a nie v jednej veľmi veľkej tabuľke. To znamená, že SQL dotazy musia byť dlhšie a zložitejšie. Pomocou funkcie Flat Catalog vytvoríte nové tabuľky, kde každý riadok obsahuje všetky potrebné údaje o produkte alebo kategórii. Môžete si predstaviť, že to robí SQL dotazy oveľa efektívnejšie.
Plochý katalóg pre kategórie by sa mal používať pre všetky obchody Magento. Plochý katalóg produktov začne vykazovať výkonnostnú výhodu až po dosiahnutí bodu 1 000 SKU. Oboje môžete povoliť na zadnej strane:
- Prejdite do časti Systém > Správa indexov a uistite sa, že sú zostavené a pripravené položky „Falt Data“ a „Category Flat Data“.
- Prejdite do časti Systém > Konfigurácia > Katalóg > Rozhranie a vyberte možnosť „Áno“ pre položku Použiť kategóriu plochého katalógu a (ak je to potrebné) Použiť produkt plochého katalógu.
Tip 5: Povoľte kompilátor Mage
Toto je nová funkcia predstavená vo verzii 1.3.2.xa spojená s verziou 1.4.x, hoci je stále uvedená ako „beta“. Aby ste pochopili, ako môže táto funkcia pomôcť zlepšiť výkon vašej lokality, musíte pochopiť, čo sa stane, keď prehliadač požiada o adresu URL z Magento. V predvolenom nastavení a pre každú požiadavku bude magento hľadať v nasledujúcich adresároch v nasledujúcom poradí:
[text]app/code/local/
aplikácia/kód/komunita/
app/code/core/
lib/[/text]
To je to, čo vám, vývojárom, dáva úžasnú schopnosť prepísať a rozšíriť Magento podľa vašich predstáv. Ak chcete zmeniť alebo upraviť nejakú triedu, stačí vložiť kód do app/code/local/ a Magento ho najprv nájde a spustí namiesto definície jadra v app/code/core.
Akokoľvek je to skvelé, výsledkom je veľké množstvo diskových I/O pre každú požiadavku. To je miesto, kde prichádza Mage Compiler. V podstate skopíruje všetky definície tried a kód nájdený v app/code do jedného adresára: include/src/. Potom sa zbaví všetkých ostatných zahrnutých ciest a nahradí ich jednou. Týmto spôsobom potrebuje Magento pre každú požiadavku hľadať iba jeden adresár namiesto štyroch.
Ak chcete, aby to fungovalo správne, je dôležité skompilovať po dokončení inštalácie modulov a vývoja vlastného kódu. Aj toto je možné povoliť na paneli správcu alebo na príkazovom riadku. V Magento Admin prejdite na Systém > Nástroje > Kompilácia a kliknite na Spustiť proces kompilácie. Ak chcete spustiť z príkazového riadku, použite nasledujúcu syntax (skript sa tiež nachádza v adresári MAGENTO_ROOT/shell):
[php]$ php -f pomoc kompilátora.php
Použitie: php -f kompilátor.php — [options]
stav Zobraziť stav kompilácie
kompilovať Spustiť proces kompilácie
vymazať Zakázať kompilátor vrátane cesty a Odstrániť kompilované súbory
povoliť Povoliť cestu zahrnutia kompilátora
vypnúť Zakázať cestu zahrnutia kompilátora
pomoc Táto pomoc[/php]
Tip 6: Využite paralelné sťahovanie na zrýchlenie vykresľovania stránok
Väčšina webových prehliadačov obmedzuje počet súbežných stiahnutí na približne 4 pre každú jedinečnú adresu URL nájdenú na webovej stránke. Ak všetok váš obsah pochádza z rovnakého hostiteľa, toto obmedzenie môže spôsobiť zbytočné oneskorenia pri vykresľovaní stránky. Prehliadač môžete oklamať, aby stiahol váš obsah paralelne pomocou nastavení Pointer Domains a základnej adresy URL Magento.
Povedzme, že váš úžasný obchod s elektronickým obchodom sa nachádza na adrese http://www.example.com/. Webové adresy vašich médií, vzhľadu a javascriptu budú preto http://www.example.com/media, http://www.example.com/skin/ a http://www.example.com/js/, resp. Čo chcete urobiť, je vytvoriť rôzne názvy hostiteľov pre vaše adresy URL médií, vzhľadu a js, ktoré ukazujú na rovnakú inštaláciu Magento ako hostiteľ www.
Môžete to urobiť na ovládacom paneli Siteworx v časti Funkcie hosťovania > Domény > Ukazovateľské domény. Vytvorte domény ukazovateľa s názvom media.example.com, js.example.com a skin.example.com. Alebo môžete jednoducho vytvoriť static.example.com. Potom sa prihláste na svoj panel Magento Admin a prejdite do časti Systém > Konfigurácia > Web a zmeňte zabezpečené a nezabezpečené základné adresy URL pre médiá, vzhľad a možnosti js na domény ukazovateľa, ktoré ste práve vytvorili. Vaša konečná konfigurácia by mala vyzerať takto:
Základná adresa URL: http://www.example.com/ Základná adresa URL odkazu: http://www.example.com/ Základná adresa URL vzhľadu: http://skin.example.com/skin/ Základná adresa URL média: http:/ /media.example.com/media/ Základná webová adresa JavaScriptu: http://js.example.com/js/
Teraz prejdite na načítanie stránky. Ak sledujete stavový riadok, všimnete si, že váš statický obsah, ako sú obrázky a javascript, sa sťahuje z domén, ktoré ste práve vytvorili, zatiaľ čo hlavný kód HTML sa sťahuje z adresy www. V skutočnosti sú všetky umiestnené na tom istom serveri, ale výhoda je na strane klienta a oni to nemusia vedieť.