LINUX

Comando Sar en Linux con ejemplos

comando sar linux
El comando Sar se utiliza para producir informes estadísticos sobre una variedad de recursos, incluido el uso de la CPU, la utilización de la memoria, el consumo de dispositivos de E / S, el monitor de red, el intercambio y los promedios de carga.

SAR son las siglas de System Activity Reporter, herramientas muy útiles para que cualquier administrador de Linux supervise el rendimiento del sistema e investigue los cuellos de botella. Esta herramienta la proporciona el paquete sysstat.

En este tutorial, veremos cómo instalar el paquete sysstat y usar el comando sar en Linux.

Instalar el paquete sysstat

El paquete sysstat contiene muchas utilidades que son una colección de herramientas de monitoreo de desempeño para el sistema Linux. Sar es una herramienta que pertenece al paquete sysstat.

Instalación del paquete sysstat en RHEL y CentOS

$ sudo yum install sysstat

Una vez que sysstat se haya instalado correctamente, verificando la instalación mediante el comando:

$ which sar
/usr/bin/sar

De forma predeterminada, sysstat almacenará las estadísticas del servidor en el archivo ‘/ var / log / sa / saDD’ (DD es el día del mes, por ejemplo: / var / log / sa / sa08) y mantendrá los datos durante 28 días. Si desea conservar más los datos, debe modificar el archivo de configuración de sysstat ‘/ etc / sysconfig / sysstat’.

$ sudo cat /etc/sysconfig/sysstat

HISTORY=28

Modificar el valor de HISTORY con la cantidad de días que desea conservar los registros.

Instalación del paquete sysstat en Ubuntu y Debian

$ sudo apt install sysstat

Verificando la instalación por comando:

$ which sar
/usr/bin/sar

En Ubuntu, necesitamos habilitarlo mientras CentOS no es necesario.

Usando su editor favorito (vim, nano o gedit) para editar el siguiente archivo:

$ sudo nano /etc/default/sysstat

Y establecer ENABLED a true:

ENABLED="true"

Reiniciar el servicio

$ sudo service sysstat restart

En Ubuntu, el archivo de configuración es ‘/ etc / sysstat / sysstat’ y los datos se conservarán en 7 días de forma predeterminada.

$ cat /etc/sysstat/sysstat

HISTORY=7

Desde Fedora 21, sysstat viene por defecto y todo lo que necesita hacer es ejecutar los siguientes comandos:

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

Hay un trabajo cron para sysstat que se ejecuta cada 10 minutos para recopilar datos y los almacenará en el archivo correspondiente / var / log / sa / saDD. Si desea cambiar el intervalo de esta ejecución cron, puede modificarlo en ‘/etc/cron.d/sysstat’.

Para systemd, el archivo de la unidad de temporizador llama a sysstat-collect.service (/usr/lib/systemd/system/sysstat-collect.service) cada 10 minutos para recopilar las estadísticas.

$ 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

Uso del comando sar

La sintaxis básica para el uso del comando sar es la siguiente:

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

Dónde:

intervalo: el período en segundos.

contar: número de veces para realizar estadísticas de salida.

1. Encuentra la actividad de la CPU

De forma predeterminada (sin otras opciones dadas), el comando sar informará la actividad de la CPU del servidor. Además, la opción -u se puede utilizar para obtener el informe de utilización de la CPU.

Si desea obtener el informe de actividad de la CPU cada 2 segundos durante 3 veces, puede usar el siguiente 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

uso de cpu sar

Dónde:

%usuario denota el porcentaje de utilización de la CPU que se produjo durante la ejecución a nivel de usuario (espacio de usuario)

%sistema denota el porcentaje de utilización de la CPU que se produjo durante la ejecución a nivel del sistema (espacio del kernel)

%inactivo es el porcentaje de tiempo que la CPU o las CPU estuvieron inactivas y el sistema no tuvo una solicitud de E / S de disco pendiente.

Si desea obtener la salida en un archivo en forma binaria, debe agregar -o nombre de archivo con el comando sar. Por ejemplo:

$ sar -u 2 3 -o log-file

Además, puede obtener el informe de actividad de la CPU de un día en particular, digamos: 9 de junio de 2020. Puede encontrarlo como:

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

2. Encuentre el uso de CPU para cada procesador

los -u La opción proporciona el uso de la CPU en todos los procesadores. Si desea encontrar la actividad de la CPU en todos los procesadores por separado, debe utilizar el -P opción.

$ 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 para encontrar el uso de la CPU en todos los procesadores

3. Encuentra el uso de memoria

Puede encontrar el uso de memoria (memoria usada y libre del servidor) a lo largo del tiempo usando el -r cambiar.

$ 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

Dónde:

kbmemfree indica la cantidad de memoria libre disponible en kilobytes.

kbmemused indica la cantidad de memoria utilizada en kilobytes. Esto no tiene en cuenta la memoria utilizada por el propio kernel.

Si desea recopilar el uso de memoria para un día en particular, diga: 05 de septiembre, debe ejecutarlo como se muestra a continuación:

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

comando sar - uso de memoria

4. Busque la actividad de intercambio

Puede comprobar el uso de intercambio de la máquina utilizando el -W opción.

$ 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

Dónde:

pswpin / s indica el número total de páginas de intercambio que el sistema trajo por segundo.

pswpout / s indica el número total de páginas de intercambio que el sistema produjo por segundo.

Si desea recopilar los usos de intercambio para un día en particular, digamos el 05 de septiembre, debe ejecutarlo como el siguiente comando sar:

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

5. Encuentre promedios de carga a lo largo del tiempo

Puede encontrar los promedios de carga en el tiempo extra usando el -q opción.

$ 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

Dónde:

runq-sz: Muestra la longitud de la cola de ejecución (número de tareas en espera de tiempo de ejecución).

plist-sz: Muestra el número de tareas en la lista de tareas.

ldavg-1/5/15: Promedio de carga del sistema durante el último minuto / últimos 5 minutos / últimos 15 minutos.

Si desea recopilar los promedios de carga para un día en particular, digamos el 05 de septiembre, debe ejecutarlo siguiendo el comando sar:

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

6. Informe de sistemas de archivos montados

Puede obtener las estadísticas de los sistemas de archivos actuales utilizando el -F opción

$ 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

Si desea recopilar los sistemas de archivos montados para un día en particular, digamos el 10 de junio.

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

7. Informar detalles de inodo, tablas de kernel y tablas de archivos

Puede obtener los detalles del inodo, procesos, subprocesos del kernel y tablas de archivos utilizados por el sistema mediante el comando sar con -v opción.

$ 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

Dónde:

dentunusd: número de entradas de caché no utilizadas en la caché del directorio

file-nr: número de identificadores de archivos en uso

inode-nr: manipuladores de inodo

pty-nr: pseudo terminales

8. Compruebe el cuello de botella de la CPU

Puede usar el comando sar para averiguar qué número de interrupciones puede causar un cuello de botella en la CPU.

En el siguiente ejemplo #9 fue la mayor interrupción del sistema excluyendo #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

Los detalles en el archivo ‘/ proc / interrupts’ también le resultarán útiles. La interrupción detiene el procesamiento momentáneamente para que puedan ocurrir E / S u otras operaciones. El procesamiento se reanuda después de que se lleva a cabo la operación específica. Por lo tanto, es muy importante que cada dispositivo instalado en la máquina tenga una configuración de interrupción que no entre en conflicto con la configuración utilizada por el hardware y otros periféricos.

$ 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 primera columna se refiere al número de IRQ. La siguiente columna informa el tipo de interrupción y la última columna contiene el nombre del dispositivo que se encuentra en IRQ.

9. Informar estadísticas de la red

Para obtener el informe de las estadísticas de la red, use el comando sar con -n opción. Por ejemplo:

$ 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

Dónde:

DEV: se informan las estadísticas de los dispositivos de red

YO AFRONTO: nombre de la interfaz (en el ejemplo anterior: ens192)

rxpck / s / txpck / s: número total de paquetes recibidos / transmitidos por segundo

Hay algunas otras opciones además de DEV, como:

NFS: muestra las actividades del cliente NFS

CALCETÍN: indica los enchufes en uso

TCP: indica el tráfico de red TCP v4

UDP: indica el tráfico de red UDP v4

Si desea recopilar las estadísticas de la red para un día en particular, digamos el 9 de junio, debe ejecutarlo de la siguiente manera:

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

Gráfico sar

Las secciones anteriores explicaron la forma de usar sar desde la terminal. kSar es una aplicación GUI basada en Java que visualiza sus datos sar.

Instalación de ksar:

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

Descarga ksar y descomprímelo:

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

Ahora cd en dir

$ cd kSar-*

Ahora haga que el archivo run.sh sea ejecutable y ejecútelo como root.

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

Ahora podemos probar ejecutando el comando local. Vamos a Data > Run Local Command y allí podemos usar el comando predeterminado.

comando ejecutar ksar

A continuación, podemos mirar los gráficos haciendo clic en el panel izquierdo y mirando en el lado derecho el gráfico mostrado:

ksar ver gráficos

También es posible cargar gráficos desde un archivo. Primero, necesitamos ejecutar sar:

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

Y luego en los menús, seleccionamos Data > Load del archivo de texto y busque el archivo en /tmp o donde lo hayamos guardado.

Conclusión

En este tutorial, aprendimos cómo se puede usar el comando sar para ayudarlo a notar el uso de los recursos del sistema y mejorar el rendimiento mientras trabaja con su sistema operativo.

A partir de los ejemplos de sar, queda claro que es una gran herramienta para recopilar, informar o guardar información sobre la actividad del sistema.

Gracias por leer y deje su sugerencia en la sección de comentarios a continuación.

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

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar