Majsterkowo przyspiesza!

Majsterkowo przyspiesza!

Cześć,
od czasu do czasu dostawałem od Was sygnały, że Majsterkowo potrafiło nieco zamulić. O ile goście problemu nie odczuwali, bo dostawali stronę z cache, o tyle zalogowani użytkownicy musieli czasami dosyć długo czekać na wczytanie całego Majsterkowa.

Z czego wynikał problem? Ze słabej optymalizacji całego serwisu. I nie ukrywam, że była to głównie moja wina – bo o ile w PHP potrafię napisać w sumie wszystko, co tylko chcę, o tyle nie zawsze wychodzi mi to tak optymalnie, jak by mogło być ;) Początkowo kiepska optymalizacja nie była aż takim problemem, ale wraz ze wzrostem ilości zalogowanych użytkowników problem stawał się coraz mocniej odczuwalny.

Po konsultacji z ekipą naszego hostingu – Zenbox.pl, postanowiliśmy przenieść całe Majsterkowo na osobną, customową maszynę, aby móc lepiej zdiagnozować i usunąć wąskie gardło będące powodem zamuleń. Po kilku dniach testów wszystko było już jasne i można było przystąpić do prac optymalizacyjnych :)

Optymalizacja nie była taka prosta, jak początkowo mi się wydawało, bo musiałem w zasadzie przepisać 80% kodu odpowiedzialnego za różne funkcje Majsterkowa (poczekalnia, system ocen, system powiadomień, itd.), ale ostatecznie dosyć mocno udało się zwiększyć wydajność całego serwisu. W chwili pisania tego artykułu czas generowania strony po stronie serwera udało się zbić z ~3 sekund do ~0,3 – 0,6 sekundy (10x szybciej!), co przekłada się na kolosalną różnicę, jeżeli chodzi o komfort korzystania ze strony.

Dużo lepszy wynik zawdzięczamy także optymalizacji samego serwera i baz danych, którą support Zenboxa wykonał stricte pod kątem Majsterkowa. I za to należą się im wielkie podziękowania, bo mogli mnie zlać tekstem “Po naszej stronie jest wszystko w porządku”, ale zamiast tego poświęcili wiele godzin na pomoc z optymalizacją całego serwisu – mimo tego, że nie należało to do ich obowiązków!

Na pewno nie jest to jeszcze koniec prac optymalizacyjnych, ale na razie wynik można uznać za zadowalający. W najbliższym czasie postaram się jeszcze poprawić wagę całej strony, żeby wczytywała się szybciej na słabszych łączach. Mam nadzieję, że uda mi się z tym uporać w ciągu najbliższych dwóch tygodni.

A tymczasem będę miał dla Was jeszcze kilka niespodzianek, ale to już temat na osobny post na blogu… ;)

Podziel się:

6 komentarzy do “Majsterkowo przyspiesza!

    • Niech zalewają ;) Jeszcze nie słyszałem o przypadku, żeby kogoś spławili, bo tak na prawdę, to na optymalizacji korzystają obie strony – zarówno klient, jak i sam hosting, który może przeznaczać mniej mocy na utrzymane strony klienta :)

      Odpowiedz
  • W wolnej chwili napisał byś jakiegoś albo kilka :) technicznych postów co i jak optymalizowałeś w wordpresie. Jak diagnozowałeś “wąskie gardła”. Myśle że mogo by wyjść całkiem ciekawie i pewnie wiele osób mogło by skorzystać z wyniesionego doświadczenia.

    Odpowiedz
    • Nic odkrywczego chyba nie zrobiłem ;) Analizowałem krok o kroku swój kod i szukałem miejsc, które mogą zużywać więcej zasobów. Pozbyłem się także części funkcji, które generowały coś w czasie rzeczywistym, chociaż wcale nie było takiej potrzeby (bo np. dane zmieniały się tylko raz na jakiś czas).

      Do kosza poleciało także kilka kiepskich wtyczek, które zastąpiłem swoimi rozwiązaniami.

      Więcej magii wykonał support zenboxa (optymalizacja serwera i baz danych), ale to już nie moja bajka :)

      Odpowiedz

Odpowiedz

anuluj

Masz uwagi?