Perché Apache esegue così tanti processi? RAM eccessiva qui?


17

Ho notato che Apache esegue più processi sul mio server LAMP (ubuntu 10.10). Sto solo gestendo un sito Wordpress con MySQL come database. Sembra che www-data stia eseguendo apache2 più di quanto dovrebbe (usando troppa memoria), ho ragione:

ID      Owner       Size        Command   
31200   www-data    251236 kB   /usr/sbin/apache2 -k start
20678   www-data    250948 kB   /usr/sbin/apache2 -k start
25781   www-data    248888 kB   /usr/sbin/apache2 -k start
31045   www-data    248844 kB   /usr/sbin/apache2 -k start
19926   www-data    246480 kB   /usr/sbin/apache2 -k start
20749   www-data    239380 kB   /usr/sbin/apache2 -k start
32616   www-data    238632 kB   /usr/sbin/apache2 -k start
8846    mysql   238128 kB   /usr/sbin/mysqld
24178   www-data    234228 kB   /usr/sbin/apache2 -k start
32618   www-data    232344 kB   /usr/sbin/apache2 -k start
32615   www-data    232204 kB   /usr/sbin/apache2 -k start
19805   root    208156 kB   /usr/sbin/apache2 -k start

Questo è stato lo stesso caso anche per il mio lavoro precedente (CentOS). Ho appena pensato che fossero tutti processi secondari avviati da Apache per ogni richiesta. Non abbiamo mai affrontato problemi di prestazioni / memoria a causa di questo però ...
Nandhini Anand

Hmm. Sono solo preoccupato di rimanere senza memoria su questo sistema poiché è un VPS.
Trent Scott,

Risposte:


19

Apache sta eseguendo più processi per averli pronti quando arriva una richiesta client. La generazione di un processo server è lenta, quindi è meglio averne uno in attesa di un client.

Per l'utilizzo della memoria, è necessario tenere conto della dimensione RES dell'account (come visualizzata in alto), che è la quantità di memoria fisica utilizzata dall'attività.

Perché pensi di avere troppi processi apache2 che usano troppa memoria? Cosa ti aspetti? Perché te lo aspetti?


Questo è su un'immagine basata su cloud. Sembra che stia usando più memoria di quanto dovrebbe per un sito così piccolo. Memoria reale: 496.36 MB totali / 92.02 MB liberi Spazio di swap: 1024 MB totali / 975.93 MB liberi
Trent Scott

1
@Trenton: con la risposta di Pawel che suona bene. A meno che non ti imbatti in un crash mysql o qualcosa a causa della mancanza di memoria, dovresti andare bene. In tal caso, dovresti cercare le configurazioni di apache per limitare questi processi generati.
Nandhini Anand,

2
Linux tenterà di conservare gran parte della memoria utilizzata. Se non c'è altro da aggiungere, utilizzerà la RAM per cache e buffer del disco. La memoria vuota è memoria sprecata (se non si sta esaurendo la RAM).
Paweł Brodacki,

3

Come spiega la risposta di Pawel, apache utilizza un modello di processo per richiesta con un pool di processi (o thread per richiesta con mpm_worker).

Potrebbe essere possibile ridurre l'utilizzo della memoria utilizzando un server Web basato su IO non bloccante, come nginx. In questo modo il server non ha bisogno di dedicare un processo / thread per connessione.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.