Optimalizácia rýchlosti webu Gastrokuchyne.sk

Gastrokuchyne.sk je obchod s gastro zariadením a doplnkami pre profesionálov v oblasti gastronómie a stravovania.

Zvýšenie návštevnosti po reklame v televízii

Po tom ako sa Gastrokuchyne stali partnerom televíznej šou Na nože, zaznamenal web www.gastrokuchyne.sk veľkú návštevnosť.

Aj keď si zákazník u nás zriadil menežované VPS s výkonom 10 CPU a 10GB RAM, stalo sa, že serveru chýbal výkon a počas dňa bol preťažený až tak, že neprijímal ďalšie požiadavky. 

Ako vyriešiť obrovský nárast návštevnosti?

Riešením bolo znova navýšiť výkon, alebo sa pozrieť na web hlbšie a nájsť iné riešenie pre zlepšenie výkonu.

Web využíval LiteSpeed Cache plugin a aj Redis objektovú cache, takže tieto najľahšie "tromfy" už boli použité. Tak sme si teda "vysúkali rukávy" a začali sme dôkladne sledovať aktivitu na webe.

 

Analýza wordpress-u a následná optimalizácia

Identifikovali a opravili sme nasledovné nedostatky:

1. Zlé riešnie cron úloh vo wordpress-e

WordPress spúšťa pravideľné naplánované úlohy prostredníctvom wp-cron.php súboru. Keďže len málo bežných užívateľov vie, čo je Cron a ako si ho v hostingu nastaviť, vývojári WordPressu sa rozhodli, že tento krok spravia za užívateľov a starajú sa o spustenie tohto súboru oni. To znamená, že počas toho, ako návštevníci prechádzajú po webe, sa v určitých intervaloch spustí na pozadí týchto požiadaviek aj wp-cron.php.

Nehospodárne spúšťanie WP-CRON

Avšak deje sa to veľmi nehospodárne, pretože sa spustí nový request na pozadí a teda celý mechanizmus webserver + php proces. Toto samozrejme predĺži vykonávanie toho prvého requestu, ktorý spravil užívateľ.

Pri malých weboch to nie je problém ale pri weboch s veľkým množstvom podstránok to už problém je a treba s tým niečo robiť. V tomto prípade sme teda zakázali vykonávanie wp-cron.php počas bežných requestov a presunuli sme túto funkčnosť do skutočných Cron úloh domény.

Vtedy sa PHP spúšťa priamo v systémovom príkazovom riadku a teda neblokuje web server ani PHP vlákna vyhradené pre návštevníkov webu. Mimochodom, toto sa dá spraviť jedným klikom v našom WebAdmine.

2. Zablokovanie nežiaducich requestov

Všimli sme si, že väčšinu requestov na web tvoria boty, konkrétne Yandex a AmazonBot. Tieto sme blokli pomocou robots.txt a aj cez .htaccess na základe User-Agent hlavičky.

3. Zabudnuté Cron úlohy od starého poskytovateľa webhostingu

Web bol k nám premigrovaný od iného webhostingového poskytovateľa. Všimli sme si ale, že z IP adries tohto poskytovateľa stále smerujú requesty aj k nám. Išlo o zabudnuté Cron úlohy, ktoré dokonca ani neboli aktuálne. Niektoré z nich trvali až 90 sekúnd, čo pri takomto webe nie je nič nezvyčajné, avšak počas tejto doby je blokované jedno PHP vlákno. Tak isto ako pri wp-cron.php, tak aj tu je efektívnejšie použiť systémový Cron a php spúšťať ako z príkazového riadku.

Pokles spotrebovaného výkonu na serveri

Posúďte sami, na nasledovných grafoch vidno pokles spotrebovaného výkonu na serveri a tiež pokles používaných PHP vlákien. Toto všetko spôsobilo to, že má server dostatočnú rezervu na nárazovú návštevnosť, čo sa pri tomto webe očakáva.

Potrebujete pomoc? alebo riešenie na mieru?

On-line Chat

+421 (0)222 112 111