Dicembre 17, 2021

Come controllare l’utilizzo della memoria in Linux

Vedi tutte le FAQ relative a GNU/Linux

Come faccio a controllare l’utilizzo della memoria in Linux usando le opzioni della riga di comando e della GUI?
Abbiamo RAM fisica come 16 GB e memoria di swap. La memoria swap non è altro che spazio su disco che consente al computer Linux di eseguire più applicazioni contemporaneamente di quelle che si inseriscono nella memoria di sistema (RAM). Questa pagina spiega vari comandi per controllare l’utilizzo della memoria e l’utilizzo in Linux utilizzando strumenti da riga di comando e GUI.

PUBBLICITÀ

Comandi per controllare l’utilizzo della memoria in Linux

Il sistema Linux deve funzionare a un livello ottimale. La memoria gioca un ruolo critico in un sistema Linux. Uno sviluppatore o sysadmin esperto deve conoscere la quantità totale di libero e utilizzato fisico, compresa la memoria di swap nel server. Sarebbe meglio se tenessi d’occhio anche i buffer e le cache utilizzate dal kernel.

Il file /proc/meminfo

Il file /proc/meminfo riporta statistiche sull’utilizzo della memoria su Linux. Usa il comando cat command / less command o il comando grep command / eep come segue sulla tua Linux box:
cat /proc/meminfo
more /proc/meminfo

Come controllare l'utilizzo della memoria in Linux
Ogni riga del file /proc/meminfo consiste in un nome di parametro, seguito da due punti, il valore del parametro e un’unità di misura opzionale. Ad esempio,”kB”.

Comprensione dei parametri di utilizzo della memoria

Campi descrizione tabella
Parametro Descrizione
MemTotal RAM utilizzabile totale (cioè, ram fisica meno alcuni bit riservati e il codice binario del kernel).
Mefree La somma di LowFree + HighFree.
MemAvailable (da Linux 3.14) Una stima di quanta memoria è disponibile per l’avvio di nuove applicazioni, senza scambiare.
Buffer Memoria relativamente temporanea per blocchi di disco raw che non dovrebbero diventare enormemente grandi (20 MB o giù di lì).
Cache in memoria per i file letti dal disco (la cache della pagina). Non include SwapCached.
SwapCached La memoria che una volta è stata scambiata, viene scambiata di nuovo ma è ancora nel file di swap.
Memoria attiva che è stata utilizzata più di recente e di solito non recuperata a meno che non sia assolutamente necessario.
Memoria inattiva che è stata utilizzata meno di recente. È più idoneo per essere recuperato per altri scopi.
HighTotal Importo totale di highmem. Highmem è tutta la memoria sopra ~860 MB di memoria fisica. Aree Highmem sono per l’uso da parte di programmi di spazio utente, o per la cache di pagina. Il kernel deve usare trucchi per accedere a questa memoria, rendendo più lento l’accesso rispetto a lowmem.
HighFree Quantità di highmem gratuito.
LowFree Quantità di lowmem gratuito.
SwapTotal Quantità totale di spazio di swap disponibile.
SwapFree Quantità di spazio di swap attualmente inutilizzato.
Dirty Memoria che è in attesa di essere scritta sul disco.
Writeback Memoria che viene attivamente riscritta sul disco.
AnonPages Pagine non supportate da file mappate in tabelle di pagine dello spazio utente.
Mappato File che sono stati mappati in memoria(con mmap (2)), come le librerie.
Shmem Quantità di memoria consumata nei filesystem tmpfs(5).
KReclaimable Allocazioni del kernel che il kernel tenterà di recuperare sotto pressione della memoria. Include SReclaimable (sotto) e altre allocazioni dirette con uno shrinker.
Slab Cache delle strutture dati nel kernel. (Vedi slabinfo (5).)
SReclaimable Parte di Slab, che potrebbe essere recuperata, come le cache.
SUnreclaim Parte della lastra, che non può essere recuperata sulla pressione della memoria.
KernelStack Quantità di memoria allocata agli stack del kernel.
PageTables Quantità di memoria dedicata al livello più basso delle tabelle di pagina.
NFS_Unstable Pagine NFS inviate al server, ma non ancora impegnate nello storage stabile.
Bounce Memoria utilizzata per il dispositivo a blocchi “bounce buffer”.
WritebackTmp Memoria utilizzata da FUSE per buffer di writeback temporanei.
CommitLimit Questa è la quantità totale di memoria attualmente disponibile da allocare sul sistema, espressa in kilobyte. Questo limite viene rispettato solo se è abilitata la contabilità strict overcommit (modalità 2 in / proc/sys/vm / overcommit_memory). Il limite viene calcolato secondo la formula descritta in / proc/sys/vm / overcommit_memory.
Committed_AS La quantità di memoria attualmente allocata sul sistema. La memoria impegnata è una somma di tutta la memoria che è stata allocata dai processi, anche se non è stata ancora “utilizzata” da loro. Un processo che alloca 1 GB di memoria (usando malloc(3) o simile), ma tocca solo 300 MB di quella memoria apparirà come usando solo 300 MB di memoria anche se ha lo spazio degli indirizzi allocato per l’intero 1 GB. Questo 1GB è memoria che è stata “impegnata” dalla VM e può essere utilizzata in qualsiasi momento dall’applicazione di allocazione. Con strict overcommit abilitato sul sistema (modalità 2 in / proc/sys/vm / overcommit_memory), le allocazioni che supererebbero il CommitLimit non saranno consentite. Questo è utile se è necessario garantire che i processi non falliscano a causa della mancanza di memoria una volta che la memoria è stata allocata con successo.
VmallocTotal Dimensione totale dell’area di memoria vmalloc.
VmallocUsed Quantità di area vmalloc utilizzata. Da Linux 4.4, questo campo non è più calcolato ed è codificato come 0. Vedi / proc / vmallocinfo.
VmallocChunk Più grande blocco contiguo di area vmalloc che è libero. Da Linux 4.4, questo campo non è più calcolato ed è codificato come 0. Vedi / proc / vmallocinfo.
LazyFree Mostra la quantità di memoria contrassegnata da madvise (2) MADV_FREE.
AnonHugePages Pagine enormi non supportate da file mappate in tabelle di pagine dello spazio utente.
ShmemHugePages Memoria utilizzata dalla memoria condivisa (shmem) e tmpfs(5) allocata con pagine enormi
ShmemPmdMapped Memoria condivisa mappata nello spazio utente con pagine enormi.
CmaTotal Totale CMA (Contiguous Memory Allocator) pagine.
CmaFree CMA libero (Contiguous Memory Allocator) pagine.
HugePages_Total La dimensione del pool di pagine enormi.
HugePages_Free Il numero di pagine enormi nel pool che non sono ancora allocate.
HugePages_Rsvd Questo è il numero di pagine enormi per le quali è stato effettuato un impegno di allocazione dal pool, ma non è stata ancora effettuata alcuna allocazione. Queste pagine enormi riservati garantiscono che un’applicazione sarà in grado di allocare una pagina enorme dal pool di pagine enormi in tempo di guasto.
HugePages_Surap Questo è il numero di pagine enormi nel pool sopra il valore in /proc/sys/vm/nr_hugepages. Il numero massimo di pagine enormi in eccesso è controllato da / proc/sys/vm / nr_overcommit_hugepages.
Hugepagesize La dimensione di pagine enormi.
DirectMap4k Numero di byte di RAM mappati linearmente dal kernel in pagine da 4kB.
DirectMap4M Numero di byte di RAM mappati linearmente dal kernel in pagine da 4 MB.
DirectMap2M Numero di byte di RAM mappati linearmente dal kernel in pagine da 2 MB.
DirectMap1G x86 con CONFIG_X86_64 e CONFIG_X86_DIRECT_GBPAGES abilitati.

Possiamo filtrare il file usando il comando grep o il comandogreep come segue:
grep -E --color 'Mem|Cache|Swap' /proc/meminfo
File Linux proc meminfo

Utilizzo del comando libero per controllare l’utilizzo della memoria usata e libera

L’output di /proc/meminfo è potente ma non facile da usare. Quindi, dobbiamo usare il comando libero. Il comando libero mostra la quantità di memoria libera e utilizzata nel sistema Linux. Per esempio:
free
Vuoi vedere l’output leggibile dall’uomo? Provare:
free -h
free --human

Campione uscite:

 total used free shared buff/cache availableMem: 94Gi 15Gi 672Mi 428Mi 78Gi 77GiSwap: 0B 0B 0B
Le colonne visualizzate sono le seguenti:
Colonna Descrizione
totale Totale di memoria installata
usato memoria Utilizzata (calcolato come totale – libero – buffer – cache)
gratis memoria Inutilizzata (MemFree e SwapFree in /proc/meminfo)
condiviso Memoria utilizzata per lo più da tmpfs (Shmem in /proc/meminfo)
buffer Memoria utilizzata dal kernel buffer (buffer in /proc/meminfo)
cache Memoria utilizzata dalla cache della pagina e lastre (memorizzate nella cache e SReclaimable in / proc / meminfo)
buff / cache Somma di buffer e cache
disponibile Stima della quantità di memoria disponibile per l’avvio di nuove applicazioni, senza scambio.

Siamo in grado di ripetere la stampa libera uscita di comando ogni N secondi. Ad esempio, stampare l’output ogni 5 secondi e uscire dopo dieci ripetizioni (conteggi) sullo schermo:
free -s 5 -c 10
Possiamo controllare l’uscita del comando libero come segue:
free
free -k
free -g
free -m

Controllo gratuito dell’output del comando
Opzione visualizzare l’output in
-b, –byte
–chilo kilobyte
–mega megabyte
–giga gigabyte
–tera terabyte
–peta petabyte
-k, –kibi kibibytes
-m, –mebi mebibytes
-g, –gibi gibibyte
–tebi tb
–pebi pebibytes

vmstat comando

Il vmstat comando è potente, e mostra le informazioni su Linux hardware, come:

  • Processi
  • Memoria
  • Paging
  • Blocco IO
  • Trappole
  • Dischi
  • CPU attività di

Aprire il terminale e digitare il seguente comando:
vmstat
sessione di Esempio dal mio Ubuntu Linux desktop:

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 11434840 2567516 10238916 0 0 26 75 142 55 13 5 82 0 0

Passare-w per vedere vasta output su schermo:
vmstat -w

procs -----------------------memory---------------------- ---swap-- -----io---- -system-- --------cpu-------- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 11405404 2567988 10324528 0 0 26 75 142 58 13 5 82 0 0

CAMPO DESCRIZIONE PER VM MODALITÀ (Memoria e Swap)
Campo Descrizione
swpd la quantità di memoria virtuale utilizzata.
libero la quantità di memoria inattiva.
buff la quantità di memoria utilizzata come buffer.
cache la quantità di memoria utilizzata come cache.
inact la quantità di memoria inattiva. (- un’opzione)
attivo la quantità di memoria attiva. (- un’opzione)
si Quantità di memoria scambiata dal disco (/s).
quindi Quantità di memoria scambiata su disco (/s).

comando top e htop

I comandi top e htop forniscono una visualizzazione dinamica in tempo reale di un sistema Linux in esecuzione. Questo include informazioni su:

Patreon sostenitori solo guide 🤓
  • Nessun annuncio e tracciamento
  • Guide approfondite per sviluppatori e amministratori di sistema su Opensourceflare
  • Unisciti a my Patreon per supportare i creatori di contenuti indipendenti e iniziare a leggere le ultime guide:
    • Come impostare Redis sentinel cluster su Ubuntu o Debian Linux
    • Come Impostare le Chiavi SSH Con YubiKey come l’autenticazione a due fattori (U2F/FIDO2)
    • Come impostare Mariadb Galera cluster su Ubuntu o Debian Linux
    • Un podman tutorial per principianti – parte I (Linux contenitori senza finestra Mobile e in daemonless modalità)
    • Come proteggere Linux contro rogue periferiche USB utilizzando USBGuard
    • Se il tuo dominio non è l’invio di e-mail, impostare le seguenti impostazioni DNS per evitare di phishing e spoofing

Unire Patreon ➔

  • Utilizzo hardware e CPU
  • Uptime Linux
  • Utilizzo memoria e swap
  • Processi di sistema e altro ancora

Si prega di notare che htop non è installato per impostazione predefinita. Ma è possibile installarlo su CentOS, Debian, Ubuntu e altri sistemi operativi facilmente.

Eseguire il seguente comando:
top
htop

Segnala l’utilizzo della memoria con la memoria condivisa divisa proporzionalmente

Lo strumento smem riporta:

  • Utilizzo della memoria fisica tenendo conto delle pagine di memoria condivise. La memoria non condivisa viene segnalata come USS (Unique Set Size).
  • La memoria condivisa viene divisa equamente tra i processi che condividono tale memoria.
  • La memoria non condivisa (USS) più la proporzione di memoria condivisa di un processo viene riportata come PSS (Proportional Set Size).
  • USS e PSS includono solo l’utilizzo della memoria fisica. Non includono la memoria che è stata scambiata su disco.
  • La memoria può essere segnalata da un processo, da un utente, mappando o a livello di sistema. Sono disponibili sia la modalità testo che l’output grafico.

si può installare smem utilizzando il comando apt/apt-get comando su Linux Debian/Ubuntu:
sudo apt install smem
Esecuzione come segue:
smem
# show whole system #
smem -w
# show meme usage about specifc user #
smem -u vivek
smem -u nginx
# get help #
man smem
smem --help

User Count Swap USS PSS RSS vivek 139 0 7593240 8210344 13017360

Controllare l’utilizzo della memoria in Linux utilizzando la GUI

Monitor di Sistema è una GUI di Linux app che mostra quali programmi sono in esecuzione e quanto tempo processore, memoria e spazio su disco vengono utilizzati. Possiamo aprire il monitor di sistema dalla panoramica delle attività. Premere il tasto Super sulla tastiera. È possibile visualizzare le finestre e le applicazioni nella panoramica. Si può anche solo iniziare a digitare per cercare le applicazioni, come Monitor di sistema. La scheda Risorse indica la quantità di memoria (RAM) del computer utilizzata. Per verificare quali processi utilizzano più memoria: fare clic sulla scheda Processi. Fare clic sull’intestazione della colonna Memoria per ordinare i processi in base all’utilizzo della memoria.

Vedere la documentazione per maggiori informazioni.

Riassumendo

Hai imparato come trovare l’utilizzo della memoria Linux (RAM) su Linux usando gli strumenti GUI e CLI.

🐧 ricevi le ultime tutorial su Linux, Open Source & DevOps via
feed RSS ➔ email newsletter Settimanale ➔

ANNUNCIO

Categoria Elenco di Unix e Linux comandi
Download manager wget
Documentazione guida • mandb • uomo • pinfo
spazio su Disco analizzatori df • duf • ncdu • pydf
la Gestione dei File cat • cp • meno • mkdir • più • di albero
Firewall Alpino Mura • CentOS 8 • OpenSUSE • RHEL 8 • Ubuntu 16.04 • Ubuntu 18.04 • Ubuntu 20.04
Linux Desktop apps Skype • Spotify • VLC 3
Moderni servizi di pubblica utilità bat • exa
Utility di Rete NetHogs • scavi • host • ip • nmap
OpenVPN CentOS 7 • CentOS 8 • Debian 10 • Debian 8/9 • Ubuntu 18.04 • Ubuntu 20.04
Gestore di Pacchetti apk • apt
Processi di Gestione bg • chroot • cron • disconoscere • fg • sguardi • gtop • iotop • lavori • killall • uccidere • pidof • pstree • pwdx • tempo • vtop
Ricerca ag • grep • whereis • che
i comandi incorporati della Shell compgen • echo • printf
l’elaborazione del Testo taglio • rev
Informazioni Utente gruppi • id • lastcomm • ultimo * lid / libuser-lid * logname * membri * utenti * whoami * who * w
Per maggiori informazioni clicca qui 20.04

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.