neděle 6. února 2011

Magento - optimalizace rychlosti

Na našem novém serveru jsem se rozhodl zrychlit e-shopy klientů. Strávil jsem tedy několik dní googlováním, testováním a kompilací různých cache systémů pro php. Zkoušel jsem XCache, APC, Memcached, Zend Optimizer a eAccelerator. Memcached jsem zavrhl pro nestabilitu při použití s Magentem (občas to žuchlo) ačkoli jí používám pro jiné ZF aplikace bez problémů. Na eAccelerator jsem našel na netu spoustu negativních reakcí. XCache byla ok, ale po 2dnech provozu se mi kousla (nevím proč). Zend Optimizer ok, ale málo výkonný a tak zbylo APC.
Pro backend cache jsem v magnetu nastavil v /app/etc/local.xml
<config>
    <global>
.....
    <cache>
        <backend>apc</backend>
        <prefix>mujprefix_</prefix>
    </cache>

.....
mujprefix_ měním pro každý magento shop, jinak by se mi data jednotlivých shopů míchala (než jsem na to přišel, stálo mě to dost trápení >:-)))
Druhá akce byla vytvoření  tmpfs adresáře pro ukládání sesions apod.
Do fstab jsem si doplnil  
tmpfs /var/vhosttmp tmpfs size=500M,mode=0777 0 0 
a poté adresář namountoval, v něm jsem potom vytvořil samostatný adresář pro každý shop a na tento potom link z root adresáře prezentace místo fyzického var. Sessions se tedy handlujou v paměti místo na disku.
Nárůst výkonu je opravdu fantastický homepage se z původních průměrných 964ms generuje za 325ms. Na dalších stránkách je to podobné, nebo ještě lepší.
Konečně jsem s Magentem spokojen, s takovýmhle nastavením je to bezkonkurenční shop. Právě se chystám rozjet v něm aukční prodej >:-))....

1 komentář:

Honza Pavel řekl(a)...

Ahoj, celkem neúspěšně sháním kvalitní hosting pro Magento. Neuvažoval jsi o poskytování tvého hostingu veřejně?