Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zasady pisania na forum Pro

Tematy na forum Pro mogą zakładać jedynie moderatorzy. W otwartych tematach może pisać każdy, kto ma coś fachowego do powiedzenia. Wszystkie posty nie wnoszące nic do tematu będą natychmiast usuwane, a ich autorzy dostaną ostrzeżenie.
Jeśli uważasz, że jakiś temat jest warty dyskusji na tym forum, zgłoś go w temacie Propozycje.

> Duże aplikacje i load balancing, Czyli co i jak zrobic jak maszyna nie daje rady
kwiateusz
post 2.08.2008, 18:53:14
Post #1


Admin Techniczny


Grupa: Administratorzy
Postów: 2 071
Pomógł: 93
Dołączył: 5.07.2005
Skąd: Olsztyn




Temat założony na prośbę SHIPa oraz normanosa traktujący o rozkładaniu obciążenia na wiele maszyn
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
jarek_bolo
post 5.08.2008, 22:08:59
Post #2





Grupa: Zarejestrowani
Postów: 149
Pomógł: 12
Dołączył: 3.03.2008
Skąd: łódzkie

Ostrzeżenie: (0%)
-----


Witam, specjalnie doświadczony nie jestem, ale tak myśląc nad tym problemem wyszło mi co nie co, nie wiem, może to głupie, ale może ktoś lepsiejszy i bardziej doświadczony podchwyci myśl, albo spojrzy na problem podobnie do mnie.

Otóż, przy pierwszym wejściu na stronę jest to nie ważne na jaki serwer trafimy, i z reguły trafiamy na najmniej obciążony zgodnie z algorytmem loadbalancingu. Następne wejścia jednak powinny już trafić do tego pierwszego serwera.
Skoro serwery się zmieniają losowo to jedynym sposobem na zachowanie informacji który serwer był pierwszy jest... ciastko na maszynie klienta z jakimś id, po którym aplikacja na każdym z serwerów rozpozna ten pierwszy serwer i na niego przekieruje żądanie?
Mankament to userzy nie akceptujący ciastek, ale wtedy może jakaś zmienna doklejana do url'a ?

Decyzje o przekierowaniu podejmuje najmniej obciążony serwer, więc OK.

Podobne to chyba do rozwiązań z wspólną DB, gdzie była by tabela z polem w którym jest hash z jakichś stałych parametrów klienta (IP, przeglądarka, OS, ?) i znowu aplikacja na samym wstępie zawsze musiała by sprawdzać czy taki hash już istnieje i jeśli tak to odczytać serwer dla niego i tam przekierować.

Pytanie tylko czy takie sprawdzania i przekierowania same w sobie nie są już wystarczająco wolne ?

No i w sumie to nie wiem jak miała by wyglądać implementacja takiego przekierowania w PHP (tutaj się objawia mój brak doświadczenia) :/
Bo tak, jak mamy żądanie, jakiś URL, trafiamy z nim do aplikacji na jakiś serwer. Wykonuje się skrypt PHP i jak z tego skryptu PHP przekierować... pod ten sam URL na inną maszynę tylko (DNSy, IP, wykorzystanie exec()?)questionmark.gif
Może na zasadzie, że każdy z tych kilku serwerów ma swoją subdomenę skonfigurowaną tak samo jak jedna główna domena i wtedy aplikacja przekierowywała by za pomocą subdomen, a żądanie jak już by trafiło na serwer to za pomocą mod_rewrite było by przepisywane na główną domenę?

No nic, tak czy siak według mnie najlepszym miejscem na przechowanie informacji co do pierwszego serwera jest klient (bądź jego stałe dane), bo to klient jest stały, a serwery się zmieniają.


--------------------
"Jeden człowiek nie zmieni świata, ale jeden człowiek może przekazać informację która zmieni świat." - David Icke
| PAMIĘTAJ, JESTEŚ POLAKIEM !!! |
Jam jest Polska, Ojczyzna Twoja, ziemia Ojców, z której wzrosłeś. Wszystko, czym jesteś, po Bogu - mnie zawdzięczasz!!
Go to the top of the page
+Quote Post
wrauk
post 6.08.2008, 07:56:52
Post #3





Grupa: Zarejestrowani
Postów: 10
Pomógł: 1
Dołączył: 18.07.2007

Ostrzeżenie: (0%)
-----


Cytat(jarek_bolo @ 5.08.2008, 23:08:59 ) *
Otóż, przy pierwszym wejściu na stronę jest to nie ważne na jaki serwer trafimy, i z reguły trafiamy na najmniej obciążony zgodnie z algorytmem loadbalancingu. Następne wejścia jednak powinny już trafić do tego pierwszego serwera.

Zaawansowane load balancery za dużo $$$ mają takie możliwości.

Cytat(jarek_bolo @ 5.08.2008, 23:08:59 ) *
Skoro serwery się zmieniają losowo to jedynym sposobem na zachowanie informacji który serwer był pierwszy jest... ciastko na maszynie klienta z jakimś id, po którym aplikacja na każdym z serwerów rozpozna ten pierwszy serwer i na niego przekieruje żądanie?
Mankament to userzy nie akceptujący ciastek, ale wtedy może jakaś zmienna doklejana do url'a ?
....

Wydaje mi się, że podstawowe założenie jest błędne, bo zakładasz, że każdy request dotrze do PHP, co nie jest prawdą. Podstawą zmiejszania obciążenia serwerów jest cache i duże wartości dla nagłówków Expires. No i, tak jak wspomniałeś, pojawia się duży problem z ruchem wewnętrznym (bo przekierowanie header-location powoduje, że znowu pakiety przejdą przez load balancer, co może oznaczać, że potrzebujemy 100 requestów, żeby trafić na właściwy serwer :-) ).
Go to the top of the page
+Quote Post
jarek_bolo
post 6.08.2008, 08:51:23
Post #4





Grupa: Zarejestrowani
Postów: 149
Pomógł: 12
Dołączył: 3.03.2008
Skąd: łódzkie

Ostrzeżenie: (0%)
-----


Cytat(wrauk @ 6.08.2008, 08:56:52 ) *
Zaawansowane load balancery za dużo $ mają takie możliwości.

Tak, wczoraj przed snem wziąłem się za lekturę Twoich wpisów na blogu, dobrnołem do części 3 i zaraz jadę dalej smile.gif
Żałuję, że udzieliłem się w tym wątku przed przeczytaniem tongue.gif

Cytat(wrauk @ 6.08.2008, 08:56:52 ) *
Wydaje mi się, że podstawowe założenie jest błędne, bo zakładasz, że każdy request dotrze do PHP, co nie jest prawdą. Podstawą zmiejszania obciążenia serwerów jest cache i duże wartości dla nagłówków Expires. No i, tak jak wspomniałeś, pojawia się duży problem z ruchem wewnętrznym (bo przekierowanie header-location powoduje, że znowu pakiety przejdą przez load balancer, co może oznaczać, że potrzebujemy 100 requestów, żeby trafić na właściwy serwer :-) ).

Innymi requestami jak PHPowe to chyba nie trzeba się tak przejmować ? Wszak request o statyczny zasób, grafikę nie uruchamia całej logiki PHP dającej narzut parsera PHP i z reguły narzut łączenia się z bazą i mielenia przez nią. Nie mniej oczywiście, że skoro są narzędzia to lepiej je wykorzystać i tak chyba w jednym z Twoich wpisów jest link do podstawowej konfiguracji mod_cache Apacha, ciekawe to ciekawe.

A jeśli chodzi o ruch wewnętrzny to napisałem, że header-locatiowanie miało by operować na subdomenach, które były by unikalne dla każdego z serwerów, a mod_rewrite docelowego serwera spowrotem przepisywał by na główną domenę. A więc load balancer musiał by reagować tylko przy requeście z główną domeną, a requesty subdomenowe wymuszone przez przekierowanie header-location powinny już trafiać zgodnie z adresem, bez load balancowania.
Ale z racji swojego małego doświadczenia nie wiem czy tak się da i może głupoty piszę smile.gif


--------------------
"Jeden człowiek nie zmieni świata, ale jeden człowiek może przekazać informację która zmieni świat." - David Icke
| PAMIĘTAJ, JESTEŚ POLAKIEM !!! |
Jam jest Polska, Ojczyzna Twoja, ziemia Ojców, z której wzrosłeś. Wszystko, czym jesteś, po Bogu - mnie zawdzięczasz!!
Go to the top of the page
+Quote Post

Posty w temacie
- kwiateusz   Duże aplikacje i load balancing   2.08.2008, 18:53:14
- - LBO   Muskający powierzchnię tematu wpis na blogu Talena...   2.08.2008, 19:01:00
- - wrauk   dzięki za link do mojego bloga, widzę, że temat os...   4.08.2008, 20:33:26
- - Kocurro   No to Panowie zaczynajmy - może na początek odnosz...   5.08.2008, 11:02:55
- - wlamywacz   A jest możliwość utworzenia dysku sieciowego i na ...   5.08.2008, 12:25:49
- - Kocurro   Pomysł dość dobry ale wydaje mi się, że problemem ...   5.08.2008, 12:37:12
- - wrauk   Soft do obsługiwania takich sesji już istnieje i n...   5.08.2008, 12:55:10
|- - Sedziwoj   Cytat(wrauk @ 5.08.2008, 13:55:10 ) M...   5.08.2008, 13:41:27
- - wlamywacz   CytatPomysł dość dobry ale wydaje mi się, że probl...   5.08.2008, 21:09:04
|- - mike   Cytat(wlamywacz @ 5.08.2008, 22:09:04...   5.08.2008, 21:18:30
|- - wrauk   Cytat(wlamywacz @ 5.08.2008, 22:09:04...   5.08.2008, 21:22:56
- - jarek_bolo   Witam, specjalnie doświadczony nie jestem, ale tak...   5.08.2008, 22:08:59
|- - wrauk   Cytat(jarek_bolo @ 5.08.2008, 23:08:5...   6.08.2008, 07:56:52
|- - jarek_bolo   Cytat(wrauk @ 6.08.2008, 08:56:52 ) Z...   6.08.2008, 08:51:23
|- - wrauk   Cytat(jarek_bolo @ 6.08.2008, 09:51:2...   6.08.2008, 09:45:00
- - Kocurro   jarek_bolo: niestety Twój pomysł byłby o wiele mni...   6.08.2008, 09:18:14
- - wlamywacz   A co z adresami typu www2.cos.pl ?   6.08.2008, 10:13:25
- - Kocurro   Widziałem ale jeśli mam być szczery to to jest roz...   6.08.2008, 10:18:46
- - wlamywacz   Ale jak działa to www2.cos.pl itd. bo nawet nie wi...   6.08.2008, 11:38:17
|- - mike   Cytat(wlamywacz @ 6.08.2008, 12:38:17...   6.08.2008, 11:47:12
- - Kocurro   Normalnie Serwer ma taką nazwę, dns wskazuje na j...   6.08.2008, 11:41:48
- - normanos   a mnie ciekawiły by rady w jakim kierunku iść kied...   6.08.2008, 13:48:56
|- - wrauk   Cytat(normanos @ 6.08.2008, 14:48:56 ...   8.08.2008, 09:47:21
|- - normanos   Cytat(wrauk @ 8.08.2008, 08:47:21 ) K...   8.08.2008, 09:57:13
|- - wrauk   Cytat(normanos @ 8.08.2008, 10:57:13 ...   8.08.2008, 10:35:20
- - grzegory   Przyłączam się do tematu. Mój problem wygląda nas...   7.08.2008, 21:36:06
- - wlamywacz   Kup serwer dedykowany, da radę bez problemu. Patrz...   7.08.2008, 21:50:20
- - Sedziwoj   @grzegory Zacznę od tego że to raczej nie jest tem...   7.08.2008, 21:56:20
- - Ace   Od kilku miesięcy interesuje się tematyką wysokich...   12.08.2008, 11:03:43
- - rashid   Pozwole sie wtracic, bo Panowie proboja rozwiazac ...   27.11.2008, 12:27:56
|- - enigma   Cytat(rashid @ 27.11.2008, 13:27:56 )...   13.01.2009, 21:24:38
|- - rashid   Cytat(enigma @ 13.01.2009, 21:24:38 )...   13.01.2009, 21:41:01
- - Krolik   Jeśli baza danych się nie wyrabia i używamy MySQL/...   2.12.2008, 10:37:42
|- - rashid   Cytat(Krolik @ 2.12.2008, 10:37:42 ) ...   11.12.2008, 11:10:50
- - klakson   Witam serdecznie, chcialbym wykonac aplikacje w p...   20.12.2008, 13:05:29
|- - rashid   Cytat(klakson @ 20.12.2008, 13:05:29 ...   20.12.2008, 14:11:47
- - normanos   piszesz, że będziesz mielił dane z dysku a potem w...   20.12.2008, 13:47:49
- - klakson   Dzieki za pierwsze odpowiedzi, i juz uscislam, bo ...   20.12.2008, 16:37:27
- - Kocurro   Wybaczcie offtopic ale nie mogę. Kolega się z cho...   20.12.2008, 16:59:28
- - klakson   No ok Kocurro, ale moze po pierwsze, to przeczyta...   20.12.2008, 18:52:22
- - rashid   Zalozenie, ze operujac na wlasnym formacie plikow ...   20.12.2008, 18:53:32
|- - Krolik   Cytat(rashid @ 20.12.2008, 18:53:32 )...   2.01.2009, 12:18:16
|- - rashid   Cytat(Krolik @ 2.01.2009, 12:18:16 ) ...   2.01.2009, 14:05:11
- - Kocurro   Szanowny kolego klakson - proponuje najpierw zapoz...   20.12.2008, 19:40:32
- - erix   CytatA przechodzac do sedna, w czym niby jest prob...   20.12.2008, 20:06:03
- - wlamywacz   Założenia projektu sobie niezbyt realne. Kolega na...   25.12.2008, 10:52:03
- - djhors   Witam Wszystkich. Z braku czasu niezagladam tu za...   29.12.2008, 11:07:55
- - luinnar   Tak sobie czytam ten wątek i zastanawiam się nad k...   1.01.2009, 10:23:55
- - Krolik   Rashid, porównujesz z MySQLem i słusznie zauważyłe...   5.01.2009, 11:43:18
|- - rashid   Cytat(Krolik @ 5.01.2009, 11:43:18 ) ...   7.01.2009, 11:12:22
- - fragles   a ja mam pytanie podstawowe - jak się to liczy to ...   7.01.2009, 10:33:20
- - Krolik   Nie będę wchodził w szczególy, bo odeszliśmy od te...   7.01.2009, 13:06:25
- - enigma   dziękuje wygląda ciekawie - na pewno przeczytam. ...   13.01.2009, 21:58:21
|- - rashid   Cytat(enigma @ 13.01.2009, 21:58:21 )...   19.01.2009, 22:53:16
- - jmail   Przepraszam, ze tego trupa odgrzebuję, ale miałbym...   10.08.2009, 22:32:15
- - Ormin   Myślę, że wypadałoby odświeżyć temat. Przy okazji ...   16.05.2010, 22:19:23
- - BugsBunny   Odgrzebie temat, bo mam trochę praktyki w tym tema...   15.09.2012, 22:20:20


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.05.2024 - 23:03