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
vmstat
empstat
etop
- Esaminare l'output del comando da
vmstat
,mpstat
etop
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
vmstat
senza opzioni.vmstat
Il comando genera un singolo report. L'output è suddiviso in sei sezioni:
procs
,memory
,swap
,io
,system
ecpu
.-
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
si
eso
diversi 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 4
per eseguire quattro report a distanza di sette secondi.vmstat 7 4
L'opzione di conteggio indica a
vmstat
il numero di report da eseguire (4) e l'opzione di ritardo (7) rappresenta l'intervallo di tempo tra ogni report. -
Eseguire il comando
vmstat -s
per visualizzare una tabella di vari contatori di eventi e statistiche di memoria.vmstat -s
-
Eseguire il comando
vmstat -a
per visualizzare la memoria attiva e la memoria inattiva.vmstat -a
L'opzione
-a
visualizza la quantità di memoriaactive
e inattiva (inact
) nella sezionememory
dell'output. -
Eseguire il comando
vmstat -f
per visualizzare il numero di forks dall'ultimo boot.vmstat -f
-
Eseguire il comando
vmstat -t
per aggiungere un indicatore orario all'output.vmstat -t
-
Eseguire il comando
vmstat -d
per visualizzare le statistiche di utilizzo del disco sul sistema.vmstat -d
-
Eseguire il comando
vmstat -p sda1
per creare un report su una partizione disco specifica.vmstat -p sda1
L'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
mpstat
senza opzioni.mpstat
La 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 da0
o dalla parola chiaveall
che 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
mpstat
non 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 5
per visualizzare l'attività della CPU ogni due secondi per un totale di cinque report su tutte le CPU.mpstat 2 5
L'output stampa una sola riga di informazioni per un totale di cinque volte e stampa anche una media.
-
Eseguire il comando
mpstat -P ALL
per segnalare l'uso della CPU su ciascuna CPU.mpstat -P ALL
Questo output consente di stampare una singola linea di attività per tutte le CPU e per ciascuna CPU. Nota:
mpstat
stampa anche l'utilizzo medio della CPU per il periodo specificato. -
Eseguire il comando
mpstat -P ALL 2 5
per visualizzare l'attività della CPU ogni due secondi sulle CPU.mpstat -P ALL 2 5
Questo output stampa le statistiche di utilizzo della CPU per ogni CPU 5 volte a un intervallo di 2 secondi. Nota:
mpstat
stampa anche l'utilizzo medio della CPU per il periodo specificato. -
Eseguire il comando
mpstat -A
per 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
top
senza opzioni per la visualizzazione point-in-time dell'attività della CPU.top
L'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
m
per attivare/disattivare la memoria e lo swap dell'uso. -
Immettere
t
per 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:-
D
Sospensione interrompibile -
R
In esecuzione -
S
Sospensione -
T
tracciato o arrestato -
Z
Zombie
-
-
%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
top
immettendo 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 -i
per passare all'utente root.
-
Installare lo strumento
stress
.-
Utilizzare il comando
dnf repolist
per 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 è
disabled
utilizzando il comandodnf conifg-manager
.dnf config-manager --enable ol8_developer_EPEL
-
-
-
Eseguire il comando
dnf install
per installare i pacchetti dello strumentostress
.dnf install stress -y
-
Eseguire il comando
stress --dry-run
per 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 4
empstat 4 4
per 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 --cpu
per 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 -ef
per visualizzare i processistress
in esecuzione. Inserire l'output ingrep stress
.ps -ef | grep stress
-
-
Eseguire il comando
vmstat 4 10
e prendere nota dei valori riportati nelle colonne associate all'utilizzo della CPU.vmstat 4 10
In alcuni momenti, è necessario che le percentuali sotto la colonna
us
riflettano il carico generato dastress
. -
Eseguire il comando
mpstat 4 10
per valutare l'utilizzo di tutte le CPU.mpstat 4 10
-
Eseguire il comando
mpstat -P ALL 4 10
per valutare l'utilizzo di ciascuna CPU.mpstat -P ALL 4 10
-
Eseguire il comando
top
per esaminare l'utilizzo della CPU da parte dei processistress
.top
Dopo alcuni minuti, si noti che i processi
stress
vengono eseguiti con la massima priorità. Uscire datop
immettendo un valore Ctrl+C. -
Eseguire il comando
pkill
per arrestare i processistress
.pkill stress
-
Eseguire di nuovo i comandi
vmstat 4 4
empstat 4 4
per visualizzare una baseline dell'attività del sistema. -
Eseguire un nuovo comando
stress
e aggiungere le opzioni--vm
e--vm-bytes
per generare dinamicamente l'attività di memoria sul sistema.stress --cpu 8 --vm 8 --vm-bytes 512M &
-
Eseguire
vmstat 4 10
,mpstat -P ALL 4 10
etop
per valutare l'attività della CPU e della memoria.vmstat 4 10 mpstat -P ALL 4 10 top
- Uscire da
top
immettendo Crtl+C.
- Uscire da
-
Utilizzare il comando
pkill
per arrestare i processistress
.pkill stress
-
Eseguire di nuovo i comandi
vmstat 4 4
empstat 4 4
per visualizzare una baseline dell'attività del sistema. -
Eseguire un nuovo comando
stress
e aggiungere l'opzione--io
per 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 10
etop
per valutare l'attività CPU, memoria, input/output.vmstat 4 10 mpstat -P ALL 4 10 top
-
Uscire da
top
immettendo Crtl+C. -
Utilizzare
pkill
per 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.