Wysoki parsetime
Ostatnie parę dni walczyliśmy z wysokimi czasami parsowania. Strony w CMS TYPO3 zawierały różne wtyczki od najprostszych uruchamianych jako USER do bardzo skomplikowanych USER_INT. Efekt był zawsze taki sam - stanowczo za wysokie czasy.
Strona się zacinała, a admPanel pokazywał dużą ilość sekund w części Page Generation. Po wielu dniach wycinania z TYPO3 wszystkiego po kolei wciąż różnice między środowiskiem developerskim a produkcyjnym były za duże.
Zwykła strona tekstowa generowała się w warunkach testowych około 20-40ms a w produkcyjnych 400ms. Po TYPO3 przyszedł czas na porównanie parametrów i ustawień serwera. W tym przypadku również nie uzyskaliśmy żadnej wskazówki. Serwery produkcyjne pracują na najnowszych procesorach 4-corowych z 12GB RAMU, gdzie maszyna testowa to stary AMD z przed 3lat.
Rozwiązanie okazało się banalne. Architekturę, którą wybraliśmy, opierała się o oddzielny serwer dla aplikacji i bazy danych. Początkowo operator zestawił połączenie między serwerami praktycznie bezpośrednio i mtr pokazywał 0% straty a pingi nie przekraczały 0.1ms. Niestety później się coś zmieniło. Pojawiły się pewne utraty pakietów a pingi wzrosły do 0.4ms. To zupełnie wystarczyło aby przy silnie obciążonym serwisie, który intensywnie korzysta z bazy danych, znacząco wydłużyć czas generacji strony.
Na szczęście problem już jest rozwiązany i wszystko działa jak należy. Obciążenie serwera również spadło do minimum. Przeciętny load nie przekracza 0.5 a poprzednio potrafił wystartować nawet do 50!!

Najnowsze komentarze
Powered by Disqus