
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......
Czytaj dalej...