Pokaż wyniki 1 do 3 z 3

Temat: Apache - mpm-prefork czy mpm-worker?

  1. #1
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie Apache - mpm-prefork czy mpm-worker?

    Hej!

    Dzisiaj jedna rzecz mnie zaskoczyla i to bardziej niz moglem sie spodziewac... wiec postanowilem sie podzielic nieco ciekawostka

    Mam 2 takie sobie serwerki www w bardzo bliskich konfiguracjach, oba serwuja dokladnie ten sam content (z lokalnych dyskow aby nie bylo), oba sa podpiete pod tego samego switcha, oba maja dyski o tej samej wydajnosci itd...

    Moze maly wstep o konfiguracji maszyn:

    Serwer 1:
    2x PIII 1.4GHz (zglasza 2793.12 bogomips na kazdym procku)
    2GB RAM
    apache 2.0.x + mod_fastcgi + mod_php + mod_ssl ---> mpm-prefork tuningowany

    Serwer 2:
    1x Xeon 2.4GHz (zglasza 4778.29 bogomips)
    1GB RAM
    apache 2.2.x + mod_fastcgi + php jako fastcgi + mod_ssl ---> mpm-worker konfigurowany na oko

    Wiedzialem ze serwer 2 powinien byc nieco szybszy... Ile w tym sprawa procka ciezko powiedziec, ale sadze ze niewiele - na pewno mniej niz kwestia workera w apaczu. Pytanie tylko i ile bedzie szybszy? Dzisiaj sie przekonalem :-o

    Odpalilem dzisiaj juz produkcyjnie load-balancing wiec pod jednym IP czai sie tak na prawde farma kilku serwerkow, 2 sa juz aktywne, kolejne czekaja na konfiguracje... Podpialem wiec te dwa co powyzej (maja te same dane wiec moge je podpiac - nie wazne ktory dostanie request i tak zwroci klientowi to samo co jego kolega). Ustawiajac balancer ustawia sie wagi poczatkowe serwerow - waga im wyzsza tym maszyna mocniejsza a co za tym idzie do niej bedzie kierowane wiecej ruchu. Load balancer oczywiscie ma iles sposobow rozkladania ruchu - od round-robin i static weights poprzez adaptive, fastest response, least connections a na 'agent response' konczac.

    Jako algorytm wybralem 'adaptive' - oznacza to w skrocie ze wagi dla maszyn beda modyfikowane automatycznie w trakcie pracy tak, aby odzwierciedlaly ich rzeczywista moc w danej chwili - jak serwer zacznie sie przytykac to waga bedzie obnizana, jak bedzie mial luz to bedzie szla w gore - po jakims czasie sie to stabilizuje generalnie. Oczywiscie jak obciazenie spada to cluster przestaje sie uczyc bo nie ma to sensu - interesuje nas wydajnosc systemu gdy jest najbardziej zapchany zapytaniami.

    Dodajac serwery dla #1 dalem wage poczatkowa 90, dla #2 dalem 110. Wydawacby sie moglo ze mniej wiecej powinienem trafic... no i trafilem - daleeeeeeko od rzeczywistosci!

    Po 15 minutach pracy na 2 maszyny wagi zatrzymaly sie na (teraz lepiej usiasc):
    - #1 ---> 60
    - #2 ---> 167

    #2 wyrabia 278% tego co #1 - az nie moge uwierzyc... nawet biorac spora poprawke na pomiar i tak mamy > 200% wydajnosci, tak wiec zaczyna sie robic ciekawie - tylko dzieki temu ze nie ma php w apaczu - jest zewnetrzny proces i apacz uzywa watkow do obslugi zapytan. Kiedys pisalem juz o uzyciu pamieci na maszynie ale to jest pierwszy test jaki tak na prawde udalo mi sie przeprowadzic w dosc jednolitym otoczeniu.

    Za pare(nascie) dni jeszcze zanim dodam kolejne maszyny bede aktualizowal #1 do tej samej konfiguracji co #2 i wtedy zobaczymy jak sie porownuja maszyny

    Co o tym sadzicie? Moze popelnilem gdzies blad? Jakie macie pomysly aby ujednolicic pomiar (troche moge pogrzebac ale to system live, wiec nie moge nic zepsuc hihi).
    ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)

  2. #2
    Zarejestrowany
    Apr 2008
    Postów
    200

    Domyślnie

    Największy wpływ na tak znaczną różnicę w wydajności IMO ma MPM worker. Wagi które ustawiłeś na początku prawdopodobnie byłyby prawidłowe gdyby MPM na obu maszynach był taki sam.
    Rozważałeś zastosowanie lighttpd? Nie wiem jaki jest rodzaj serwowanego contentu, ale na pewno ten serwerek będzie szybszy od Apache. Rewelacyjnie nadaje się do udostępniania statycznych danych. Aczkolwiek dynamicznie dane generowane np. przez skrypt PHP na FastCGI również mają znacznie lepsze wyniki. Najlepszą rekomendacją jest fakt, że lighttpd jest wykorzystywany przez serwery YouTube i Wikipedii.

  3. #3
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie

    Korzystam aktualnie z clustra serwerow (robiony na kilka roznych sposobow nawiasem mowiac) i w jednej lokalizacji mam 4 maszyny na ktorych siedzi zarowno apache jak i lighttpd. Apache robi dynamiczny content - niestety lighty nie radzil sobie jak trzeba z paroma moimi wymaganiami, za to apache zostaje daleko w tyle jesli idzie o static content - tutaj lighty wymiata Dobrze skonfigurowany load-balancer podejmuje decyzje o tym na ktory serwer ma trafic request (w zasadzie nie na ktory serwer ale czy do apacza czy do lighty) i sprawa jest zalatwiona.

    W tym watku chodzilo mi glownie o to jak wielkie potrafia byc roznice... teraz mam kolejne pomiary i wyniki potwierdzaja sie za kazdym razem z mniejsza lub wieksza rozbieznoscia.

    Przyklad:
    2 identyczne serwery Sun'a chodzace pod Solarisem (nawet numery seryjne maszyn sa kolejne), na jednym apache2 z mpm-prefork, na drugim mpm-worker. Pliki identyczne, konfiguracja rowniez (default) i wydajnosc mpm-worker znacznie wieksza... a po podkreceniu obu... no coz... prefork to chyba juz powoli staje sie zabytkiem
    Jestem po prostu ciekaw jakie sa doswiadczenia innych osob na forum w tej kwestii - jak bardzo w ich przypadku mpm-worker zwiekszyl wydajnosc?

    P.S.
    Lighty i FastCGI chodzi bardzo ladnie :-) W tej chwili mam 1 serwer na ktorym jest tylko lighty i ten serwer serwuje wlasnie pliki .flv (podobnie jak youtube) w polaczeniu z PHP. Wydajnosciowo apache sie nie umywa, zwlaszcza z mod_php (porazka). Lighttpd to bardzo dobry serwer, choc znacznie prostszy i brakuje mu pewnych zaawansowanych funkcji, ktore akurat dla mnie sa dosc krytyczne (choc wlasnie pracujemy nad niwelacja tego problemu).
    ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)

Podobne wątki

  1. Odpowiedzi: 8
    Autor: 12-30-2007, 11:41
  2. apache+php = blad :(
    By *DK* in forum PHP/CGI/ASP/JSP/J2EE
    Odpowiedzi: 4
    Autor: 11-19-2007, 15:35
  3. Apache - Czym analizujecie logi?
    By Mad_Dud in forum Domeny/Serwery
    Odpowiedzi: 2
    Autor: 05-28-2007, 19:47
  4. logi apache
    By markossx in forum Linux
    Odpowiedzi: 11
    Autor: 03-29-2007, 20:23
  5. [Apache] Konfiguracja .htaccess
    By Dominik in forum Domeny/Serwery
    Odpowiedzi: 4
    Autor: 12-25-2006, 17:07

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj