glug: configurazione apache+php (risposta molto lunga...)
s.sartini
s.sartini@linux.it
Mar 25 Gen 2005 18:04:06 CET
Marco Masetti ha scritto:
> Ok, la risposta e' stata gia' data dal Debe, ed adesso che il php respira ritorniamo sui nostri passi e cerchiamo di capire qualcosa...
>
>
>>Hai verificato se apache carica php4_module?
>
> un modulo puo' essere staticamente compilato con apache (e quindi sara' gia' presente in ogni processo httpd) oppure puo' essere caricato dinamicamente allo start up del processo principale.
> Il vantaggio di caricare un modulo dinamicamente al runtime e' che verra' condiviso da piu' processi e quindi risparmieremo parecchia ram durante l'esecuzione, guarda questo estratto del comando top:
>
> PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND
> 9479 root 15 0 2912 2028 1976 S 0.0 0.3 0:00 httpd
> 9499 webAppal 15 0 4168 3776 3060 S 0.5 0.7 0:04 httpd
>
> che ci dice che ogni processo httpd figlio (quelli per interdeci che servono le richieste http) occupa circa 3.7 Mb in RAM (colonna RSS), ma di cui ben 3 Mb sono moduli shared (colonna SHARE), e questo ci permette di farne girare un bel po' (o almeno di dire non e' certo per colpa di apache che siamo a corto di Ram...).
> I moduli condivisi hanno estensione '.so'.
Uhm, potrei sbagliarmi ma l'unico vero vantaggio nell'avere un modulo di
apache è il fatto che è + facile aggiornarlo (invece che ricompilare
tutto apache alla bisogna si ricompila solo il modulo).
Il discorso della memoria condivisa non mi convince, quando Apache
carica un .so di fatto è "come se" fosse stato linkato nell'eseguibile,
non è una libreria condivisa gestita dal kernel di linux e quindi
"shared" per definizione quando usata come condivisa.
Ogni istanza di apache (httpd) si porterà dietro il modulo .so del php,
senza nessun vantaggio in termini di risparmio di memoria, e con invece
un certo overhead ogni volta che viene spawnato un nuvo child di apache.
Ste
Maggiori informazioni sulla lista
glug