Re: Server che non rilascia la ram

2018-03-10 Per discussione Felipe Salvador
On Sat, Mar 10, 2018 at 04:05:51PM +0100, Felipe Salvador wrote:
> > La cosa strana è che anche killando uno ad uno i processi, la memoria non 
> > viene rilasciata e l'unico modo per pulirla è riavviare.
> 
> Perché continua a tenersi in pancia pagine e pagine di memoria sotto
> forma di cache e buffer. Puoi droppare cache e buffer selettivamente[¹], ma
> finché non riporti qual'è il problema questo rimane una non soluzione a un
> non problema.

N.B Il fatto che continui a tenersi in pancia quelle pagine di memoria
non significa che non sia consapevole della chiusura del programma a
cui appartenevano.

   Active: Memory that has been used more recently and usually not
   reclaimed unless absolutely necessary.
   Inactive: Memory which has been less recently used.  It is more
   eligible to be reclaimed for other purposes

Queste verranno quindi contrassegnato come Inactive, e rese eleggibili
per la loro liberazione, che avverrà dopo che le informazioni
contenute saranno scritte su disco.

In sostanza Linux non muove un dito(o ciclo) per "pulire" la memoria,
a meno che non ne abbia bisogno. Anzi ne occupa quanta più gliene
occorre per ridurre i tempi di accesso alle informazioni richieste,
nell' I/O e nella esecuzione dei programmi.

Mi rimetto alla analisi dei più esperti per correzioni o smentite. 

> > Non so che tool utilizzare per capire che succede (free, top, htop non mi 
> > aiutano ...)
> 
> Hai citato il nome di programmi che sono il pane, se si vuole venire a
> capo di questo genere di problemi. Potresti cortesemente eseguire un
> free e mostrarlo alla lista?
> 
> > La stretch è costantemente aggiornata, tranne il kernel che è fermo a 
> > 4.9.51-1
> > 
> > Grazie a chi mi da un buon consiglio !
> > 
> > -- 
> > Michele Orsenigo
> > deb...@orsenigo.it
> 
> [¹] 
> https://unix.stackexchange.com/questions/87908/how-do-you-empty-the-buffers-and-cache-on-a-linux-system
> -- 
> Felipe Salvador

-- 
Felipe Salvador



Re: Server che non rilascia la ram

2018-03-10 Per discussione Felipe Salvador
On Sat, Mar 10, 2018 at 02:14:42PM +0100, Michele Orsenigo wrote:
> Ciao

Ciao

> ho da poco rifatto un server (macchina virtuale a 32 bit con wheezy) 
> utilizzando stretch a 64 bit.
> Non riesco però a capire perchè l'utilizzo di ram continui ad aumentare nel 
> corso del tempo.

Perché nel corso del tempo Linux la utilizza generosamente per cache e buffer e
nell'utilizzarla non bada a quella che potrebbe essere la percezione
dell'utente finale. Ergo, a te pare che sia un ingordo, in realtà sta
facendo il suo dovere.


> La macchina ha 1,5G di ram disponibile, al riavvio i processi server ne 
> occupano al massimo 1/3, ma dopo circa una settimana mi restano liberi al 
> massimo 200M e continuano a diminuire.


$free -h
   totalusedfree  shared  buff/cache   
available
Mem:   5,8G1,8G949M 65M3,1G 
   3,7G
Swap:  4,0G  0B4,0G

Nota che per "liberi", cioè spendibili, il campo da tenere in
considerazione e available, non free.

1,5G di RAM forse non sono molti, ma finché non noti chiusure anomale
di applicazioni o eccessivi rallentamenti non hai di che preoccuparti.


> I processi attivi sono mariadb, apache, postfix, dovecot, opendkim, ntpd e 
> sshd.
> Ovviamente il maggior consumo è dato da mariadb e da apache, anche se 
> complessivamente è una macchina con un carico irrisorio (per la precedente i 
> 700M che aveva disponibili erano più che sufficienti)

Cosa intendi? 700M di cosa?
 
> La cosa strana è che anche killando uno ad uno i processi, la memoria non 
> viene rilasciata e l'unico modo per pulirla è riavviare.

Perché continua a tenersi in pancia pagine e pagine di memoria sotto
forma di cache e buffer. Puoi droppare cache e buffer selettivamente[¹], ma
finché non riporti qual'è il problema questo rimane una non soluzione a un
non problema.

> Non so che tool utilizzare per capire che succede (free, top, htop non mi 
> aiutano ...)

Hai citato il nome di programmi che sono il pane, se si vuole venire a
capo di questo genere di problemi. Potresti cortesemente eseguire un
free e mostrarlo alla lista?

> La stretch è costantemente aggiornata, tranne il kernel che è fermo a 4.9.51-1
> 
> Grazie a chi mi da un buon consiglio !
> 
> -- 
> Michele Orsenigo
> deb...@orsenigo.it

[¹] 
https://unix.stackexchange.com/questions/87908/how-do-you-empty-the-buffers-and-cache-on-a-linux-system
-- 
Felipe Salvador



Server che non rilascia la ram

2018-03-10 Per discussione Michele Orsenigo
Ciao

ho da poco rifatto un server (macchina virtuale a 32 bit con wheezy) 
utilizzando stretch a 64 bit.
Non riesco però a capire perchè l'utilizzo di ram continui ad aumentare nel 
corso del tempo.
La macchina ha 1,5G di ram disponibile, al riavvio i processi server ne 
occupano al massimo 1/3, ma dopo circa una settimana mi restano liberi al 
massimo 200M e continuano a diminuire.
I processi attivi sono mariadb, apache, postfix, dovecot, opendkim, ntpd e 
sshd.
Ovviamente il maggior consumo è dato da mariadb e da apache, anche se 
complessivamente è una macchina con un carico irrisorio (per la precedente i 
700M che aveva disponibili erano più che sufficienti)
La cosa strana è che anche killando uno ad uno i processi, la memoria non 
viene rilasciata e l'unico modo per pulirla è riavviare.
Non so che tool utilizzare per capire che succede (free, top, htop non mi 
aiutano ...)
La stretch è costantemente aggiornata, tranne il kernel che è fermo a 4.9.51-1

Grazie a chi mi da un buon consiglio !

-- 
Michele Orsenigo
deb...@orsenigo.it