LINUX

Comando Sar in Linux con esempi

comando sar linux

Il comando sar viene utilizzato per produrre report statistici su una varietà di risorse, inclusi l’utilizzo della CPU, l’utilizzo della memoria, il consumo del dispositivo I/O, il monitoraggio della rete, lo scambio e gli ambienti di caricamento.

SAR è l’acronimo di System Activity Reporter, strumenti molto utili per qualsiasi amministratore Linux per monitorare le prestazioni del sistema e indagare sui crash. Questo strumento è fornito dal pacchetto sysstat.

In questo tutorial vedremo come installare il pacchetto sysstat e utilizzare il comando sar su Linux.

Installa il pacchetto sysstat

Il pacchetto sysstat contiene molte utilità che sono una raccolta di strumenti di monitoraggio delle prestazioni del sistema Linux. Sar è uno strumento che appartiene al pacchetto sysstat.

Installazione del pacchetto sysstat su RHEL e CentOS

$ sudo yum install sysstat

Una volta che sysstat è stato installato con successo, verificando l’installazione tramite comando:

$ which sar
/usr/bin/sar

Per impostazione predefinita, sysstat memorizzerà le statistiche del server nel file “/var/log/sa/saDD” (DD è il giorno del mese, ad esempio: /var/log/sa/sa08) e conserverà i dati per 28 giorni. Se vuoi conservare i dati più a lungo, devi modificare il file di configurazione di sysstat “/etc/sysconfig/sysstat”.

$ sudo cat /etc/sysconfig/sysstat

HISTORY=28

Cambia il suo valore HISTORY con il numero di giorni in cui si desidera conservare i registri.

Installazione del pacchetto sysstat su Ubuntu e Debian

$ sudo apt install sysstat

Verificare l’installazione tramite comando:

$ which sar
/usr/bin/sar

Su Ubuntu, dobbiamo abilitarlo mentre su CentOS non è richiesto.

Usando il tuo editor preferito (vim, nano o gedit) per modificare il seguente file:

$ sudo nano /etc/default/sysstat

E impostare ENABLED a true:

ENABLED="true"

Riavvia il servizio

$ sudo service sysstat restart

Su Ubuntu, il file di configurazione è “/etc/sysstat/sysstat” e i dati verranno conservati per 7 giorni per impostazione predefinita.

$ cat /etc/sysstat/sysstat

HISTORY=7

A partire da Fedora 21, sysstat viene fornito di default e tutto ciò che devi fare è eseguire i seguenti comandi:

$ sudo systemctl enable sysstat.service
$ sudo systemctl start sysstat.service

Esiste un cron job per sysstat che viene eseguito ogni 10 minuti per raccogliere i dati e memorizzarli nel file appropriato /var/log/sa/saDD. Se vuoi cambiare l’intervallo di questa esecuzione di cron, puoi cambiarlo in “/etc/cron.d/sysstat”.

Per systemd, il file dell’unità timer chiama sysstat-collect.service (/usr/lib/systemd/system/sysstat-collect.service) ogni 10 minuti per raccogliere statistiche.

$ cat /etc/cron.d/sysstat

# Activity reports every 10 minutes everyday
5-55/10 * * * * root command -v debian-sa1 > /dev/null && debian-sa1 1 1

# Additional run at 23:59 to rotate the statistics file
59 23 * * * root command -v debian-sa1 > /dev/null && debian-sa1 60 2

Usando il comando Salta

La sintassi di base per l’utilizzo del comando sar è la seguente:

sar [option] [-o filename] [-f filename] [interval] [count]

Dove:

intervallo: periodo in secondi.

contare: quante volte fare statistiche di output.

1. Trova l’attività della CPU

Per impostazione predefinita (senza altre opzioni fornite) il comando sar riporterà l’attività della CPU del server. Anche l’opzione -u può essere utilizzato per ottenere report sull’utilizzo della CPU.

Se desideri ottenere il rapporto sull’attività della CPU ogni 2 secondi per 3 volte, puoi utilizzare il seguente comando sar:

$ sar -u 2 3

Linux 3.10.0-1127.10.1.el7.x86_64 (localhost.localdomain) 	09/06/2020 	_x86_64_	(2 CPU)

22:26:54        CPU     %user     %nice   %system   %iowait    %steal     %idle
22:26:56        all      4,03      0,00      0,50      0,00      0,00     95,47
22:26:58        all      8,08      0,00      0,51      0,00      0,00     91,41
22:27:00        all     12,50      0,00      1,00      0,00      0,00     86,50
Average:        all      8,21      0,00      0,67      0,00      0,00     91,11
sar utilizzo della cpu

Dove:

%utente denota la percentuale di utilizzo della CPU che si è verificata durante l’esecuzione a livello di utente (spazio utente).

%sistema denota la percentuale di utilizzo della CPU che si è verificata durante l’esecuzione a livello di sistema (spazio del kernel)

%non attivo è la percentuale di tempo in cui la CPU o le CPU sono rimaste inattive e il sistema non ha ricevuto una richiesta di I/O su disco.

Se vuoi ottenere l’output in un file in formato binario, devi aggiungere -o nomefile con il comando sar. Per esempio:

$ sar -u 2 3 -o log-file

Puoi anche ottenere il rapporto sull’attività della CPU per un giorno specifico, ad esempio: 09 giugno 2020. Puoi trovarlo come:

$ sudo sar -u -f /var/log/sa/sa09

2. Trova l’utilizzo della CPU per ciascun processore

Il -u l’opzione fornisce l’utilizzo della CPU su tutte le CPU. Se vuoi trovare l’attività della CPU su tutti i processori separatamente, devi usare -P opzione.

$ sar -P ALL 1 1

Linux 3.10.0-1127.10.1.el7.x86_64 (localhost.localdomain) 	10/06/2020 	_x86_64_	(2 CPU)

05:38:18        CPU     %user     %nice   %system   %iowait    %steal     %idle
05:38:19        all      3,03      0,00      0,00      0,00      0,00     96,97
05:38:19          0      3,96      0,00      0,99      0,00      0,00     95,05
05:38:19          1      3,00      0,00      0,00      0,00      0,00     97,00

Average:        CPU     %user     %nice   %system   %iowait    %steal     %idle
Average:        all      3,03      0,00      0,00      0,00      0,00     96,97
Average:          0      3,96      0,00      0,99      0,00      0,00     95,05
Average:          1      3,00      0,00      0,00      0,00      0,00     97,00

comando sar per trovare l'utilizzo della CPU di tutti i processori

3. Trova l’utilizzo della memoria

È possibile trovare l’utilizzo della memoria (memoria del server utilizzata e libera) nel tempo utilizzando -r interruttore.

$ sar -r 1 3

Linux 3.10.0-1127.10.1.el7.x86_64 (localhost.localdomain) 	10/06/2020 	_x86_64_	(2 CPU)

05:41:04    kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
05:41:05       855300   3025220     77,96         0   1495276   2426864     30,55   1265008   1158172       100
05:41:06       854800   3025720     77,97         0   1495276   2426864     30,55   1265132   1158172       100
05:41:07       855032   3025488     77,97         0   1495276   2426864     30,55   1265012   1158172       100
Average:       855044   3025476     77,97         0   1495276   2426864     30,55   1265051   1158172       100

Dove:

kbmemfree indica la quantità di memoria libera disponibile in kilobyte.

kbmemused indica la quantità di memoria utilizzata in kilobyte. Questo non tiene conto della memoria utilizzata dal kernel stesso.

Se vuoi raccogliere l’utilizzo della memoria per un giorno specifico, ad esempio: 05 settembre, devi eseguirlo come di seguito:

$ sar -r -f /var/log/sa/sa05
comando sar - utilizzo della memoria

4. Trova l’attività di scambio

Puoi controllare l’utilizzo del cambio dell’auto utilizzando -W opzione.

$ sar -W 1 3
Linux 2.6.18-274.18.1.el5 (myserver) 09/06/2012
03:31:12 PM pswpin/s pswpout/s
03:31:13 PM 16.16 0.00
03:31:14 PM 16.00 0.00
03:31:15 PM 15.84 0.00
Average: 16.00 0.00

Dove:

pswpin/s indica il numero totale di pagine di scambio recuperate dal sistema al secondo.

pswpout/s indica il numero totale di pagine di scambio che il sistema ha emesso al secondo.

Se vuoi raccogliere gli utilizzi di scambio per un giorno specifico come il 05 settembre, devi eseguirlo come il seguente comando sar:

$ sar -W -f /var/log/sa/sa05

5. Trova le medie di caricamento nel tempo

È possibile trovare le medie di carico per gli straordinari utilizzando -q opzione.

$ sar -q 1 3

Linux 3.10.0-1127.10.1.el7.x86_64 (localhost.localdomain) 	10/06/2020 	_x86_64_	(2 CPU)

06:16:13      runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
06:16:14            0       329      0,00      0,04      0,09         0
06:16:15            0       329      0,00      0,04      0,09         0
06:16:16            0       329      0,00      0,04      0,09         0
Average:            0       329      0,00      0,04      0,09         0

Dove:

runq-sz: mostra la lunghezza della coda di esecuzione (numero di attività in attesa del tempo di esecuzione).

plist-sz: mostra il numero di attività nell’elenco delle attività.

ldavg-1/5/15: Carico medio del sistema per l’ultimo minuto/ ultimi 5 minuti/ ultimi 15 minuti.

Se desideri raccogliere le medie di carico per un giorno specifico, ad esempio il 05 settembre, devi eseguire il seguente comando sar:

$ sar -q -f /var/log/sa/sa05

6. Rapporto sui file system montati

È possibile ottenere le statistiche per i file system correnti utilizzando -F opzione

$ sar -F 2 3

Linux 3.10.0-1127.10.1.el7.x86_64 (localhost.localdomain) 	10/06/2020 	_x86_64_	(2 CPU)

06:30:18     MBfsfree  MBfsused   %fsused  %ufsused     Ifree     Iused    %Iused FILESYSTEM
06:30:20        30410      5532     15,39     15,39  18245113    166407      0,90 /dev/mapper/centos-root
06:30:20          796       218     21,52     21,52    523947       341      0,07 /dev/sda1

06:30:20     MBfsfree  MBfsused   %fsused  %ufsused     Ifree     Iused    %Iused FILESYSTEM
06:30:22        30410      5532     15,39     15,39  18245113    166407      0,90 /dev/mapper/centos-root
06:30:22          796       218     21,52     21,52    523947       341      0,07 /dev/sda1

06:30:22     MBfsfree  MBfsused   %fsused  %ufsused     Ifree     Iused    %Iused FILESYSTEM
06:30:24        30410      5532     15,39     15,39  18245113    166407      0,90 /dev/mapper/centos-root
06:30:24          796       218     21,52     21,52    523947       341      0,07 /dev/sda1

Summary:     MBfsfree  MBfsused   %fsused  %ufsused     Ifree     Iused    %Iused FILESYSTEM
Summary         30410      5532     15,39     15,39  18245113    166407      0,90 /dev/mapper/centos-root
Summary           796       218     21,52     21,52    523947       341      0,07 /dev/sda1

Se vuoi raccogliere i filesystem montati per un giorno specifico, diciamo il 10 giugno.

$ sar -F -f /var/log/sa/sa10

7. Riporta i dettagli su inode, tabelle del kernel e tabelle di file

È possibile ottenere dettagli su inode, processi, thread del kernel e tabelle di file utilizzati dal sistema utilizzando il comando sar cu -v opzione.

$ sar -v 2 3

Linux 3.10.0-1127.10.1.el7.x86_64 (localhost.localdomain) 	10/06/2020 	_x86_64_	(2 CPU)

06:57:23    dentunusd   file-nr  inode-nr    pty-nr
06:57:25       160833      2400    132081         3
06:57:27       160833      2400    132081         3
06:57:29       160833      2400    132081         3
Average:       160833      2400    132081         3

Dove:

dentunusd: il numero di voci cache inutilizzate nella directory cache

nessun file: il numero di handle di file in uso

inode-no: gestori di inode

pty no: pseudo terminali

8. Verificare il blocco della CPU

È possibile utilizzare il comando sar per scoprire quale numero di interruzioni potrebbe causare deadlock della CPU.

Nell’esempio qui sotto #9 è stata la più grande interruzione del sistema esclusa #0.

$ sar -I XALL 2 10
02:07:10 AM INTR intr/s
02:07:12 AM 0 992.57
02:07:12 AM 1 0.00
02:07:12 AM 2 0.00
02:07:12 AM 3 0.00
02:07:12 AM 4 0.00
02:07:12 AM 5 0.00
02:07:12 AM 6 0.00
02:07:12 AM 7 0.00
02:07:12 AM 8 0.00
02:07:12 AM 9 350.50

Anche i dettagli nel file “/proc/interrupts” ti saranno utili L’interrupt interrompe momentaneamente l’elaborazione in modo che l’I/O o altre operazioni possano aver luogo. L’elaborazione riprende dopo l’esecuzione dell’operazione specifica. Pertanto, è molto importante che ogni dispositivo installato nella macchina abbia un’impostazione di interrupt che non sia in conflitto con le impostazioni utilizzate dall’hardware e da altre periferiche.

$ sudo cat /proc/interrupts

           CPU0       CPU1       
  0:         48          0   IO-APIC-edge      timer
  1:         54          0   IO-APIC-edge      i8042
  8:          1          0   IO-APIC-edge      rtc0
  9:          0          0   IO-APIC-fasteoi   acpi
 12:         35        116   IO-APIC-edge      i8042
 14:          0          0   IO-APIC-edge      ata_piix
 15:          0          0   IO-APIC-edge      ata_piix
 16:        118       2513   IO-APIC-fasteoi   vmwgfx
 24:          0          0   PCI-MSI-edge      PCIe PME, pciehp
 25:          0          0   PCI-MSI-edge      PCIe PME, pciehp
 26:          0          0   PCI-MSI-edge      PCIe PME, pciehp
 27:          0          0   PCI-MSI-edge      PCIe PME, pciehp
NMI:          0          0   Non-maskable interrupts
LOC:   35392807   14792833   Local timer interrupts
SPU:          0          0   Spurious interrupts
PMI:          0          0   Performance monitoring interrupts
IWI:    2677624     215297   IRQ work interrupts
...

La prima colonna si riferisce al numero IRQ. La colonna successiva riporta il tipo di interruzione e l’ultima colonna contiene il nome del dispositivo che risiede nell’IRQ.

9. Segnalare le statistiche di rete

Per ottenere il rapporto sulle statistiche di rete, utilizzare il comando sar cu -n opzione. Per esempio:

$ sar -n DEV

Linux 3.10.0-1127.10.1.el7.x86_64 (localhost.localdomain) 	10/06/2020 	_x86_64_	(2 CPU)

19:20:23        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
19:20:24       ens192     11,00      4,00      1,80      2,75      0,00      0,00      0,00
19:20:24           lo     79,00     79,00     43,62     43,62      0,00      0,00      0,00

Average:        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
Average:       ens192     11,00      4,00      1,80      2,75      0,00      0,00      0,00
Average:           lo     79,00     79,00     43,62     43,62      0,00      0,00      0,00

Dove:

SV: Vengono riportate le statistiche dai dispositivi di rete

SONO AFFRONTATO: nome interfaccia (nell’esempio sopra: ens192)

rxpck/s / txpck/s: numero totale di pacchetti ricevuti/trasmessi al secondo

Ci sono opzioni diverse da DEV come:

NFS: mostra le attività del client NFS

CALZA: indica le prese in uso

TCP: indica il traffico di rete TCP v4

UDP: indica il traffico di rete UDP v4

Se desideri raccogliere statistiche di rete per un giorno specifico, ad esempio il 9 giugno, devi eseguirlo come segue:

$ sar -n DEV -f /var/log/sa/sa09

Carta Sar

Le sezioni precedenti hanno spiegato come utilizzare il sale nel terminale. kSar è un’applicazione GUI basata su Java che visualizza i tuoi dati sar.

Installazione di ksar:

$ sudo apt install openjdk-11-jdk
$ sudo yum install epel-release
$ sudo yum install java-openjdk

Scarica ksar e decomprimilo:

$ wget https://sourceforge.net/projects/ksar/files/latest/download
$ mv download kSar.zip
$ unzip kSar.zip

Ora cd in dir

$ cd kSar-*

Ora rendi eseguibile il file run.sh ed eseguilo come root.

$ chmod +x run.sh
$ sudo su
./run.sh

Ora possiamo testare eseguendo il comando locale. Andando a Data > Run Local Command e lì possiamo usare il comando predefinito.

comando di esecuzione ksar

Successivamente, possiamo guardare i grafici facendo clic sul pannello di sinistra e osservando il grafico visualizzato a destra:

ksar vedi grafici

È anche possibile caricare grafica da file. Per prima cosa, dobbiamo eseguire sar:

LC_ALL=C sar -A > /tmp/sar.data.txt

E poi nei menu, selezioniamo Data > Load dal file di testo e trova il file in /tmp o ovunque l’ho salvato.

Conclusione

In questo tutorial, abbiamo appreso come utilizzare il comando sar per aiutarti a osservare l’utilizzo delle risorse di sistema e migliorare le prestazioni mentre lavori con il tuo sistema operativo.

Dagli esempi SAR, è chiaro che si tratta di un ottimo strumento per raccogliere, segnalare o salvare informazioni sull’attività del sistema.

Grazie per aver letto e per favore lascia il tuo suggerimento nella sezione commenti qui sotto.

Related Read: 10 Linux iostat Command to Report CPU and I/O Statistics

Related Articles

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Back to top button
Close