Roman Piekarski

Roman Piekarski Programista do
wynajęcia

Temat: Jeden serwer, wiele usług

Witam,

Jestem programistą aplikacji internetowych. Często spotykam się projektami przy których ludzie chcą aby dostosować im aplikację pod duże obciążenia bez podstawowych rzeczy jak memcache czy xCache lecz przygotwane do łatwego podpięcia tych usług. Jest to dość ciężka sprawa bo albo piszemy pod memcache albo nie i pozniej miesiacami przerabiamy kod.

Chcę zbudować aplikację przystosowane odrazu do wykożystania tych rzeczy, ale mam obawy czy początkowo na jednym serwerze nadmiar usług nie będzie zbyt uciążliwy dla maszyny. Czy będzie znacząca różnica przy wykożystaniu równolegle memcache który weźmie na siebie 90% obciążenia obok bazy danych od samego silnika bazy danych bez memcache?

Do tej pory miałem przyjemność realizować oprogramowanie na specjalnie prygotowanych do tego architekturach przy których każda z usług była na oddzielnym serwerze.

Proszę o informacje:
na jakich maszynach najlepiej postawić serwer na którym wstępnie będą wszystkie usługi i jaki jest maxymalny próg obciążeń z jakimi są one w stanie sobe poradzić.
Mówiąc wszystkie usługi mam na myśli serwer www, php, mysql/postgresql, memcache, ewentualne xCache, wyszukiwarka (np: Xapian lub Lucine)

Temat: Jeden serwer, wiele usług

nie ma obawy ;] memcached żre bardzo mało procka, głównie RAM. Xcache też dodaje pare MB per proces PHPu więc zapas ramu bedzie wskazany
Maciej Hedrych-Ozimina

Maciej Hedrych-Ozimina IT - problem ? jaki
problem ? nowe
wyzwanie
+48_503_970_286

Temat: Jeden serwer, wiele usług

mysle ze w erze virualizacji oraz mocy obecnych procesorow to nie jest problem aby miec kilka uslug na jednym serwerze...chyba ze jest to windows z AD+mssql a sprzet to pojedyczny xeon 2ghz z 1gb ramu i dowalasz inne aplikacje extraMaciej Hedrych-Ozimina edytował(a) ten post dnia 21.04.09 o godzinie 23:52

Temat: Jeden serwer, wiele usług

Ano ;] każda nowa maszyna z 4gb ramu nie mowinna mieć z tym żadnych problemówMariusz Gronczewski edytował(a) ten post dnia 21.04.09 o godzinie 23:40
Roman Piekarski

Roman Piekarski Programista do
wynajęcia

Temat: Jeden serwer, wiele usług

Mariusz Gronczewski:
nie ma obawy ;] memcached żre bardzo mało procka, głównie RAM. Xcache też dodaje pare MB per proces PHPu więc zapas ramu bedzie wskazany

Dajmy na to, ze na takim serwerze stawiamy portal informacyjny, przykładowo http://benchmark.pl. Powiedzmy ze odwiedzalnosc takiego portalu jest dosc spora(20-30 rządań/s). Powiedzmy ze baza danych ma np 1-2GB gdzie 90% jest trzymana w memcache. Rzeczywista ilość wykonywanych zapytań do bazy była by ok 30 z czego 28 to rządania do memcache (dla jednego rządania do serwera z zewnątrz).

Jakiego rodzaju maszyna jest w stanie bez problemu utrzymać wszystkie usługi na jednym serwerze biorąc pod uwage powyższe parametry uwzględniając przy tym, że w tle chodzi również server Xapian gdzie co jakiś czas jest wykonywany proces przeszukiwania danych?

Może warto np rozbić jedną z tych usług na osobny słabszy serwer dzięki czemu niewydamy kupy siana na jeden hiper odporny serwer trzymający wszystkie usługi?Roman Piekarski edytował(a) ten post dnia 22.04.09 o godzinie 00:52

Temat: Jeden serwer, wiele usług

Przy takich założeniach PHP bedzie najbardziej zasobożerną aplikacją, podejrzewam że około 90% procka bedzie szło na PHPa, chyba że masz jakieś skomplikowane, długo wykonujące się kwerendy i bardzo dużą bazę danych. Natomiast co do Xapiana, nie wiem, nie używałem, nie wiem ile procka by to żarło. Jeżeli chodzi o maszyne, inwestuj w rdzenie ;]

Z małych testów (skrypt perlowy wsadzające dane z sqla do template + memcached i mysql) przy ~250 req/s mamcached zarl jakies 8%, baza jeszcze mniej (bo wiekszosc z cache)
Roman Piekarski

Roman Piekarski Programista do
wynajęcia

Temat: Jeden serwer, wiele usług

Dziekuje, za cenne uwagi.

Jeśli ktoś ma jeszcze coś ciekawego w zanadrzu i doświadczenie przy tego typu realizacjach bede wdzieczny za kontynuowanie tematu.

Pozdrawiam

Temat: Jeden serwer, wiele usług

Szczerze mówiąc najlepiej jest wrzucić "modelowego" appa na serwer, przelecieć go benchmarkiem tak żeby miał 90-100% użycia i popatrzeć co żre najwięcej (i cpu i i/o), chociaż podejrzewam że w większości przypadków procek zżera php a dysk baza ;]. No i od charakteru obciążenia, wiadomo, im większy stosunek odczyt/zapis tym buforowanie działa sprawniej (taki np mysql query cache czysci sie przy kazdej zmianie w tabeli, ale jak tabela zmienia sie bardzo rzadko to śmiga prawie tak szybko jak memcached)

Następna dyskusja:

jeden apache i wiele cs'rów




Wyślij zaproszenie do