Forum » TYPO3 » Ogólne
Temat z wieloma odpowiedziami

300 razy szybciej?


Autor Wiadomość
Napisane: 25.03.2009 [16:53]
bart
Twórca tematu
zarejestrowany: 03.12.2008
Posty: 53
Tak to mozliwe icon_smile.gif
Jesli ktos z was mial problem z wydajnoscia TYPO3 to zachecam do przetestowania wtyczki evo_nginx_boost.
http://blog.evo.pl/2009/03/21/how-to-boost-speed-up-your-typo3-website-with-nginx/
Rozwiazanie sami juz troche testowalismy ale uznalismy ze czas podzielic sie ze spolecznoscia bo moze sie pojawia nowe pomysly w celu usprawnienia rozwiazania.


Napisane: 25.03.2009 [20:03]
biesior
admin
zarejestrowany: 20.03.2008
Posty: 1338
Bartek ja Ciebie pokornie proszę pisz częściej na forum... icon_wink.gif

czasy renderingu w granicach 2.5 ms to jest absolutny fenomen, do tej pory cieszyłem się przy 40-50 ms z cache'u icon_smile.gif great icon_smile.gif

Sesja wygasła, zaloguj się, żeby się wylogować.

T3CI
Certified Level 2 TYPO3 Night Crew Member.
KO System enthusiast
Napisane: 26.03.2009 [09:16]
bart
Twórca tematu
zarejestrowany: 03.12.2008
Posty: 53
Spoko bede sie staral czesciej icon_smile.gif
Na blogu tez bede wrzucal ciekawostki a wkrotce pare nowych.
Odnosnie czasow o ktorych mowisz to 40-50ms to dla strony bez wtyczke USER_INT.
Z jedna choc taka wtyczka juz takiego czasu nie osiagniesz.
Rozwiazanie ktore opisalem rozwiazuje tez ten problem. W zasadzie ciezko nawet mowic o czasie geenracji poniewaz nginx wyswietla poprostu zawartosc odraz z memcacha.


Napisane: 26.03.2009 [09:25]
kss
admin
zarejestrowany: 19.07.2007
Posty: 811
Hej Bartosz,

Gratuluję wtyczki! Jedna z wad TYPO3, powolne renderowanie, ma szansę na zapomnienie przez odpowiednie użycie cache. Super.

Szkoda tylko, że infrastruktura potrzebna do jej wykorzystania wymaga vps, albo dedyka i masy roboty icon_smile.gif Rozumiem oczywiście, że to jest rozwiązanie dla naprawdę wymagających witryn. Postaram się stworzyć sobie podobne środowisko testowe lokalnie na wirtualnej maszynie, ale to potrwa pewnie tygodnie, bo czasu jak zwykle niewiele.

Nim to nastąpi mam pytanie, bo nie wiem czy dobrze zrozumiałem. Chodzi mi o to w jaki sposób w Twoim rozwiązaniu są obsługiwane zmiany, weźmy przykład, profilu użytkownika X przez działania użytkownika Y (albo jakiekolwiek inne działania zewnętrzne).

Case:
Profil użytkowników pozwala na abonowanie ostatnich nowości z dowolnej kategorii. User A jako jedyny z 30000 userów zapisany jest na kategorię Z. Admin BE dodaje rekord tt_news w kategorii Z. Optymalnie byłoby więc wyczyścić cache strony z profilem tylko userowi A, pozostawiając 29999 niezmienionych profili w cache.

Z tego co wywnioskowałem w Twoim rozwiązaniu określa się czas odświeżania stron z treścią dynamiczną, czyli profil staje się nieaktualny np. po 5 min. W powyższym przykładzie z rekordem tt_news co 5 minut przedawnia się cache 30000 profili mimo, ze tak naprawdę przedawnić powinien się tylko ten jeden dla którego powstała nowość z kategorii Z.

I jeszcze jedno pytanie na przykładzie związane z interwałem czyszczenia. Jeżeli user A będąc na profilu usera B wykona action „dodaj tego użytkownika do moich znajomych” to kiedy ta zmiana uwidoczni się w profilu użytkownika A i w profilu użytkownika B? Po tym interwale? Czy może wtyczka obsługująca ten action czyści w memcache stronę z profilem wywołującego A i wywołanego B, generuje nowe i zmiany są widoczne natychmiast?


Sorry jeżeli gdzieś popełniam podstawowy błąd, ale słabo znam zasady działania ngixa i memcache, więc niewykluczone, że czegoś po prostu nie rozumiem.

Certyfikowany Integrator Systemu TYPO3
http://www.cms-partner.pl
Napisane: 26.03.2009 [10:18]
bart
Twórca tematu
zarejestrowany: 03.12.2008
Posty: 53
Hej Kss
Tak wymaga dedyka ale czy odrazu mase roboty. Jesli masz na mysli przejscie z masshostnigu na dedyk to napewno bo jako root musisz sobie przygotowac cale srodowisko. Jednak jesli mowimy o samej isntalacji nginxa i polaczeniu tego to raczej 1h pracy icon_smile.gif

Wracaja do Twoich pytan:
Tak w obecnym rozwiazaniu przedawni sie cache dla wszytskich uzytkowikow po okreslonym czasie chyba ze uzytkownik wykonal jakas akcje w postaci POST.
Dane w memchachu dostepne przez 1 min w bardzo obciazonym srodowisku daja ogromny oddech. Pamietaj tez ze dane sie przedawniaja nie jednoczesnie np user A zobaczy nowa wersje o 14:21 a user B o 14:25.
My nie uzywamy ocji czyszczenie memcachu kiedy zostana naniesione zmiany w BE bo to odrazu wzmaga obciazenie na proces php. Krotkie czasy sa praktycznie nie zauwazalne dla uzytkownikow.

Jesli chodzi o drugie pytanie to zmiana w profulu uzytkownika A bedzie widoczna odrazu poniewaz do serwera zostanie wyslane żądanie POST i evo_ngix_boost stworzy nowa wersje strony. Uzytkownik B zobaczy to po interwale cachowania.

Myslimy dodatkowo o rozwienieciu calosci o rejestrowanie kluczy w TYPO3 aby mozna bylo robic wszystko co chcesz icon_smile.gif ale to w nastepnym wydaniu icon_smile.gif

Problemy o ktorych piszesz tez pojawiaja sie w innych srodowiskach.
Ciekawy case z Facebooka http://www.facebook.com/note.php?note_id=23844338919


Napisane: 05.04.2009 [02:34]
wolo
zarejestrowany: 04.09.2007
Posty: 20
kolega Ryży jakiś czas temu opublikował fajny plugin do obsługi Memcached w Typo
typo3.org/extensions/repository/view/r_memcached/current/
na razie jest podstawowa funkcjonalność, nie obsługuje jeszcze tagów (pracuję nad tym) i czyścić trzeba cache całości/pojedynczych stron przez co nie nadaje się do co bardziej dynamiczno-złożonych sajtów (jeszcze).
no i nie działa przez proxy, czyli procesy apache mimo wszystko się uruchamiają - ale wzrost wydajności jest spory, a instalacja banalna.

[Ten temat był edytowany 2 razy. Ostatnio 05.04.2009 o 02:39.]

`Well! I've often seen a cat without a grin,` - thought Alice, `but a grin without a cat! It's the most curious thing I ever saw in all my life!`
Napisane: 05.04.2009 [11:07]
bart
Twórca tematu
zarejestrowany: 03.12.2008
Posty: 53
z ta prostota instalacji to bym nie przesadzal icon_smile.gif
zenda trzeba pobrac, problem ze includowanymi sciezkami jest na niektorych instalacjach no i trzeba zmieniac plik index.php no ale to juz akurat musi byc

w kazdym razie kazde rozwiazanie ktore odciazy baze danych i proces php jest zawsze wskazane

swoja droga nasza wtyczka niedlugo bedzie miala tez opcje pracy bez proxy dokladnie w takim samym podejsciu jak r_memcache ale bez zenda

Napisane: 05.04.2009 [19:53]
wolo
zarejestrowany: 04.09.2007
Posty: 20
nigdy nie patrzyłem na kwestię użycia zenda jako jakiś problem.
mogę sobie szybko przerobić ten ext, żeby zf-a nie wymagał, ale nie widzę takiej potrzeby. z includowaniem i ścieżkami jest problem, gdy ktoś sam próbuje go includować i nie wie, jak się to robi. dla mnie rozpakowanie tara i zedytowanie 2 plików to nie jest kłopot, a zenda i tak używam do różnych innych rzeczy. poza tym przy pomocy zenda mogę łatwo dopisać sobie obsługę tagów (na co na razie nie znajduję czasu niestety)

pozdrawiam!
no offense - jeśli przypadkiem wypowiedź tak zabrzmiała - to nie miała icon_smile.gif

`Well! I've often seen a cat without a grin,` - thought Alice, `but a grin without a cat! It's the most curious thing I ever saw in all my life!`
Napisane: 05.04.2009 [20:55]
bart
Twórca tematu
zarejestrowany: 03.12.2008
Posty: 53
spoko dzieki za odpowiedz
mysle ze nie precyzyjnie sie wypowiedzialem icon_smile.gif
dla mnie, dla Ciebie i pewnie wielu osob ktore mocno siedza w kodzie wiele rzeczy nie sa problemem ale projektujac rozne rozwiazania musimy myslec o tym zeby ich instalacja, uzycie i konfiguracja byly jak najbardziej dostepne
Oczywiscie nie zawsze sie da bo postawienie np nginxa juz wymaga pewnej wiedzy ale wiele osob w zyciu nie zedytuje pliku index albo nie bedzie inlcudowac zenda na wlasna odpowiedzialnosc, a z kwestia wydajnosci na 100% sie zetkna icon_smile.gif


p.s
nie zabrzmiala tak i nie zostala tak odebrana icon_smile.gif

Napisane: 19.05.2009 [13:25]
bart
Twórca tematu
zarejestrowany: 03.12.2008
Posty: 53
Mamy nowa wersje w TER.
Dokumentacja na razie po polsku
http://techblog.evo.pl/evo_nginx_boost-extension/
Duzo zmian i dodatkow. Wtyczka tez dziala bez nginxa icon_smile.gif