SAR: Informes de CPU, memoria y disco en GNU/Linux

SAR es una herramienta clásica de los sistemas UNIX y GNU/Linux. SAR significa “System Activity Report”, esto es, en el idioma de Cervantes y Cortázar: Informe de actividad del sistema.

Se utiliza para recopilar, informar y guardar datos de la CPU, memoria y lectura/escritura del disco. El comando SAR genera los informes sobre la marcha, además también se puede configurar para guardar dichos informes en ficheros de registro.

Informes de CPU, memoria y disco en GNU/Linux con SAR

Para la entrada voy a utilizar un sistema Linux Mint LMDE 3, pero los ejemplos deberían servir para la mayoría de las distribuciones que tengan esta herramienta de SYSSTAT instalada.

Si no lo tenemos instalada, realizamos el siguiente paso:

1
2
3
4
5
6
7
8
#En sistemas RHEL, Centos y ScientificLinux
sudo yum -y install sysstat
# En sistemas Debian, Ubuntu o Linux Mint
sudo apt install sysstat
# En sistemas Fedora
sudo dnf install sysstat
# En sistemas SUSE o Opensuse mediante YAST o
sudo zypper -i sysstat

Una vez instalado “sysstat”, se creará el servicio con el mismo nombre, que debemos añadir al inicio:

1
2
systemctl enable sysstat
systemctl start sysstat

En sistemas antiguos debemos utilizar “chkconfig”, por ejemplo:

1
2
chkconfig –level 3 sysstat on
service sysstat start

Además, este servicio añade una serie de tareas al crontab, lo podemos comprobar:

1
2
3
4
5
6
7
8
9
10
root@turbolinuxpc:/etc/cron.d# cat sysstat 
# The first element of the path is a directory where the debian-sa1
# script is located
PATH=/usr/lib/sysstat:/usr/sbin:/usr/sbin:/usr/bin:/sbin:/bin
 
# 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

Por último que no menos importante en esta parte, habilitamos la recopilación de datos, modificando el fichero de configuración “/etc/default/sysstat”

1
2
sudo vi /etc/default/sysstat
cambiamos ENABLED="false" to ENABLED="true"

Modos de uso de SAR

Veamos algunos ejemplos, el primero el uso más básico, que nos muestre información del sistema cada 2 segundos hasta cinco veces:

1
sar 2 5

Con el resultado:

1
2
3
4
5
6
7
8
9
10
davidochobits@turbolinuxpc:~$ sar 2 5
Linux 4.9.0-8-amd64 (turbolinuxpc)  12/03/19    _x86_64_    (8 CPU)
 
19:00:00        CPU     %user     %nice   %system   %iowait    %steal     %idle
19:00:02        all      0,31      0,06      0,50      0,37      0,00     98,75
19:00:04        all      0,06      0,06      0,00      0,13      0,00     99,75
19:00:06        all      0,12      0,00      0,12      0,12      0,00     99,62
19:00:08        all      0,19      0,06      0,06      0,19      0,00     99,50
19:00:10        all      0,13      0,06      0,13      0,13      0,00     99,56
Media:          all      0,16      0,05      0,16      0,19      0,00     99,442

Si el tanto por ciento de espera (iowait) de E/S es más que cero, durante un periodo largo, entonces podemos considerar que hay algún cuello de botella en el sistema de E/S, bien de disco bien de red.

Guardar la información de SAR en un fichero

Para logar el objetivo de guardar la información de SAR en un fichero, utilizando la salida standard, debemos utilizar el parámetro “-o

1
sar 2 5 -o /tmp/datos > /dev/null 2>&1

Así más adelante podemos consultar la información:

1
sar -f /tmp/datos

Podemos un vídeo generado con Peek, del que hablamos recientemente:

Visualizar fichero con SAR

Generar informe de memoria

Para generar un reporte extenso centrado en el uso de la memoria, usaremos el parámetro “-r”, como sigue:

1
[root@localhost ~]# sar -r 2 5

Con el resultado:

1
2
3
4
5
6
7
8
9
10
davidochobits@turbolinuxpc:~$ sar -r 2 5
Linux 4.9.0-8-amd64 (turbolinuxpc)  12/03/19    _x86_64_    (8 CPU)
 
19:02:05    kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
19:02:07      5583852   2525752     31,15     57608    883476   5079048     30,59   1619212    704296       124
19:02:09      5584072   2525532     31,14     57608    883576   5079048     30,59   1619016    704396       124
19:02:11      5583948   2525656     31,14     57608    883512   5079048     30,59   1619112    704328       124
19:02:13      5584072   2525532     31,14     57608    883512   5079048     30,59   1619112    704328       124
19:02:15      5584072   2525532     31,14     57608    883512   5079048     30,59   1619180    704328       124
Media:        5584003   2525601     31,14     57608    883518   5079048     30,59   1619126    704335       12

“kbcommit” y “%commit” es la memoria general utilizada, incluida la memoria RAM y la transaccional o SWAP

Crear reporte de los dispositivos de bloque

Si queremos crear un informe dedicado a los dispositivos de bloque, esto es, mayormente los discos, debemos utilizar el parámetro “-d” Si además le añadimos el parámetro “-p”, la salida será mucho más legible.

1
sar -d -p 2 4

Veamos el resultado:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
davidochobits@turbolinuxpc:~$ sar -d -p 2 4
Linux 4.9.0-8-amd64 (turbolinuxpc)  12/03/19    _x86_64_    (8 CPU)
 
19:03:18          DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
19:03:20          sda      0,00      0,00      0,00      0,00      0,00      0,00      0,00      0,00
 
19:03:20          DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
19:03:22          sda      2,50      0,00    140,00     56,00      0,00      0,00      0,00      0,00
 
19:03:22          DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
19:03:24          sda      0,00      0,00      0,00      0,00      0,00      0,00      0,00      0,00
 
19:03:24          DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
19:03:26          sda      0,00      0,00      0,00      0,00      0,00      0,00      0,00      0,00
 
Media:            DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
Media:            sda      0,62      0,00     35,00     56,00      0,00      0,00      0,00      0,00

Informe con estadísticas de red

Si utilizamos el parámetro “-n”, generaremos un reporte con toda la actividad de la red reciente:

Por ejemplo:

1
sar -n ALL

Consultar los registros de SAR

Los registros por defecto se almacenan en la ruta “/var/log/sysstat”, utilizando el valor “-f”, podemos leer los ficheros de registro:

1
sar -r -f /var/log/sysstat/

Fuentes consultadas:

Linuxtechi.com – Generate CPU, Memory and I/O report using SAR command

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies