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.
Post
#1
|
|
|
Admin Techniczny Grupa: Administratorzy Postów: 2 072 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
|
|
|
|
![]() |
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()?)(IMG:http://forum.php.pl/style_emoticons/default/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ą. |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 1 Dołączył: 18.07.2007 Ostrzeżenie: (0%)
|
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. 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 :-) ). |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 149 Pomógł: 12 Dołączył: 3.03.2008 Skąd: łódzkie Ostrzeżenie: (0%)
|
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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Żałuję, że udzieliłem się w tym wątku przed przeczytaniem (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) 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ę (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 1 Dołączył: 18.07.2007 Ostrzeżenie: (0%)
|
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ę (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Hmm... raz to oczywiście podwójny ruch, dwa to... widziałeś kiedyś, w swoim pasku adresu, takie domeny: s123.google.pl, s345.nasza-klasa.pl, albo s333.youtube.com ? :-) |
|
|
|
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
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 ![]() ![]() |
|
Aktualny czas: 20.11.2025 - 20:33 |