Ogłoszenie |
Forum archiwalne, nie można zakładać nowych kont.
|
Analiza wydajności |
Wersja do druku |
tilk
Dołączył: 24 Lip 2003 Status: offline
Grupy: Alijenoty
|
Wysłany: 15-12-2007, 12:30 Analiza wydajności
|
|
|
Rośniemy coraz bardziej, baza jest coraz obszerniejsza, prędzej czy później natkniemy się na problem obciążenia. A że lepiej później, niż wcześniej, przyjrzałem się, co właściwie się dzieje pod maską.
Na początek dobra wiadomość - system cache, który był częścią silnika T-A od zawsze, sprawdza się nadzwyczaj dobrze. Większość trafień na intensywnie używane strony jest odczytywanych z cache'u, co jest zwykle kilka, kilkanaście razy szybsze, niż generowanie z bazy. A czasem nawet...
I tu jest zła wiadomość - setki razy. System cache znakomicie ukrył przed nami i czytelnikami istnienie kilku poważnych korków wydajnościowych.
Pierwszy z nich, powodujący m.in. ekstremalnie powolne generowanie listy ostatnio dodanych recenzji, był spowodowany błędnym działaniem optymalizatora bazy danych, prawdopodobnie z powodu nieaktualnych danych statystycznych o bazie. Aby uniknąć takiego problemu później, wprowadzę automatyczne obliczanie danych statystycznych - powiedzmy, co tydzień.
Drugi okazał się znacznie gorszy - generowanie listy najnowszych komentarzy na stronie głównej trwało... kilkanaście sekund!!! Tutaj wystarczyło nieco zmienić formę zapytania, aby optymalizator lepiej sobie poradził.
Powyższe dwie zmiany skróciły dziesięciokrotnie czas generowania strony tytułowej z bazy. Nieźle.
Największy korek jest zaś na indeksowyszukiwarce. Tutaj liczby są tak potworne, że nawet nie będę ich przytaczał. Poprawienie sytuacji tutaj niestety będzie dość trudne, ale ze względu na to, że właśnie tu idzie najwięcej czasu obliczeniowego - konieczne. |
|
|
|
|
|
tilk
Dołączył: 24 Lip 2003 Status: offline
Grupy: Alijenoty
|
Wysłany: 15-12-2007, 13:36
|
|
|
Jednak problem na indeksowyszukiwarce nie był taki straszny. Dodanie jednego brakującego indeksu poprawiło efektywność stukrotnie! Pwn3d!
Ponieważ pozostałe zidentyfikowane problemy są już niewielkie, mogę z przyjemnością poinformować, że T-A (i przy okazji również T-M) śmiga jak pijany przeciąg i jest gotowe na przyjęcie dziesiątki, a może i setki razy większego obciążenia, niż ma teraz. Więc na jakiś czas będziemy mieli spokój :) |
|
|
|
|
|
IKa
Dołączyła: 02 Sty 2004 Status: offline
Grupy: WIP
|
Wysłany: 15-12-2007, 13:39
|
|
|
A czy to nie spowodowało czasem niewyświetlania komentarzy na TM? Mam komunikat "Brak komentarzy" także. |
|
|
|
|
|
tilk
Dołączył: 24 Lip 2003 Status: offline
Grupy: Alijenoty
|
Wysłany: 15-12-2007, 15:08
|
|
|
IKa napisał/a: | A czy to nie spowodowało czasem niewyświetlania komentarzy na TM? Mam komunikat "Brak komentarzy" także. |
Zbyt szybko się cieszyłem.
Opracowanie poprawnej, wydajnej wersji zapytania wymagało wielogodzinnego zaawansowanego kung-fu z optymalizatorem bazy. W końcu się udało, ale to, co wyszło, to niesamowity potworek... Niesamowicie szybko działający potworek, chciałbym dodać - 100 milisekund a 15 sekund to jednak olbrzymia różnica.
Chyba teraz już można się cieszyć ;) |
|
|
|
|
|
IKa
Dołączyła: 02 Sty 2004 Status: offline
Grupy: WIP
|
Wysłany: 15-12-2007, 15:18
|
|
|
łiiihiiiii!
Widać i działa!
strony mkną baaardzo szybko :DDDD |
|
|
|
|
|
Crack
Dołączył: 13 Maj 2003 Status: offline
Grupy: Fanklub Lacus Clyne
|
Wysłany: 15-12-2007, 20:44
|
|
|
Jeszcze mała uwaga: adsense.php to u nas najczęściej wywoływana strona. Jako że zawartość tego pliku jest względnie stała to warto by wstawić tam "stałą" zawartość i nie dołączać init.php. Inicjalizacja jest dla nas dość kosztowna: dołączamy Smarty i łączymy się z bazą danych, razem wczytujemy do pamięci 35 plików (2 MB danych) a serwer nie korzysta z APC czy eAcceleratora.
Może to nam dać znacznie większy zysk na wydajności portalu (z pkt. widzenia serwera) niż wszystkie poprzednie optymalizacje razem wzięte. Biorąc pod uwagę ilość żądań i czas generowania (~100ms) daje nam to na miesiąc jeden rdzeń procesora pracujący przez 20,5h tylko na potrzeby tego pliku. |
_________________ One to rule them all, One to find them,
One to bring them all and in peace bind them |
|
|
|
|
tilk
Dołączył: 24 Lip 2003 Status: offline
Grupy: Alijenoty
|
Wysłany: 21-12-2007, 15:27
|
|
|
Ok, teraz adsense.php jest naprawdę prościutki. Możnaby zredukować go do statycznych plików html, ale chyba nie ma takiej potrzeby. |
|
|
|
|
|
Crack
Dołączył: 13 Maj 2003 Status: offline
Grupy: Fanklub Lacus Clyne
|
Wysłany: 23-12-2007, 13:48
|
|
|
Nie trzeba, właśnie o to mi chodziło - prosty, szybki kod, bez dołączania zbędnych plików. |
_________________ One to rule them all, One to find them,
One to bring them all and in peace bind them |
|
|
|
|
|
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików Możesz ściągać załączniki
|
Dodaj temat do Ulubionych
|
|
|
|