Quanto Linux di memoria utilizzata da un processo?

January 14

Quanto Linux di memoria utilizzata da un processo?


Determinare la quantità di memoria utilizzata da un processo in esecuzione su una piattaforma Linux è una proposta difficile. I valori per l'utilizzo della memoria riportati dal sistema operativo sono imprecisi. Quando si utilizzano le utilità incorporati forniti con Linux, è importante per capire le statistiche di utilizzo della memoria e di come stanno calcolato.

Come funziona un processo di utilizzo della memoria?

Quando un processo viene avviato, il sistema operativo alloca la quantità di memoria il processo richiede di eseguire. Ogni processo ha quattro segmenti di memoria per il codice eseguibile e dati. Il segmento "codice" contiene le istruzioni eseguibili. Il segmento "dati" contiene variabili statiche e globali. Il "stack" contiene le variabili locali. Il "cumulo" contiene oggetti allocati dinamicamente. I processi possono utilizzare librerie condivise. Le librerie condivise vengono caricati in memoria solo una volta, e tutti i processi che utilizzano una particolare libreria condivisa useranno quella copia.

Ciò che la memoria statistica non Linux rapporto?

La memoria virtuale è la quantità totale di spazio di indirizzi riservato dal sistema operativo al processo per il suo codice, dati e stack. La dimensione della memoria virtuale riportato da Linux include tutto lo spazio codice, dati e pila riservata all'uso da parte di un processo, sia memoria fisica e di spazio swap. Questo valore include lo spazio utilizzato da tutte le librerie condivise utilizzate dal processo. L'implicazione di questo è che le librerie condivise contano in piena verso la dimensione di un dato processo.

La dimensione della memoria residente in un processo riportato da Linux include solo la quantità di memoria fisica del processo e le librerie condivise riferimenti utilizzano in un dato momento. Segmenti spostati per scambiare lo spazio non sono inclusi. Come con la dimensione della memoria virtuale, la dimensione della memoria residente include lo spazio utilizzato da librerie condivise.

Visione di un'istantanea processo semplice con ps

L'utilità ps fornisce un'istantanea dei processi in esecuzione sul sistema, riportando le percentuali di dimensione della memoria virtuale e residente, CPU e memoria, e una vasta gamma di altre informazioni. Per esaminare un singolo processo, usare le seguenti opzioni per ps, tra cui VSZ per la dimensione della memoria virtuale e rss per la dimensione della memoria residente. Per esempio,

ps p 3746 o PID, rss, VSZ, comm

uscite per processo 3746:

PID RSS VSZ COMANDO
3746 14444 351.216 httpd2

I processi di monitoraggio con la parte superiore

Quanto Linux di memoria utilizzata da un processo?


L'utilità superiore offre una visione dal vivo delle prestazioni del sistema. Per monitorare uno o più specifici processi con la parte superiore, utilizzare l'opzione -iP di fornire un elenco di ID di processo. Per esempio:

top -p 3746,6100,28753,23176,25544

Dopo aver lanciato in alto, premere il tasto di comando "F" per accedere alla schermata di selezione della colonna. Attivare la visualizzazione per i PID, VIRT, RES, SHR, colonne SWAP, Codice, i dati e il comando. Come illustrato nella schermata, il display mostra ora le seguenti statistiche di memoria:

VIRT: dimensione della memoria virtuale
RES: dimensioni della memoria residente
SHR: dimensione della memoria condivisa
SWAP: dimensioni Swapped
dimensione del codice nella memoria fisica: CODE
DATI: I dati più stack di dimensioni nella memoria fisica

Sbirciare nel / proc

stato dettagliato e le informazioni di utilizzo della memoria processo possono essere trovati in / proc / <pid> / status e / proc / <pid> / smaps. Una varietà di informazioni sono contenute in / proc / <pid> / stato, tra queste statistiche di memoria:

VmPeak: Picco dimensione della memoria virtuale
VmSize: la memoria virtuale
VmData: dimensione del segmento dati
VmStk: dimensioni Pila
VmExe: eseguibile dimensione del segmento
VmLib: dimensione del codice Biblioteca

/ Proc / <pid> / smaps fornisce una visione molto dettagliata di un processo di 'usi della memoria, suddivisi per la mappatura per il codice, pila, mucchio e ogni libreria condivisa. L'uscita completa di smaps è piuttosto lunga e difficile da digerire. È possibile utilizzare il Linux: modulo smaps Perl per analizzare e elaborare il file smaps.