System Activity Reporter è uno strumento importante che aiuta gli amministratori di sistema ad avere una panoramica della macchina server con lo stato di diverse metriche importanti in diversi punti del tempo.
Se supponiamo che tu stia avendo un problema con il sistema attualmente, come alcuni dei tuoi clienti non sono in grado di elencare alcuni dati dal database. La prima cosa che la maggior parte degli amministratori di sistema Linux fa è ricordare lo stesso problema quando si è verificato in precedenza, e se si ricorda il giorno del suo precedente verificarsi allora si può facilmente confrontare le statistiche interne del sistema con le statistiche attuali.
SAR è molto utile per fare esattamente questo.
La prima cosa che dobbiamo fare è controllare e confermare se avete l’utilità SAR installata sulla macchina. Il che può essere controllato elencando tutti gli rpm e cercando questa utility.
SAR è una delle utility all’interno di sysstat. Potete facilmente scaricarla e installarla nella vostra macchina molto facilmente attraverso YUM. (Ma sì, non preoccuparti perché la maggior parte delle distribuzioni è preconfezionata con lo strumento sysstat).
# yum install sysstat
Sì, ma assicurati di avere epel, rpmformge repository abilitato per l’installazione. Altrimenti il DVD della tua distribuzione sarà un bel posto dove cercare il pacchetto.
SAR (System Activity Reporter) darà informazioni sulle seguenti cose:
- Attività del buffer di sistema
- Informazioni sulle chiamate di sistema
- Informazioni sui dispositivi a blocchi
- Informazioni sul paging complessivo
- Informazioni sulemaphore e sull’allocazione della memoria
- Utilizzo della CPU e rapporto sui processi
La cosa principale che dobbiamo capire riguardo a SAR è che tutto viene fatto usando un cron. Per default in molte distribuzioni Linux avrete un file chiamato /etc/cron.d/sysstat.
Vediamo come funziona realmente SAR.
Se iniziamo a pensare al monitoraggio del sistema, allora lo strumento deve avere tutti i dati sui diversi aspetti del sistema e deve coprire tutti gli intervalli di tempo. Il che significa che un sistema di monitoraggio deve essere in grado di fornire le statistiche della macchina per un dato tempo.
Non c’è altro modo che prendere tutte le metriche e le statistiche della macchina in un determinato intervallo di tempo. Riducendo l’intervallo di tempo per la raccolta delle statistiche aumenterà la quantità di statistiche dettagliate che abbiamo (perché avremo più dati sul sistema).
SAR fa esattamente questo. sar prende le statistiche di diversi aspetti della macchina ad un intervallo di tempo definito. Quindi SAR funziona attraverso CRON.
# cat /etc/cron.d/sysstat# esegue lo strumento di contabilità delle attività di sistema ogni 10 minuti*/10 * * * * root /usr/lib64/sa/sa1 1 1# genera un riassunto giornaliero della contabilità dei processi alle 23:5353 23 * * * root /usr/lib64/sa/sa2 -A
- Così si può vedere dal suddetto file cron per SAR che sta eseguendo lo script “sa1” situato in “/usr/lib64/sa/” ogni 10 minuti
- E sta anche eseguendo uno script /usr/lib64/sa/sa2 alla fine della giornata alle 23 circa.53
Così la prima voce di cron per SAR (/usr/lib64/sa/sa1) verrà eseguita ogni 10 minuti che a sua volta chiamerà l’utilità sadc per raccogliere le statistiche di sistema e memorizzarle in un file binario (un file per ogni giorno)
E la seconda voce di cron scaricherà tutto il contenuto di quel file binario in un altro file di testo, ed elimina i dati più vecchi di un particolare numero di giorni, normalmente 7 giorni per impostazione predefinita (che è menzionato nel seguente file),
# cat /etc/sysconfig/sysstat# Quanto tempo tenere i file di log (giorni), il massimo è un meseHISTORY=7
Si può modificare facilmente la voce HISTORY modificando il file.
Così, anche se le statistiche di sistema vengono raccolte ogni 10 minuti tramite cron (modificare il cron per eseguire ogni 1 minuto per informazioni più accurate) Se si desidera vedere le statistiche, allora è necessario eseguire il comando come segue.
L’output del comando sar semplice è come mostrato di seguito.
12:00:01 AM CPU %user %nice %system %iowait %steal %idle12:01:01 AM all 73.28 0.00 1.25 0.00 0.00 25.4712:02:01 AM all 7.83 0.00 0.44 0.00 0.00 91.7312:03:01 AM tutti 61.65 0.00 0.70 0.00 0.00 37.6612:04:01 AM tutti 57.85 0.00 0.82 0.00 0.00 41.3412:05:01 AM tutti 4.25 0.00 0.41 0.00 0.00 95.3412:06:01 AM tutti 4.20 0.00 0.22 0.00 0.00 95.581212:07:01 AM tutti 5.05 0.00 0.33 0.00 0.00 94.6312:08:01 AM tutti 4.76 0.00 0.06 0.00 0.00 95.1812:09:01 AM tutti 37.57 0.00 0.37 0.00 0.00 62.0512:10:01 AM tutti 70.04 0.00 0.80 0.00 0.00 29.1612:11:01 AM tutti 5.03 0.00 0.12 0.00 0.00 0.00 94.84
Si può vedere dall’output che mi riporta l’output delle statistiche raccolte per ogni minuto (il che significa che ho il mio cron a 1 minuto di intervallo), e mostrerà i dettagli dell’intera giornata (o mostrerà i dettagli raccolti fino a quando hai digitato il comando).
Comprendere l’output del comando SAR
%user: Questo mostra il tempo totale che il processore sta spendendo su diversi processi YCX5UKN5ZKEJ
%sys: questo mostra la percentuale di tempo speso dal processore per i compiti del sistema operativo (perché l’utente precedente mostra il tempo speso per i processi finali dell’utente)
%iowait: il nome stesso iowait suggerisce che è il tempo speso dal processore in attesa dei dispositivi (input e output)
%nice: Molti di voi devono sapere che un utente può cambiare la priorità di un processo in Linux cambiando il valore nice in Linux. Questa tabella mostra il tempo speso dalla CPU per il processo il cui valore di nice è stato cambiato.
%steal: Questa colonna mostra la quantità di tempo speso da una CPU (che è virtualizzata), per le risorse dalla CPU fisica
%idle: Questo suggerisce il tempo inattivo speso dal processore.
Di default sar memorizza tutti i suoi dati sotto /var/log/sa/ e un giorno sono nominati come mostrato di seguito.
s01 – per il primo giorno del mese
s02-per il secondo giorno del mese
s03,s04..e così via.
opzione-d nel comando SAR
Questa opzione -d può essere usata per riportare ogni singola attività relativa ai diversi dispositivi collegati al sistema (dispositivi a blocchi). Un tipico output del comando sar con l’opzione -d è mostrato qui sotto.
12:00:01 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util12:01:01 AM dev3-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00.0012:01:01 AM dev3-64 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0012:01:01 AM dev8-0 55.62 9.98 8317.87 149.72 13.68 245.96 2.61 14.5212:01:01 AM dev8-16 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0012:02:01 AM dev3-0 0.00 0.00 0.00 0.00 0.00.00 0.00 0.00 0.00 0.0012:02:01 AM dev3-64 0.00 0.00 0.00 0.00 0.00 0.00 0.0012:02:01 AM dev8-0 1.55 0.00 35.29 22.70 0.01 7.26 1.86 0.2912:02:01 AM dev8-16 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0012:03:01 AM dev3-0 0.00 0.00.00 0.00 0.00 0.00 0.00 0.00 0.0012:03:01 AM dev3-64 0.00 0.00 0.00 0.00 0.00 0.00 0.00
DEV: questa colonna nomina i dispositivi sulla macchina, secondo i numeri maggiori e minori di un dispositivo a blocchi di Linux. Si può controllare facendo un ls -l nella directory /dev. come mostrato di seguito.
brw-r----- 1 root disk 8, 0 Nov 16 16:29 sdabrw-r----- 1 root disk 8, 1 Nov 16 16:29 sda1brw-r----- 1 root disk 8, 2 Nov 16:29 sda2
nel risultato di “ls -l” mostrato sopra per “sda”, il numero maggiore è “8”, e quello minore è “0”…. Quindi si può facilmente identificare il disco menzionato nell’output del comando sar.
tps: tps sta per trasferimento al secondo, quindi mostra il trasferimento al secondo su quel particolare dispositivo
rd_sec/s: questo mostra il numero totale di settori su quel dispositivo che vengono letti
wr_sec/s: se rd_sec/s è settori letti al secondo allora ovviamente wr_sec è settori scritti al secondo.
avgrq-sz: questa colonna mostra la media.
await: questo mostra il numero totale di tempo che il processore ha aspettato per le richieste riguardanti l’IO
%util: questa colonna mostra l’uso della cpu in percentuale quando la richiesta è stata generata
Show Memory usage in SAR command
l’opzione -r disponibile in sar command è molto utile. mostra la memoria, lo swap, la memoria cache ecc ad ogni intervallo o intervallo di tempo richiesto.
02:20:01 AM kbmemfree kbmemused %memused kbbuffers kbcached kbswpfree kbswpused %swpused kbswpcad02:30:01 AM 609500 1487652 70.94 242420 777560 1075980 364 0.03 36002:40:01 AM 609500 1487652 70.94 242424 777568 1075980 364 0.03 36002:50:01 AM 609500 1487652 70.94 242424 777592 1075980 364 0.03 36003:00:01 AM 608980 1488172 70.96 242424 777600 1075980 364 0.03 36003:10:01 AM 608584 1488568 70.98 242424 777628 1075980 364 0.03 36003:20:01 AM 608584 1488568 70.98 242424 777648 1075980 364 0.03 360
Come recuperare le metriche di un particolare giorno usando SAR in linux
# sar -f /var/log/sa/sa27Linux 2.6.18-194.el5xen (archive.r) 11/27/2012 02:20:01 AM CPU %user %nice %system %iowait %steal %idle02:30:01 AM all 2.58 0.00 0.70 1.12 0.05 95.5502:40:01 AM all 2.56 0.00 0.69 1.05 0.04 95.6602:50:01 AM all 2.64 0.00 0.65 1.15 0.05 95.5003:00:01 AM all 3.27 0.00 0.71 1.12 0.04 94.86
Come recuperare le metriche SAR per un tempo specifico in una data particolare
questo può essere ottenuto passando un altro argomento come mostrato sotto.
# sar -f /var/log/sa/sa27 -s 02:20:00 -e 03:20:00Linux 2.6.18-194.el5xen (archive.r) 11/27/2012 02:20:01 AM CPU %user %nice %system %iowait %steal %idle02:30:01 AM all 2.58 0.00 0.70 1.12 0.05 95.5502:40:01 AM all 2.56 0.00 0.69 1.05 0.04 95.6602:50:01 AM all 2.64 0.00 0.65 1.15 0.05 95.5003:00:01 AM all 3.27 0.00 0.71 1.12 0.04 94.8603:10:01 AM tutti 2.72 1.06 0.75 1.09 0.04 94.33Media: tutti 2.76 0.21 0.70 1.11 0.04 95.18
Mostra le statistiche di rete usando il comando sar
il comando sar mostra anche le statistiche di rete. Questo può essere fatto usando l’opzione -n DEV nel comando sar.
# sar -n DEVLinux 2.6.18-194.el5xen (archive.r) 11/27/2012 02:20:01 AM IFACE rxpck/s txpck/s rxbyt/s txbyt/s rxcmp/s txcmp/s rxmcst/s02:30:01 AM lo 0,01 0,01 0,77 0,77 0,00 0,00 0,0002:30:01 AM eth0 12.30 0.12 1285.06 27.59 0.00 0.00 0.0002:30:01 AM eth1 14.45 0.00 1399.34 0.00 0.00 0.00 0.0002:30:01 AM sit0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00.0002:40:01 AM lo 0.01 0.01 0.77 0.77 0.00 0.00 0.0002:40:01 AM eth0 10.65 0.12 1139.38 27.00 0.00 0.00 0.0002:40:01 AM eth1 13.96 0.00 1352.87 0.00 0.00 0.00 0.00
IFACE: sta per il nome dell’interfaccia della scheda nic
rxpck/s: mostra il totale dei pacchetti ricevuti al secondo
txpck/s:pacchetti trasmessi al secondo
rxcmp/s: pacchetti compressi ricevuti
txcmp/s: pacchetti compressi trasmessi
rxmcst/s: pacchetti multicast al secondo.
Alcune altre metriche che possono essere determinate usando sar
-y opzione in sar: può essere usata per determinare i dettagli della tty
-X opzione in sar per ottenere dettagli di un particolare processo. È necessario passare pid come argomento a questa opzione.
-n opzione SOCK in sar: questa opzione riporterà tutti i dettagli dei socket.