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
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
rashid
post
Post #2





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 22.11.2003

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


Zalozenie, ze operujac na wlasnym formacie plikow bedzie sie operowalo danymi lepiej niz BDB jest zludne. Duza zaleta BDB jest to, ze swietnie wykorzystuje mozliwosc przechowywania danych w RAM. Nie trzeba ladowac danych do pamieci i wtedy na nich operowac - wystarczy wczytywac dane poprzez BDB. Mala uwaga na sam poczatek - jesli zaczniesz testowac wydajnosc BDB, to nie bierz pod uwage pierwszego przebiegu po danych, bo jest kilkadziesiat/kilkaset razy wolniejszy niz kolejne.

BDB jest dostepne za darmo ze strony Oracle.

Przy okazji musze odradzic uzywanie PHP przy przetwarzaniu takich ilosci danych - slabe zarzadzanie pamiecia wyjdzie ci bokiem. Moze lepiej Ruby - my mamy bardzo dobre doswiadczenia z mixem Ruby + BDB?
Go to the top of the page
+Quote Post
Krolik
post
Post #3





Grupa: Zarejestrowani
Postów: 53
Pomógł: 0
Dołączył: 16.11.2004

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


Cytat(rashid @ 20.12.2008, 18:53:32 ) *
Przy okazji musze odradzic uzywanie PHP przy przetwarzaniu takich ilosci danych - slabe zarzadzanie pamiecia wyjdzie ci bokiem. Moze lepiej Ruby - my mamy bardzo dobre doswiadczenia z mixem Ruby + BDB?


Sorry, ale do przetwarzania bardzo dużych ilości danych to wszelkie języki interpretowane, w tym SZCZEGÓLNIE Ruby, są o kant d***y potłuc.
Ruby ma chyba najwolniejszy interpreter na świecie, do PHP + APC mu bardzo daleko. Wg Great Language Shootout w przetwarzaniu danych Ruby jest gdzieś ze 100-500 razy powolniejszy niż języki kompilowane (C, C++, C#, Java, Scala). No chyba że miałeś na myśli Ruby na JVM, ale też wydajnościowo żadna rewelacja.

Inna sprawa, że to nie ma aż takiego znaczenia, jak się tylko te dane wyjmuje z bazy danych i wysyła do klienta, bez żadnej wielkiej obróbki. Wtedy pisz sobie w czym Ci wygodnie. Wtedy i tak baza danych ma najwięcej roboty. Wrzuć to na serwer z dużą ilością RAMu, szybkimi dyskami i powinno śmigać.

A z tym 50 tys. użytkowników równocześnie, to ktoś tu robi błąd w założeniu, że wszyscy będą klikać równocześnie w serwis. Średnia liczba równoległych żądań, które musi być w stanie obsłużyć system wynosi w przybliżeniu:
liczba_aktywnych_sesji * częstotliwość_żądań_gen_przez_jednego_usera * czas_przetwarzania_żądania_w_s.
Czyli jeśli Twój system potrafi obsłużyć żądanie w maks. 1 s, a użytkownicy klikają średnio co 10 sekund, to przy 50 tys. użytkowników będziesz obsługiwał tylko 5000 równoległych żądań.

Tak z ciekawości chciałbym się dowiedzieć na czym polega ta "szybszość" BDB w porównaniu z RDBMSami, w sensie konkretnych argumentów.
Nie ma żadnego teoretycznego powodu, aby RDBMS był wolniejszy, a jest bardzo wiele za tym, aby był szybszy. Rashid, mógłbyś wyjaśnić, co miałeś na myśli?
Go to the top of the page
+Quote Post
rashid
post
Post #4





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 22.11.2003

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


Cytat(Krolik @ 2.01.2009, 12:18:16 ) *
Sorry, ale do przetwarzania bardzo dużych ilości danych to wszelkie języki interpretowane, w tym SZCZEGÓLNIE Ruby, są o kant d***y potłuc.
Ruby ma chyba najwolniejszy interpreter na świecie, do PHP + APC mu bardzo daleko. Wg Great Language Shootout w przetwarzaniu danych Ruby jest gdzieś ze 100-500 razy powolniejszy niż języki kompilowane (C, C++, C#, Java, Scala). No chyba że miałeś na myśli Ruby na JVM, ale też wydajnościowo żadna rewelacja.


Poruszony problem dotyczyl przetwarzania duzej ilosci danych, w sposob bardziej wsadowy niz przetwarzanie na potrzeby WWW. Przy duzych ilosciach danych szybkosc wykonywalna jezyka przestaje miec znaczenie (pomijam tutaj ekstremalne przypadki, kiedy liczenie trwa miesiacami) - znacznie wazniejsza jest skalowalnosc architektury przetwarzania. Latwo jest powiedziec, ze np. Hadoop jest rozwiazaniem bez sensu, bo dodaje niepotrzebna warstwe zwalniajaca przetwarzanie danych, ale jest to koszt mozliwosci przetwarzania na wielu maszynach rownoczesnie. PHP odradzam w takich zadaniach ze wzgledu na to, ze potrafi np. zaalokowac kilkaset MB RAM do przetwarzania dwunastomegowego pliku CSV, a co gorsza - nie zwalnia tej pamieci. Uzywalem PHP w dlugotrwalych zadaniach i odradzam, co oczywiscie nie znaczy, ze jest to zly jezyk.

Cytat(Krolik @ 2.01.2009, 12:18:16 ) *
Tak z ciekawości chciałbym się dowiedzieć na czym polega ta "szybszość" BDB w porównaniu z RDBMSami, w sensie konkretnych argumentów.
Nie ma żadnego teoretycznego powodu, aby RDBMS był wolniejszy, a jest bardzo wiele za tym, aby był szybszy. Rashid, mógłbyś wyjaśnić, co miałeś na myśli?


BDB jest szybsze, bo bazie odpada mnostwo dodatkow:
- przetwarzanie SQL
- zarzadzanie indeksami
- zarzadzanie sesjami i transakcjami
- rozbudowane operacje w pamieci
- posrednia warstwa sieciowa
- przenoszenie danych pomiedzy przestrzenia adresowa serwera bazy a programem przetwarzajacym dane

BDB bylo we wczesniejszych wersjach MySQL dostepne jako format binarny bazy (analogicznie do MyISAM czy InnoDB), co samo w sobie oznacza, ze BDB + narzut MySQL jest wolniejsze od samego BDB.

Kazdy, kto samodzielnie pisal prosta baze danych operujaca na duzej ilosci danych przechowywanej w lokalnych plikach wlasnego formatu zauwazyl, ze wydajnosc MySQL nie jest jakos specjalnie wybitna. O przydatnosci MySQL decyduje to, ze ma ona rozsadna wydajnosc i rozsadny zestaw przydatnych narzedzi (wymienionych powyzej, jako wady). Kiedy jednak zalezy nam na wydajnosci i duzej ilosci zapisow i odczytow (kosztem transakcyjnosci i wielu uzytkownikow), to istnieja znacznie bardziej atrakcyjne rozwiazania.

Oczywiscie rozmawiamy o rozwiazaniach do przetwarzania danych, a nie webowych.

Ten post edytował rashid 2.01.2009, 14:06:05
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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 21:35