Questo articolo presenta 10 modi in cui puoi utilizzare il comando System Activity Report (sar) per monitorare le risorse in Linux®.
1. Visualizza l'utilizzo collettivo di tutte le CPU
Esegui il comando seguente per visualizzare un riepilogo dell'utilizzo della CPU:
sar -u
Questo comando restituisce l'utilizzo cumulativo delle risorse in tempo reale di tutte le CPU.
È possibile aggiungere più parametri a questo comando. Ad esempio, aggiungendo 1 3
alla fine del comando come mostrato nel seguente esempio riporta per ogni1 secondo un totale di 3 volte:
sar -u 1 3
L'output è simile al seguente esempio:
Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU)
01:27:32 PM CPU %user %nice %system %iowait %steal %idle
01:27:33 PM all 0.00 0.00 0.00 0.00 0.00 100.00
01:27:34 PM all 0.25 0.00 0.25 0.00 0.00 99.50
01:27:35 PM all 0.75 0.00 0.25 0.00 0.00 99.00
Average: all 0.33 0.00 0.17 0.00 0.00 99.50
L'ultimo campo, %idle
, indica il carico della CPU.
Il comando ha le seguenti varianti:
sar -u
:Visualizza l'utilizzo della CPU per il giorno corrente.sar -u 1 3
:Visualizza l'utilizzo della CPU in tempo reale ogni 1 secondo per 3 volte.sar -u ALL
:Uguale asar -u
comando, ma mostra campi aggiuntivi.sar -u ALL 1 3
:Come ilsar -u 1 3
comando, ma mostra campi aggiuntivi.sar -u -f /var/log/sa/sa10
:Visualizza l'utilizzo della CPU per il decimo giorno del mese dasa10
file.
2. Visualizza l'utilizzo della CPU per CPU o core
Esegui il comando seguente per visualizzare l'utilizzo della CPU per CPU o core:
sar -P ALL 1 1
Il -P ALL
flag indica che desideri visualizzare le statistiche per tutti i singoli core.
Nella CPU
colonna del seguente output di esempio, 0
, 1
, 2
e 3
sono i numeri di core della CPU:
Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU)
01:34:12 PM CPU %user %nice %system %iowait %steal %idle
01:34:13 PM all 11.69 0.00 4.71 0.69 0.00 82.90
01:34:13 PM 0 35.00 0.00 6.00 0.00 0.00 59.00
01:34:13 PM 1 22.00 0.00 5.00 0.00 0.00 73.00
01:34:13 PM 2 3.00 0.00 1.00 0.00 0.00 96.00
01:34:13 PM 3 0.00 0.00 0.00 0.00 0.00 100.00
Se vuoi visualizzare le statistiche solo per il secondo core, usa il -P 1
flag (perché i numeri principali iniziano da 0), come mostrato nell'esempio seguente:
sar -P 1 1 1
L'output è simile al seguente esempio:
Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU)
01:36:25 PM CPU %user %nice %system %iowait %steal %idle
01:36:26 PM 1 8.08 0.00 2.02 1.01 0.00 88.89
Potresti anche trovare utili le seguenti varianti:
sar -P ALL
:Visualizza l'utilizzo della CPU per ciascun core per il giorno corrente.sar -P ALL 1 3
:Visualizza l'utilizzo della CPU in tempo reale di ciascun core ogni 1 secondo per 3 volte.sar -P 1
:Visualizza l'utilizzo della CPU per il core numero 1 per il giorno corrente.sar -P 1 1 3
:Visualizza l'utilizzo della CPU in tempo reale per il core numero 1, ogni 1 secondo per 3 volte.sar -P ALL -f /var/log/sa/sa10
:Visualizza l'utilizzo della CPU per ogni core per il decimo giorno del mese dasa10
file.
3. Visualizza la memoria libera e utilizzata
Esegui il comando seguente per visualizzare la memoria libera e utilizzata:
sar -r
Se aggiungi 1 3
al comando come mostrato nell'esempio seguente, l'output riporta ogni 1 secondo un totale di 3 volte:
sar -r 1 3
L'output è simile al seguente esempio, in cuikbmemfree
è memoria libera e kbmemused
viene utilizzata la memoria:
Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU)
07:28:06 AM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact
07:28:07 AM 6209248 2097432 25.25 189024 1796544 141372 0.85 1921060 88204
07:28:08 AM 6209248 2097432 25.25 189024 1796544 141372 0.85 1921060 88204
07:28:09 AM 6209248 2097432 25.25 189024 1796544 141372 0.85 1921060 88204
Average: 6209248 2097432 25.25 189024 1796544 141372 0.85 1921060 88204
Questo comando ha le seguenti variazioni:
sar -r
sar -r 1 3
sar -r -f /var/log/sa/sa10
4. Visualizza l'utilizzo dello spazio di scambio
Esegui il comando seguente per visualizzare la quantità di spazio di scambio in uso:
sar -S
Se aggiungi 1 3
alla fine del comando come mostrato nell'esempio seguente, l'output riporta ogni 1 secondo un totale di 3 volte:
sar -S 1 3
L'output è simile al seguente esempio:
Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU)
07:31:06 AM kbswpfree kbswpused %swpused kbswpcad %swpcad
07:31:07 AM 8385920 0 0.00 0 0.00
07:31:08 AM 8385920 0 0.00 0 0.00
07:31:09 AM 8385920 0 0.00 0 0.00
Average: 8385920 0 0.00 0 0.00
Nota :Se il kbswpused
e %swpused
sono a 0
, il tuo sistema non si sta scambiando.
Questo comando ha le seguenti variazioni:
sar -S
sar -S 1 3
sar -S -f /var/log/sa/sa10
Comandi aggiuntivi per lo spazio di scambio
Potresti anche trovare utili i seguenti comandi dello spazio di scambio:
- Usa
sar -R
per identificare il numero di pagine di memoria che il sistema ha liberato, utilizzato e memorizzato nella cache. - Usa
sar -H
per identificare le Linux® HugePages (in kilobyte (KB)) in uso e disponibili. - Usa
sar -B
per generare statistiche di paging come il numero di KB impaginati in entrata (e in uscita) dal disco al secondo. - Usa
sar -W
per generare statistiche di scambio di pagina, come scambio di pagine in entrata (e uscita) al secondo.
5. Visualizza le attività di I/O
Eseguire il comando seguente per visualizzare le attività complessive di input e output (I/O):
sar -b
L'output di questo comando visualizza le statistiche di I/O. Se aggiungi 1 3
alla fine del comando come mostrato nell'esempio seguente, l'output riporta per ogni 1 secondo un totale di 3 volte:
sar -b 1 3
L'output è simile al seguente esempio:
Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU)
01:56:28 PM tps rtps wtps bread/s bwrtn/s
01:56:29 PM 346.00 264.00 82.00 2208.00 768.00
01:56:30 PM 100.00 36.00 64.00 304.00 816.00
01:56:31 PM 282.83 32.32 250.51 258.59 2537.37
Average: 242.81 111.04 131.77 925.75 1369.90
L'output include i seguenti campi:
tps
:Transazioni al secondo (sia in lettura che in scrittura)rtps
:Leggi le transazioni al secondowtps
:Scrivi transazioni al secondobread/s
:Byte letti al secondobwrtn/s
:Byte scritti al secondo
Questo comando ha le seguenti variazioni:
sar -b
sar -b 1 3
sar -b -f /var/log/sa/sa10
Nota :Usa sar -v
per visualizzare il numero di gestori di inode, gestori di file e pseudo-terminali utilizzati dal sistema.
6. Visualizza le attività di I/O dei singoli dispositivi a blocchi
Eseguire il comando seguente per visualizzare le attività di I/O dei singoli dispositivi a blocchi:
sar -d
Per identificare le attività per singolo dispositivo a blocchi (come un punto di montaggio specifico, un numero di unità logica (LUN) o una partizione), utilizzare sar -d
, come mostrato nell'esempio seguente:
sar -d 1 1
L'output è simile al seguente esempio:
Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU)
01:59:45 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
01:59:46 PM dev8-0 1.01 0.00 0.00 0.00 0.00 4.00 1.00 0.10
01:59:46 PM dev8-1 1.01 0.00 0.00 0.00 0.00 4.00 1.00 0.10
01:59:46 PM dev120-64 3.03 64.65 0.00 21.33 0.03 9.33 5.33 1.62
01:59:46 PM dev120-65 3.03 64.65 0.00 21.33 0.03 9.33 5.33 1.62
01:59:46 PM dev120-0 8.08 0.00 105.05 13.00 0.00 0.38 0.38 0.30
01:59:46 PM dev120-1 8.08 0.00 105.05 13.00 0.00 0.38 0.38 0.30
01:59:46 PM dev120-96 1.01 8.08 0.00 8.00 0.01 9.00 9.00 0.91
01:59:46 PM dev120-97 1.01 8.08 0.00 8.00 0.01 9.00 9.00 0.91
In questo esempio, i valori in DEV
la colonna rappresentano dispositivi a blocchi specifici. Ad esempio, dev53-1
indica un dispositivo a blocchi con 53 come numero maggiore e 1 come numero minore.
Puoi usare la bella stampa (-p
) come mostrato nell'esempio seguente per fare in modo che la colonna mostri il nome effettivo del dispositivo (come sda, sda1 o sdb1):
sar -p -d 1 1
L'output è simile al seguente esempio:
Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU)
01:59:45 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
01:59:46 PM sda 1.01 0.00 0.00 0.00 0.00 4.00 1.00 0.10
01:59:46 PM sda1 1.01 0.00 0.00 0.00 0.00 4.00 1.00 0.10
01:59:46 PM sdb1 3.03 64.65 0.00 21.33 0.03 9.33 5.33 1.62
01:59:46 PM sdc1 3.03 64.65 0.00 21.33 0.03 9.33 5.33 1.62
01:59:46 PM sde1 8.08 0.00 105.05 13.00 0.00 0.38 0.38 0.30
01:59:46 PM sdf1 8.08 0.00 105.05 13.00 0.00 0.38 0.38 0.30
01:59:46 PM sda2 1.01 8.08 0.00 8.00 0.01 9.00 9.00 0.91
01:59:46 PM sdb2 1.01 8.08 0.00 8.00 0.01 9.00 9.00 0.91
Questo comando ha le seguenti variazioni:
sar -d
sar -d 1 3
sar -d -f /var/log/sa/sa10
sar -p -d
7. Visualizza il cambio di contesto al secondo
Esegui il comando seguente per visualizzare il cambio di contesto al secondo:
sar -w
Questo comando riporta il numero totale di processi creati al secondo e il numero totale di cambi di contesto al secondo. Se aggiungi 1 3
alla fine del comando come mostrato nell'esempio seguente, riporta per ogni 1 secondo un totale di 3 volte:
sar -w 1 3
L'output è simile al seguente esempio:
Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU)
08:32:24 AM proc/s cswch/s
08:32:25 AM 3.00 53.00
08:32:26 AM 4.00 61.39
08:32:27 AM 2.00 57.00
Questo comando ha le seguenti variazioni:
sar -w
sar -w 1 3
sar -w -f /var/log/sa/sa10
8. Visualizza la coda di esecuzione e la media di caricamento
Esegui il comando seguente per visualizzare la coda di esecuzione e la media di caricamento:
sar -q
Questo comando riporta la dimensione della coda di esecuzione e la media del carico per l'ultimo minuto, gli ultimi 5 minuti e gli ultimi 15 minuti. Se aggiungi 1 3
alla fine del comando come mostrato nell'esempio seguente, riporta per ogni 1 secondo un totale di 3 volte:
sar -q 1 3
L'output è simile al seguente esempio:
Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU)
06:28:53 AM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked
06:28:54 AM 0 230 2.00 3.00 5.00 0
06:28:55 AM 2 210 2.01 3.15 5.15 0
06:28:56 AM 2 230 2.12 3.12 5.12 0
Average: 3 230 3.12 3.12 5.12 0
Nota :Il blocked
la colonna mostra il numero di attività attualmente bloccate e in attesa del completamento delle operazioni di I/O.
Questo comando ha le seguenti variazioni:
sar -q
sar -q 1 3
sar -q -f /var/log/sa/sa10
9. Visualizza le statistiche di rete
Esegui il comando seguente per visualizzare le statistiche di rete:
sar -n
Questo comando riporta varie statistiche di rete, come il numero di pacchetti ricevuti (trasmessi) tramite la scheda di rete o il numero di pacchetti che si sono verificati. Se aggiungi 1 3
alla fine del comando riporta ogni 1 secondo per un totale di 3 volte.
Puoi anche aggiungere una parola chiave al comando, come mostrato nell'esempio seguente:
sar -n KEYWORD
KEYWORD
può essere una delle seguenti opzioni:
DEV
:Visualizza le statistiche vitali per i dispositivi di reteEDEV
:Visualizza le statistiche sugli errori per i dispositivi di reteNFS
:Visualizza le attività del client NFS (Network File System)NFSD
:Visualizza le attività del server NFSSOCK
:Visualizza i socket utilizzati per IPv4IP
:Visualizza il traffico di rete IPv4EIP
:Visualizza gli errori di rete IPv4ICMP
:Visualizza il traffico di rete ICMPv4EICMP
:Visualizza gli errori di rete ICMPv4TCP
:Visualizza il traffico di rete TCPv4ETCP
:Visualizza gli errori di rete TCPv4UDP
:Visualizza il traffico di rete UDPv4SOCK6
,IP6
,EIP6
,ICMP6
eUDP6
:Visualizza le informazioni di rete IPv6ALL
:Visualizza tutte le informazioni precedenti
L'esempio seguente usa il DEV
parola chiave:
sar -n DEV 1 1
L'output è simile al seguente esempio:
Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU)
01:11:13 PM IFACE rxpck/s txpck/s rxbyt/s txbyt/s rxcmp/s txcmp/s rxmcst/s
01:11:14 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
01:11:14 PM eth0 342.57 342.57 93923.76 141773.27 0.00 0.00 0.00
01:11:14 PM eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10. Segnala i dati sar per ora di inizio
Esegui il comando seguente per segnalare i dati sar in base all'ora di inizio:
sar -s
Quando visualizzi i dati storici sar da /var/log/sa/saXX
file utilizzando sar -f
opzione, l'output mostra tutti i dati sar per quel giorno specifico a partire dalle 00:00
Puoi usare il -s hh:mi:ss
opzione per specificare l'ora di inizio. Ad esempio, se specifichi sar -s 10:00:00
, l'output del comando visualizza i sardata a partire dalle ore 10 (anziché la mezzanotte di default).
Puoi combinare i -s
bandiera con altre bandiere sar. Ad esempio, per riportare la media del carico il 26 del mese corrente a partire dalle ore 10, combinare -q
e -s
flag come mostrato nell'esempio seguente:
sar -q -f /var/log/sa/sa23 -s 10:00:01
L'output è simile al seguente esempio:
Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU)
10:00:01 AM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked
10:10:01 AM 0 127 2.00 3.00 5.00 0
10:20:01 AM 0 127 2.00 3.00 5.00 0
...
11:20:01 AM 0 127 5.00 3.00 3.00 0
12:00:01 PM 0 127 4.00 2.00 1.00 0
Non è possibile specificare un'ora di fine. Invece, devi usare il head
comando. Ad esempio, se vuoi iniziare dalle 10:00 e vedere 7 voci, invia l'output precedente a head -n 10
, come mostrato nell'esempio seguente:
sar -q -f /var/log/sa/sa23 -s 10:00:01 | head -n 10
L'output è simile al seguente esempio:
Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU)
10:00:01 AM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked
10:10:01 AM 0 127 2.00 3.00 5.00 0
10:20:01 AM 0 127 2.00 3.00 5.00 0
10:30:01 AM 0 127 3.00 5.00 2.00 0
10:40:01 AM 0 127 4.00 2.00 1.00 2
10:50:01 AM 0 127 3.00 5.00 5.00 0
11:00:01 AM 0 127 2.00 1.00 6.00 0
11:10:01 AM 0 127 1.00 3.00 7.00 2