CH-J Server Managergestione server su SSH
Menu
Tutte le guide e gli articoli →

Come interpretare RAM, cache e swap su un server Linux

Cosa significano le colonne di free, perché un utilizzo elevato della memoria spesso è normale e quali segnali indicano davvero una carenza di memoria.

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/meminfo

Cosa 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 -15

Lo 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 5

Scopri 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 -15

Riconosci 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.

Documentazione dettagliata

man: free →

man: proc_meminfo →

Sblocco biometrico e sicurezza →