Buscar

Linux: SYSSTAT monitorización

sysstat es un paquete que encontraremos en la mayoría de las distribuciones de Linux orientado a ofrecer al administrador un conjunto de utilidades sobre monitorización del sistema. 

Linux Sysstat - Logo

Podemos instalar sysstat en las distribuciones Linux CentOS/RHEL, de la siguiente forma:

yum install sysstat -y

Una vez instalado, podremos ver la versión de sysstat ejecutando alguna de sus utilidades con el parámetro -V, por ejemplo: mpstat -V

Ejemplo sobre CentOS 7:

[root@LINUX1 ~]# cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)


[root@LINUX1 ~]# mpstat -V
sysstat version 10.1.5
(C) Sebastien Godard (sysstat orange.fr)


Ejemplo sobre CentOS 6:

[root@LINUX2 ~]# cat /etc/redhat-release
CentOS release 6.4 (Final)
 

[root@LINUX2 ~]# mpstat -V
sysstat version 9.0.4
(C) Sebastien Godard (sysstat orange.fr)


Veamos algunas utilidades incorporadas dentro del paquete sysstat:

mpstat

Con mpstat podemos ver la actividad general de uso de CPU del sistema.

[root@LINUX1 ~]# mpstat
Linux 3.10.0-229.4.2.el7.x86_64          07/20/2015      _x86_64_        (2 CPU)

05:08:13 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
05:08:13 PM  all    0.03    0.00    0.02    0.00    0.00    0.00    0.00    0.00    0.00   99.95


Si ejecutamos mpstat -P ALL, podremos ver el detalle por cada CPU.

También disponemos del modo continuo, por ejemplo, si ejecutamos  mpstat 3, se producirá un refresco de los valores mostrados cada 3 segundos.

pidstat

Con pidstat podemos ver el uso de recursos de un proceso concreto.

Ejemplos:

Uso de CPU del proceso mysql:

[root@LINUX1 ~]# pidstat -C "mysql"
Linux 3.10.0-229.4.2.el7.x86_64          07/21/2015      _x86_64_(2 CPU)

01:48:13 PM   UID       PID    %usr %system  %guest    %CPU   CPU  Command
01:48:13 PM    27       907    0.00    0.00    0.00    0.00     0  mysqld_safe
01:48:13 PM    27      1064    0.03    0.02    0.00    0.05     1  mysqld


Uso de CPU de los procesos en formato árbol:

[root@LINUX1 ~]# pidstat -t -C "mysql"
Linux 3.10.0-229.4.2.el7.x86_64         07/21/2015      _x86_64_(2 CPU)

01:51:38 PM   UID      TGID       TID    %usr %system  %guest    %CPU   CPU  Command
01:51:38 PM    27       907         -    0.00    0.00    0.00    0.00     0  mysqld_safe
01:51:38 PM    27         -       907    0.00    0.00    0.00    0.00     0  |__mysqld_safe
01:51:38 PM    27      1064         -    0.03    0.02    0.00    0.05     1  mysqld
01:51:38 PM    27         -      1064    0.00    0.00    0.00    0.00     1  |__mysqld
01:51:38 PM    27         -      1066    0.00    0.00    0.00    0.00     1  |__mysqld
01:51:38 PM    27         -      1067    0.00    0.00    0.00    0.00     0  |__mysqld
01:51:38 PM    27         -      1068    0.00    0.00    0.00    0.00     0  |__mysqld
01:51:38 PM    27         -      1069    0.00    0.00    0.00    0.00     1  |__mysqld
01:51:38 PM    27         -      1070    0.00    0.00    0.00    0.00     1  |__mysqld
01:51:38 PM    27         -      1071    0.00    0.00    0.00    0.00     0  |__mysqld
01:51:38 PM    27         -      1072    0.00    0.00    0.00    0.00     1  |__mysqld
01:51:38 PM    27         -      1073    0.00    0.00    0.00    0.00     1  |__mysqld
01:51:38 PM    27         -      1074    0.00    0.00    0.00    0.00     0  |__mysqld
01:51:38 PM    27         -      1075    0.00    0.00    0.00    0.00     1  |__mysqld
01:51:38 PM    27         -      1077    0.01    0.00    0.00    0.01     0  |__mysqld
01:51:38 PM    27         -      1078    0.01    0.00    0.00    0.01     1  |__mysqld
01:51:38 PM    27         -      1079    0.00    0.00    0.00    0.00     1  |__mysqld
01:51:38 PM    27         -      1080    0.00    0.00    0.00    0.00     0  |__mysqld
01:51:38 PM    27         -      1107    0.00    0.00    0.00    0.00     1  |__mysqld
 


Uso de disco (parámetro -d) del comando anterior:

[root@LINUX1 ~]# pidstat -t -C "mysql" -d
Linux 3.10.0-229.4.2.el7.x86_64         07/21/2015      _x86_64_        (2 CPU)

01:57:06 PM   UID      TGID       TID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
01:57:06 PM    27       907         -      0.00      0.00      0.00  mysqld_safe
01:57:06 PM    27         -       907      0.00      0.00      0.00  |__mysqld_safe
01:57:06 PM    27      1064         -      0.01      0.00      0.00  mysqld
01:57:06 PM    27         -      1064      0.01      0.00      0.00  |__mysqld

 

iostat

Con iostat podemos ver el uso del sistema de disco.

Ejecución de iostat sin parámetros:

[root@LINUX1 ~]# iostat
Linux 3.10.0-229.4.2.el7.x86_64       07/21/2015      _x86_64_        (2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.03    0.00    0.02    0.00    0.00   99.95

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               0.03         0.10         0.35     244608     881232

sar

Con sar podemos ver la actividad general de uso de recursos del sistema, no solo de CPU.

Con sar, es posible realizar todas las tareas de monitorización que podíamos hacer con las herramientas: iostat, mpstat, pidstat

Ejemplo:

Uso de sar, para monitorizar el uso de la red:

[root@LINUX1 ~]# sar -n DEV
Linux 3.10.0-229.4.2.el7.x86_64          07/20/2015      _x86_64_        (2 CPU)

05:00:01 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
05:10:01 PM     ens32      0.46      0.13      0.04      0.02      0.00      0.00      0.00
05:10:01 PM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
05:10:01 PM     ens33      2.45      0.00      2.99      0.00      0.00      0.00      0.00
05:20:01 PM     ens32      0.24      0.01      0.02      0.01      0.00      0.00      0.00
05:20:01 PM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
05:20:01 PM     ens33      2.42      0.00      2.99      0.00      0.00      0.00      0.00
05:30:01 PM     ens32      0.30      0.03      0.03      0.00      0.00      0.00      0.00
05:30:01 PM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
05:30:01 PM     ens33      2.45      0.00      2.99      0.00      0.00      0.00      0.00
Average:        ens32      0.34      0.06      0.03      0.01      0.00      0.00      0.00
Average:           lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:        ens33      2.44      0.00      2.99      0.00      0.00      0.00      0.00

*ens32 y ens33, corresponden a los interfaces Ethernet del equipo.

También disponemos de los siguientes modos, para el uso de:
  • Disco: -d
  • RAM: -r
  • CPU: Sin parámetros
  • Todos los modos: -A

sysstat como servicio

Al instalar el paquete sysstat, no solo disponemos de los comandos anteriores, si no que sysstat puede funcionar como servicio para poder obtener resultados de una monitorización continua.

La configuración de sysstat como servicio consiste:

Ejemplos basados sobre CentOS 7:

Iniciar servicio: systemctl start sysstat
Detener servicio: systemctl stop sysstat

Configurar el inicio del servicio como automático: systemctl enable sysstat

Fichero de configuración:

[root@LINUX1 ~]# cat /etc/sysconfig/sysstat
# sysstat-10.1.5 configuration file.

# How long to keep log files (in days).
# If value is greater than 28, then log files are kept in
# multiple directories, one for each month.
HISTORY=28

# Compress (using gzip or bzip2) sa and sar files older than (in days):
COMPRESSAFTER=31

# Parameters for the system activity data collector (see sadc manual page)
# which are used for the generation of log files.
SADC_OPTIONS="-S DISK"

# Compression program to use.
ZIP="bzip2"


Tabla cron de sysstat:

[root@LINUX1 ~]# cat /etc/cron.d/sysstat
# Run system activity accounting tool every 10 minutes
*/10 * * * * root /usr/lib64/sa/sa1 1 1
# 0 * * * * root /usr/lib64/sa/sa1 600 6 &
# Generate a daily summary of process accounting at 23:53
53 23 * * * root /usr/lib64/sa/sa2 -A

No hay comentarios:

Publicar un comentario