PDA

View Full Version : Apache 2 ed occupazione memoria elevata


Tjherg
07-12-2009, 11:31
Salve a tutti, qualche discussione fa cercavo un sw per effettuare una piccola gestione clienti, mi venne consigliato vtiger.

Questo sw si appoggia ad apache - mysql e php per funzionare.

Mi sono prodigato per l'installazione sulla mia ubuntu 9.10 e non ho avuto alcun problema una volta soddisfatte tutte le dipendenze, solo che ho notato una cosa praticamnte all'avvio del sistema ho
+ o - questa situazione nei processi
apache 2 mi crea 6 processi dai 5 ai 10 mb (di default)

poi una volta avviato il software via browser i processi diventano 9 tutti da 20-50 mb così la memoria occupata totale si aggira sui 400 - 500 mb
Non sono un po' tantini?

mi accade così che i miei 2 gb di ram tra memoria sys op memoria occupata da mysql memoria occupata da apache2 siano quasi completamente saturati.

E' normale oppure c'è qualche impostazione di apache da correggere?

Gimli[2BV!2B]
07-12-2009, 13:51
Sia Apache che Mysql creano una serie di tread, ma la memoria che vedi indicata per ognuno di loro è in realtà condivisa (in massima parte).

Per esempio, al momento ho sotto mano un micro web-server virtuale con 91 MB di RAM.
Sto osservando dodici thread mysql in htop (http://htop.sourceforge.net/), per ognuno dei quali è indicata una occupazione di RAM del 21.7 % = 20240 Kb di Memoria residente.
Memoria totale di sistema occupata 30 Mb.
Stessa cosa, solo con un paio di mega di RAM coinvolta e solo 6 thread, per Apache.

In realtà l'occupazione di memoria dovuta al numero di thread è trascurabile.

Controlla cosa dice il comando free -m, sia a sistema appena avviato che dopo un po' di pagine servite da Apache.
Il valore che più rappresenta l'occupazione di memoria reale è la colonna used della riga +/- buffers/cache

Tjherg
07-12-2009, 17:37
con free -m esce questo
total used free shared buffers cached
Mem: 2009 1685 323 0 53 433
-/+ buffers/cache: 1198 810
Swap: 2055 363 1691


Pero' già si vede che c'è qualcosa che nn va con lo swap.

Ho notato una cosa se nn uso il sw per diverso tempo il la memoria in uso diminuisce.
Sicoome ho anche postgresql in funzione provo a rimuoverlo.
Ho anche myphpadmin

non è che apache si mette "comodo" in base alla memoria disponibile?

Gimli[2BV!2B]
07-12-2009, 20:10
Il risultato di free non mi sembra pessimo, senz'altro abbondante, ma ancora con un discreto margine prima di finire in thrashing.

Senz'altro il kernel alloca ad ogni thread fette di memoria virtuale proporzionali alla memoria disponibile, che però non è effettivamente occupata.
Quel valore di free indica la quantità verosimile di RAM/swap realmente occupata da dati, che, nel tuo caso, non è certamente poca.

Ora sto osservando un sistema più reale, con un un trio di siti basati su tecnologie ben diverse tra loro: php, Ruby on Rails su mod_passenger + fcgid, Perl su mod_perl + cgi.
Lavorandoci con qualche connessione la memoria di sistema totale occupata è di circa 150 MB / 1010 RAM + 1035 swap (solo Mysql + Apache2 + demoni fondamentali).
Il primo thread di Apache ha più del 50% di memoria condivisa e occupa 36 MB di memoria residente.
In totale sono una dozzina, in media occupano 30 MB di memoria; la memoria condivisa via via diminuisce come la relativa memoria residente fino ad un minimo del 13% su 20 MB.
Nel tuo caso, visto che si parla di un solo sito, mi aspetterei una situazione più omogenea.

Sono proprio i thread di Apache le voce più importante in termini di memoria occupata? In che proporzioni di memoria condivisa e residente?

Prova ad installare htop e prova ad analizzare i numeri che propone. Le colonne che osservo io sono RES (memoria residente, cioè RAM effettivamente occupata) ed SHR (shared memory, memoria condivisa tra i vari thread).

Tjherg
08-12-2009, 11:01
ok sono andato per eliminazione (ho ovvimente arrestato tutti i processi di apache mysqld), a quanto pare non c'entra un cavolo apache è ben altro che mi ciuccia ram

Clamav antivirus si mangia ben 112 mb

l'htop mi da res 118 mb e shr 524
poi altre cosette, cred che il tutto sia dipeso dalla ubuntu 9.10
ci tengo a sottolineare che io non sto utilizzando apache come vero server web ma solo in localhost.