Nota:
- Questa esercitazione è disponibile in un ambiente di laboratorio gratuito fornito da Oracle.
- Utilizza valori di esempio per le credenziali, la tenancy e i compartimenti Oracle Cloud Infrastructure. Al termine del laboratorio, sostituire questi valori con quelli specifici del tuo ambiente cloud.
Monitorare le risorse di sistema su Oracle Linux
Introduzione
In questa esercitazione si lavora con Oracle Linux vmstat, mpstat e top per monitorare l'uso delle risorse di sistema. Il monitoraggio delle risorse del sistema è utile per individuare problemi che possono influire negativamente sulle prestazioni del sistema.
Presupposto
Oracle Linux fornisce strumenti per il monitoraggio e l'analisi dell'uso delle risorse del sistema, nonché strumenti di tracciamento per la diagnosi dei problemi delle prestazioni in più processi e thread correlati.
Obiettivi
- Esplorare il comando
vmstat - Esplorare il comando
mpstat - Esplorare il comando
top - Utilizzare
vmstatempstatetop - Esaminare l'output del comando da
vmstat,mpstatetop
Di cosa hai bisogno?
Un sistema client con Oracle Linux 8 o versione successiva installato.
Nota: quando si utilizza l'ambiente di laboratorio gratuito, consultare Oracle Linux Lab Basics per le istruzioni di connessione e altro tipo.
Esplorare e utilizzare le opzioni del comando vmstat
vmstat mostra la quantità di memoria virtuale disponibile e la quantità di memoria libera. Il comando mostra anche l'attività di paging. È possibile osservare i pagein e i pageout che si verificano nel sistema.
È possibile ottimizzare l'area di visualizzazione utilizzando i controlli Nascondi passi e "Schermata intera" posizionati nella barra delle applicazioni, come mostrato nelle immagini.

Guarda il video di seguito per una panoramica su vmstat.
-
Eseguire il comando
vmstatsenza opzioni.vmstatIl comando genera un singolo report. L'output è suddiviso in sei sezioni:
procs,memory,swap,io,systemecpu.-
Le prime due colonne forniscono informazioni sui processi:
-
rè il numero di processi in stato di attesa. Si tratta di processi inattivi in attesa di essere eseguiti. -
bè il numero di processi in modalità di sospensione interrotti dall'ultimo aggiornamento.
-
-
Le quattro colonne successive forniscono informazioni sulla memoria.
-
swpdè la quantità di memoria virtuale utilizzata. -
freeè la quantità di memoria inattiva. -
buffè la quantità di memoria utilizzata come buffer. -
cacheè la quantità di memoria utilizzata come cache.
-
-
Le due colonne successive contengono informazioni sull'area di swap.
-
siè la quantità di memoria di cui è stato eseguito il swapping dal disco (al secondo). -
soè la quantità di memoria scambiata su disco (al secondo).I numeri
siesodiversi dazero indicano che la memoria fisica non è sufficiente, pertanto il kernel deve scambiare la memoria sul disco.
-
-
Le due colonne successive contengono input/output:
-
biè il numero di blocchi al secondo ricevuti da un dispositivo a blocchi. -
boè il numero di blocchi al secondo inviati a un dispositivo a blocchi.
-
-
Le due colonne successive contengono informazioni di sistema.
-
inè il numero di interrupt al secondo, incluso l'orologio. -
csè il numero di switch di contesto al secondo.
-
-
Le ultime cinque colonne forniscono le percentuali del tempo totale della CPU:
-
usè la percentuale di cicli della CPU usati per i processi utente. -
syè la percentuale di cicli della CPU usati nei processi del sistema (kernel). -
idè la percentuale di cicli della CPU esauriti. -
waè la percentuale di cicli della CPU spesi in attesa di I/O. -
stè la percentuale di cicli della CPU rubati da una virtual machine.
-
-
-
Eseguire il comando
vmstat 1(numerico e non la lettera minuscolal) per visualizzare un report continuo ogni secondo.vmstat 1- Per terminare, premere Ctrl+C.
-
Eseguire il comando
vmstat 7 4per eseguire quattro report a distanza di sette secondi.vmstat 7 4L'opzione di conteggio indica a
vmstatil numero di report da eseguire (4) e l'opzione di ritardo (7) rappresenta l'intervallo di tempo tra ogni report. -
Eseguire il comando
vmstat -sper visualizzare una tabella di vari contatori di eventi e statistiche di memoria.vmstat -s -
Eseguire il comando
vmstat -aper visualizzare la memoria attiva e la memoria inattiva.vmstat -aL'opzione
-avisualizza la quantità di memoriaactivee inattiva (inact) nella sezionememorydell'output. -
Eseguire il comando
vmstat -fper visualizzare il numero di forks dall'ultimo boot.vmstat -f -
Eseguire il comando
vmstat -tper aggiungere un indicatore orario all'output.vmstat -t -
Eseguire il comando
vmstat -dper visualizzare le statistiche di utilizzo del disco sul sistema.vmstat -d -
Eseguire il comando
vmstat -p sda1per creare un report su una partizione disco specifica.vmstat -p sda1L'output mostra un riepilogo per la partizione, inclusi il numero o le operazioni di lettura e scrittura.
Esplorare e utilizzare le opzioni del comando mpstat
Il comando mpstat viene utilizzato per raccogliere e visualizzare le statistiche sulle prestazioni per tutte le CPU logiche nel sistema. Quando una CPU è occupata da un processo, non è disponibile per l'elaborazione di altre richieste. Questi altri processi devono attendere che la CPU sia libera.
Guarda il video di seguito per una panoramica su mpstat.
-
Eseguire il comando
mpstatsenza opzioni.mpstatLa prima riga mostra la versione del kernel Linux, il nome host, la data corrente, l'architettura e il numero di CPU presenti nel sistema.
La prima colonna della riga successiva fornisce un indicatore orario, con le colonne rimanenti definite come segue:
-
CPUè il processore designato dal numero che inizia da0o dalla parola chiaveallche indica che le statistiche vengono calcolate come medie tra tutti i processori. -
%userè la percentuale di CPU utilizzata durante l'esecuzione delle applicazioni a livello di utente. -
%niceè la percentuale di CPU utilizzata durante l'esecuzione a livello di utente con una buona priorità. -
%sysè la percentuale di CPU utilizzata durante l'esecuzione a livello di sistema (kernel).Il comando
mpstatnon include il tempo dedicato alla manutenzione degli interrupt hardware e software. -
%iowaitè la percentuale di tempo di inattività delle CPU mentre il sistema disponeva di una richiesta di I/O su disco eccezionale. -
%irqè la percentuale di tempo impiegata dalle CPU per gestire gli interrupt hardware. -
%softè la percentuale di tempo impiegata dalle CPU per gestire gli interrupt software. -
%stealè la percentuale di tempo trascorso nell'attesa non volontaria da parte delle CPU virtuali, mentre l'hypervisor stava gestendo un altro processore virtuale. -
%guestè la percentuale di tempo impiegata dalle CPU per eseguire un processore virtuale. -
%gniceè la percentuale di tempo impiegato dalle CPU per eseguire un guest previsto. -
%idleè la percentuale di tempo in cui la CPU era (o le CPU erano) inattiva e il sistema non disponeva di una richiesta di I/O su disco eccezionale.
-
-
Eseguire il comando
mpstat 2 5per visualizzare l'attività della CPU ogni due secondi per un totale di cinque report su tutte le CPU.mpstat 2 5L'output stampa una sola riga di informazioni per un totale di cinque volte e stampa anche una media.
-
Eseguire il comando
mpstat -P ALLper segnalare l'uso della CPU su ciascuna CPU.mpstat -P ALLQuesto output consente di stampare una singola linea di attività per tutte le CPU e per ciascuna CPU. Nota:
mpstatstampa anche l'utilizzo medio della CPU per il periodo specificato. -
Eseguire il comando
mpstat -P ALL 2 5per visualizzare l'attività della CPU ogni due secondi sulle CPU.mpstat -P ALL 2 5Questo output stampa le statistiche di utilizzo della CPU per ogni CPU 5 volte a un intervallo di 2 secondi. Nota:
mpstatstampa anche l'utilizzo medio della CPU per il periodo specificato. -
Eseguire il comando
mpstat -Aper stampare l'utilizzo della CPU e interrompere le statistiche nello stesso output del comando.mpstat -A
Esplorare il comando top
Il comando top fornisce un'analisi continua dell'attività del processore in tempo reale. top visualizza un elenco dei processi o dei task a uso intensivo di CPU nel sistema e fornisce un'interfaccia interattiva limitata per la manipolazione dei processi.
Guarda il video di seguito per una panoramica su top.
-
Eseguire il comando
topsenza opzioni per la visualizzazione point-in-time dell'attività della CPU.topL'output viene aggiornato ogni tre secondi per impostazione predefinita e diviso in due sezioni principali.
Nella sezione superiore vengono visualizzate informazioni generali, ad esempio le medie di carico negli ultimi 1, 5 e 15 minuti, il numero di attività in esecuzione e in attesa e l'uso complessivo della CPU e della memoria.
-
Utilizzare quanto segue per attivare o disattivare l'output visualizzato nella sezione superiore:
-
Immettere la lettera minuscola
l(non numerica1) per attivare/disattivare la media di carico e il tempo di attività. -
Immettere
mper attivare/disattivare la memoria e lo swap dell'uso. -
Immettere
tper attivare/disattivare la memoria e lo swap dell'uso.
-
Nella sezione inferiore viene visualizzato un elenco ordinato di processi, in genere in base all'uso della CPU, insieme ai rispettivi numeri ID processo (PID) e all'utente proprietario del processo. Inoltre, gli output visualizzano il tempo di esecuzione e la memoria utilizzati dai processi.
Di seguito sono descritte le colonne della sezione inferiore.
-
PIDè l'ID processo univoco del task. -
USERè il nome utente effettivo del proprietario del task. -
PRè la priorità effettiva del task. -
NIè il valore appropriato del task nell'area utente.Un valore negativo indica una priorità più alta e un valore positivo indica una priorità più bassa. Il valore zero indica che la priorità di un task non ha effetto quando viene eseguita.
-
VIRTè la quantità totale di memoria virtuale utilizzata dal task.Questo valore include tutto il codice, i dati e le librerie condivise, nonché le pagine rimosse.
-
RESè la memoria fisica non swap o la dimensione residente utilizzata da un task. -
SHRè la quantità di memoria condivisa utilizzata dal task.Questa memoria potrebbe essere condivisa con altri processi.
-
Sè lo stato del task. Ci sono cinque stati:-
DSospensione interrompibile -
RIn esecuzione -
SSospensione -
Ttracciato o arrestato -
ZZombie
-
-
%CPUè la quota del tempo CPU trascorso o dell'uso della CPU dall'ultimo aggiornamento della schermata, espressa come percentuale del tempo CPU totale. -
%MEMè la condivisione attualmente utilizzata dell'attività relativa alla memoria fisica disponibile o all'uso della memoria. -
TIME+è il tempo totale della CPU utilizzato dal task dopo l'avvio. -
COMMANDè la riga di comando o il nome del programma utilizzato per avviare un task.
-
-
Uscire da
topimmettendo Crtl+C.
Confrontare l'output dei comandi da vmstat, mpstat e top
Per eseguire questa operazione, eseguire vari test stress per emulare carichi diversi sul sistema di laboratorio, quindi utilizzare i comandi vmstat, mpstat e top per determinare il tipo di caricamento da essi generato.
Anche se si eseguono i test come processi in background, considerare la possibilità di aprire ulteriori finestre terminali per i confronti.
Ogni finestra aggiuntiva richiede il login all'istanza di laboratorio utilizzando da ssh a oracle@<IP_ADDRESS_OF_COMPUTE_INSTANCE>. Dove <IP_ADDRESS_OF_COMPUTE_INSTANCE> è l'indirizzo IP copiato dalla console di Oracle Cloud.
- Dopo avere eseguito il login, utilizzare il comando
sudo -iper passare all'utente root.
-
Installare lo strumento
stress.-
Utilizzare il comando
dnf repolistper verificare lo stato del repositoryol8_developer_EPEL.dnf repolist ol8_developer_EPEL-
Se lo stato è
enabled, procedere all'installazione dei package di strumentistress. In caso contrario, continuare ad abilitare il repository. -
Abilitare il repository se lo stato è
disabledutilizzando il comandodnf conifg-manager.dnf config-manager --enable ol8_developer_EPEL
-
-
-
Eseguire il comando
dnf installper installare i pacchetti dello strumentostress.dnf install stress -y -
Eseguire il comando
stress --dry-runper visualizzare un esempio della sintassi del comando. Attendere e rivedere le opzioni nell'esempio, insieme alle altre opzioni dei comandi elencate.stress --dry-run -
Eseguire i comandi
vmstat 4 4empstat 4 4per visualizzare una baseline dell'attività del sistema. In particolare, rilevare le percentuali della CPU allocate ai processi utente e sistema (kernel). Questa colonna deve essere vicina a zero0. Prendere nota anche della quantità di memoria libera.vmstat 4 4 mpstat 4 4 -
Eseguire il comando
stress --cpuper emulare un programma associato a un calcolo ed eseguire il comando in background. Questo comando genera otto processi associati alla computazione.stress --cpu 8 &-
Fare clic su return per tornare al prompt.
-
Eseguire il comando
ps -efper visualizzare i processistressin esecuzione. Inserire l'output ingrep stress.ps -ef | grep stress
-
-
Eseguire il comando
vmstat 4 10e prendere nota dei valori riportati nelle colonne associate all'utilizzo della CPU.vmstat 4 10In alcuni momenti, è necessario che le percentuali sotto la colonna
usriflettano il carico generato dastress. -
Eseguire il comando
mpstat 4 10per valutare l'utilizzo di tutte le CPU.mpstat 4 10 -
Eseguire il comando
mpstat -P ALL 4 10per valutare l'utilizzo di ciascuna CPU.mpstat -P ALL 4 10 -
Eseguire il comando
topper esaminare l'utilizzo della CPU da parte dei processistress.topDopo alcuni minuti, si noti che i processi
stressvengono eseguiti con la massima priorità. Uscire datopimmettendo un valore Ctrl+C. -
Eseguire il comando
pkillper arrestare i processistress.pkill stress -
Eseguire di nuovo i comandi
vmstat 4 4empstat 4 4per visualizzare una baseline dell'attività del sistema. -
Eseguire un nuovo comando
stresse aggiungere le opzioni--vme--vm-bytesper generare dinamicamente l'attività di memoria sul sistema.stress --cpu 8 --vm 8 --vm-bytes 512M & -
Eseguire
vmstat 4 10,mpstat -P ALL 4 10etopper valutare l'attività della CPU e della memoria.vmstat 4 10 mpstat -P ALL 4 10 top- Uscire da
topimmettendo Crtl+C.
- Uscire da
-
Utilizzare il comando
pkillper arrestare i processistress.pkill stress -
Eseguire di nuovo i comandi
vmstat 4 4empstat 4 4per visualizzare una baseline dell'attività del sistema. -
Eseguire un nuovo comando
stresse aggiungere l'opzione--ioper generare dinamicamente l'attività di input/output nel sistema.stress --cpu 8 --vm 8 --vm-bytes 512M --io 8 & -
Eseguire
vmstat 4 10,mpstat -P ALL 4 10etopper valutare l'attività CPU, memoria, input/output.vmstat 4 10 mpstat -P ALL 4 10 top-
Uscire da
topimmettendo Crtl+C. -
Utilizzare
pkillper terminarestress.
-
Altre risorse di apprendimento
Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti di apprendimento gratuito sul canale Oracle Learning YouTube. Inoltre, visitare education.oracle.com/learning-explorer per diventare Oracle Learning Explorer.
Per la documentazione del prodotto, visitare il sito Oracle Help Center.
Monitor system resources on Oracle Linux
F49874-04
May 2022
Copyright © 2021, Oracle and/or its affiliates.