GNU/Linux >> Linux Esercitazione >  >> Linux

Analisi del comando free:cosa deve sapere l'amministratore di sistema Linux

gratuito è un comando popolare utilizzato dagli amministratori di sistema su piattaforme Unix/Linux. È uno strumento potente che fornisce informazioni dettagliate sull'utilizzo della memoria in un formato leggibile dall'uomo.

L'uomo pagina per questo comando afferma che free visualizza la quantità totale di memoria libera e utilizzata sul sistema, incluso lo spazio fisico e di scambio, nonché i buffer e le cache utilizzati dal kernel. Le informazioni vengono raccolte analizzando /proc/meminfo .

Come ogni altro comando, free ha subito revisioni nel tempo per rendere i suoi risultati significativi e accurati per il processo decisionale. In Red Hat Enterprise Linux (RHEL) 6, l'output è leggermente diverso da quello di RHEL 7 e 8. Tuttavia, in tutte queste versioni, ci sono parametri chiave che non cambiano.

Su RHEL 6, digitando free -h (Ho usato il -h opzione per il formato leggibile) mostra un output simile al seguente:

[root@srv ~]# free -h totale utilizzato buffer condivisi gratuiti memorizzati nella cache:94G 44G 49G 161M 993M 1.3G-/+ buffer/cache:42G 52GSwap:15G 0B 15G 

(figura 1)

RHEL 7/8 visualizza informazioni simili alle seguenti:

[root@server1 ~]# free -h totale utilizzato libero buff/cache condiviso disponibileMem:15G 751M 1.2G 272M 13G 14GSwap:0B 0B 0B 

(figura 2)

RHEL 8 avrà un output simile al seguente:

;


Per rendere più leggibile l'output sopra, il comando fornisce varie opzioni:
gratuito -b , -k , -m , -g :mostra la quantità di memoria in byte, kilobyte, megabyte,  gigabyte rispettivamente. Puoi anche usare free -h per mostrare l'output in output leggibile. Per favore, esegui free --help per ulteriori informazioni sulle opzioni.

Le varie colonne, visualizzate dalle varie versioni precedenti, cercano di identificare la memoria Totale, utilizzata, libera, condivisa. Cerca inoltre di visualizzare anche la memoria contenuta nella cache e nei buffer.

Tuttavia, come con la maggior parte dei comandi, le colonne pertinenti da verificare possono essere di interesse per l'amministratore di sistema durante le operazioni di pulizia o risoluzione dei problemi di un problema sono spiegati di seguito.

Red Hat Enterprise Linux 6

Nel caso di RHEL 6, l'attenzione dovrebbe essere sui -/+ buffer/cache colonna.

Nella figura 1 sopra, il totale è 94 GB, utilizzato è 44 GB e gratuito è 49 GB. Questo sistema è abbastanza occupato, ma la RAM utilizzata sembra alta. Questo non dovrebbe destare molte preoccupazioni, ma l'amministratore deve esaminare i -/+ buffer/cache colonna. I -/+ buffer/cache visualizza la memoria utilizzata come 42 GB e la memoria libera come 52 GB. Ciò significa che la quantità effettiva di RAM utilizzata è 42 GB e non 44 GB. Il valore 44 GB include anche la cache. Un semplice sguardo all'usato valore senza considerare che la cache influisce sulla tua interpretazione delle prestazioni del sistema.

I buffer e le colonne memorizzate nella cache sono spiegati di seguito:

  • buffer:memoria utilizzata dai buffer del kernel
  • in cache:spazio di memoria occupato da "Page Cache".

Le pagine della cache non sono altro che i dati/file che vengono copiati nella RAM quando il kernel esegue operazioni di lettura/scrittura su un disco. Il motivo per mantenere queste pagine nella cache è per le prestazioni di I/O. Quindi, il kernel mantiene questi file nella RAM e li libera ogni volta che non è necessario o ogni volta che viene richiesto uno spazio di memoria da un nuovo processo/comando fornito quando non c'è spazio libero disponibile nella RAM.

Red Hat Enterprise Linux 7/8

In RHEL 7/8, l'attenzione dovrebbe essere concentrata sulla disponibile colonna. In RHEL 7/8, i -/+ buffer/cache è stato tolto e sostituito con il disponibile colonna. Il buffer e cache sono stati combinati in buff/cache e hanno lo stesso significato spiegato sopra. Il disponibile la colonna stima la quantità di memoria disponibile per l'avvio di nuove applicazioni senza eseguire lo scambio.

Nella figura 2 sopra, la RAM totale installata è 15 GB, utilizzata è 751 MB e libera è 1,2 GB. Usando lo stesso ragionamento che abbiamo fatto con RHEL 6, un semplice sguardo all'usato valore potrebbe portare a conclusioni errate. Il usato colonna dovrebbe essere compresa tenendo presente anche la colonna della cache. C'è molta cache con disponibile valore di 14 GB, che è molto alto, quasi uguale alla RAM totale.

Quando dovrebbe iniziare a preoccuparsi l'amministratore di sistema?

Un sistema integro con memoria più che sufficiente, dopo essere stato in esecuzione per un po', mostrerà il seguente comportamento previsto e innocuo:

  • La memoria libera è vicina a 0 o significativamente ridotta
  • La memoria utilizzata è quasi totale
  • La memoria disponibile (o -/+ buffer/cache liberi) è maggiore rispetto alla memoria totale
  • il valore di scambio utilizzato non cambia

Tuttavia, l'amministratore di sistema deve preoccuparsi quando ci sono segnali che costituiscono una vera situazione di memoria insufficiente. Di seguito sono riportati alcuni di questi segni:

  • la memoria disponibile (o -/+ buffer/cache liberi) è prossima allo zero o è notevolmente ridotta
  • i valori di swap used iniziano ad aumentare o a fluttuare poiché non ci sono pagine di memoria libere che il sistema può utilizzare e quindi deve ricorrere all'utilizzo del disco di swap
  • Ci sono messaggi OutOfMemory-killer nei log se controllati con grep -i kill /var/log/messages* o dmesg | grep oom-killer

Conclusione

Il gratuito command è un'utilità molto utile che può dire all'amministratore di sistema molto su ciò che sta accadendo sul server. Imparare a riconoscere le differenze tra le versioni di free può aiutare con un'interpretazione più accurata dell'output.

[ Vuoi provare Red Hat Enterprise Linux? Scaricalo ora gratuitamente. ]


Linux
  1. Non farlo mai sul tuo linux rm -rf * / un comando per interrompere l'intero linux

  2. Qual è l'equivalente del comando "libero" di Linux su FreeBSD v8.1

  3. Cosa significa &alla fine di un comando Linux?

  4. Qual è l'equivalente del comando File Linux per Windows?

  5. Qual è l'equivalente di ~ (tilde) di Linux in Windows?

Comando gratuito in Linux

25 comandi di base di Linux che un principiante deve conoscere

Che cos'è la shell in Linux?

Strumenti Sysadmin:11 modi per usare il comando ls in Linux

Il comando timer in Linux

Qual è il comando kill in Linux?