Leggi available, non free
Linux usa la memoria altrimenti inutilizzata come cache del disco, quindi è normale avere poca memoria libera su un server che funziona correttamente. La colonna available è la stima del kernel della memoria utilizzabile da nuovi carichi senza ricorrere allo swap. È questo il valore da osservare. Il calcolo esatto di used dipende dalla versione dello strumento, quindi non confrontarlo tra sistemi diversi.
free -h
grep -E 'MemAvailable|Shmem:|SReclaimable' /proc/meminfoCosa può essere liberato dalla cache e cosa no
La cache delle pagine può solitamente essere liberata quando le applicazioni hanno bisogno di memoria. Anche la memoria condivisa e tmpfs (Shmem) compaiono nella cache, ma non possono essere semplicemente eliminati, perché contengono dati privi di una copia su disco. Una cache grande con poca memoria available indica quindi spesso un tmpfs o un segmento di memoria condivisa di grandi dimensioni.
df -h -t tmpfs
sudo slabtop -o | head -15Lo swap in uso non è automaticamente un problema
Un server può mantenere per settimane nello swap pagine usate raramente senza conseguenze negative. Il problema è il trasferimento continuo. Osserva le colonne si e so di vmstat: valori che rimangono sopra lo zero indicano che il sistema sta trasferendo attivamente pagine da e verso lo swap, segno di una reale carenza di memoria.
swapon --show
vmstat 1 5Scopri cosa occupa la memoria
Ordina i processi per memoria residente. RSS conteggia in ciascun processo le pagine condivise con altri processi, quindi i valori di più processi non si possono semplicemente sommare. Gli strumenti con PSS, come smem, forniscono una somma più rappresentativa, se sono installati.
ps -eo pid,user,rss,comm --sort=-rss | head -15Riconosci una reale carenza
I segnali sono poca memoria disponibile, trasferimenti continui da e verso lo swap e processi terminati dal meccanismo out-of-memory killer. Controlla il registro del kernel. Non eseguire drop_caches per migliorare l’aspetto dei numeri: costringe soltanto il server a rileggere i dati dal disco e non risolve nulla.
sudo journalctl -k --no-pager | grep -iE 'out of memory|oom-kill'Memoria in CH-J Server Manager
System Monitor legge questi valori tramite SSH. Su Linux definisce used come MemTotal − MemFree − Buffers − Cached − SReclaimable e available come la stima del kernel. La memoria condivisa fa parte di Cached e non è liberabile; le categorie della barra non si sovrappongono. Poiché la formula differisce da quella di alcune versioni di free, i numeri potrebbero non corrispondere esattamente. Mostra anche lo swap con la cronologia di utilizzo. ZFS ARC non viene trattato separatamente, quindi sugli host ZFS viene conteggiato come memoria usata.