apache2 7 példányban fut

Sziasztok az lenne a kérdésem , hogy az normális ha a rendszerfigyelőben 7 példányban fut az apache2 ?
A memoria használatuk nem azonos, de összesen kb 50 Mb. Lehet, hogy eddig is így volt és ez a normális csak nem tűnt fel, akkor bocsánat mindenkitől.

Ubuntu 8.04 Gnome

Hozzászólások

Nekem 11 példányban fut. Ha jól tudom, akkor ez azért van, mert terheléskor igyekszik külön szálakkal dolgozni. A többiek majd kijavítanak, ha nincs így. Az apache2.conf-ban elég sok a szálak számával (number of server processes) kapcsolatos változó van.

Roviden: Prefork-nak nevezik az ilyet, normalis (mar ha erre allitottad, akkor az).

Hosszan:
A serverek a kovetkezokepp mukodhetnek:
- nyit egy socketet
- bind-el ra (hozzakoti az egyik porthoz, ez http eseten 80)
- listen (beallitja a varakozasi sor meretet)
- accept() - itt var a kliensekre, fogadja a kapcsolodast
- eloallit vmi tartalmat, atkuldi
- lezarja a kapcsolatot (rogton vagy egy ido mulva)

Ez mind szep es jo, de altalaban tobb kliensrol van szo, gyakran egyszerre.
Erre megoldas: tobb process vagy tobb thread kell a kiszolgalashoz.
Tehetne azt, hogy amint kapcsolodik egy kliens, rogton forkol. Ez egy mukodo megoldas, de van egy hatranya. Pont amikor sietni kellene (mert jott egy kliens) akkor kezd bele egy aranylag idoigenyes muveletbe, egy uj process letrehozasaba. Kb. mint egy ures boltban a penztarosno logatna a labat amikor nincs ott senki, es epp akkor telefonalna a baratnojevel, amikor hosszu a sor.
A gyakorlatban ezert ugy mukodik, hogy elore letrehoz a server egy csomo processt, es mindegyik beall a kapcsolat fogadasara (accept). Igy amikor bejon egy keres, rogton kiszolgalhatja. Ezt hivjak pre-fork-nak (a fork rendszerhivas hoz letre uj processt). Emiatt latsz tobb peldanyt. Persze hatranya is van, nehezebb ilyet irni, nyilvan kell tartani, hogy hany process van epp. De ez mar a programozok gondja :).

----
Sooner or later you had to talk, even if it was only because you'd run out of things to throw. - Pratchett
honlap készítés

igy van.


# ps auxf|grep apache
root      4426  0.0  1.8  24812  9556 ?        Ss   03:28   0:01 /usr/sbin/apache2 -k start
www-data  6099  0.0  1.7  25520  8964 ?        S    04:09   0:00  \_ /usr/sbin/apache2 -k start
www-data  6100  0.0  1.5  24984  8212 ?        S    04:09   0:00  \_ /usr/sbin/apache2 -k start
www-data  6101  0.0  1.4  25232  7636 ?        S    04:09   0:00  \_ /usr/sbin/apache2 -k start
www-data  6102  0.0  1.6  25224  8684 ?        S    04:09   0:00  \_ /usr/sbin/apache2 -k start
www-data  6103  0.0  1.4  24944  7696 ?        S    04:09   0:00  \_ /usr/sbin/apache2 -k start
www-data  6104  0.0  1.6  25504  8728 ?        S    04:09   0:00  \_ /usr/sbin/apache2 -k start
www-data  6701  0.0  1.4  24944  7392 ?        S    04:32   0:00  \_ /usr/sbin/apache2 -k start
www-data  6702  0.0  1.4  24944  7412 ?        S    04:32   0:00  \_ /usr/sbin/apache2 -k start
www-data  6703  0.0  1.4  25160  7632 ?        S    04:32   0:00  \_ /usr/sbin/apache2 -k start

--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!