GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo analizar el rendimiento básico del sistema usando:vmstat, sar, iostat y mpstat

En esta publicación, se analizarán una serie de herramientas básicas de creación de perfiles que se incluyen en la mayoría de los sistemas Linux de forma predeterminada. Las herramientas presentadas en esta publicación, vmstat, sar, iostat y mpstat, son relativamente simples pero brindan datos básicos que pueden ser muy útiles al analizar el rendimiento de un sistema. Para la mayoría de los ejemplos, usaremos una máquina CentOS 8.

vmstat:estadísticas de memoria virtual

Una de las herramientas más útiles para solucionar problemas de rendimiento relacionados con la memoria es vmstat. El comando vmstat es parte de procps-ng paquete, que incluye otros útiles comandos de análisis de rendimiento, como free y top.

El comando vmstat, si no se le dan argumentos, imprimirá los promedios de varias estadísticas del sistema desde el arranque. El comando vmstat acepta dos argumentos. El primero es el retraso , y el segundo es el contar . El retraso es un valor en segundos entre la salida. El conteo es el número de iteraciones de estadísticas para informar. Si no se proporciona ningún recuento, vmstat informará continuamente sobre las estadísticas.

Las estadísticas de memoria se informan en KiB por defecto. La opción —S permite cambiar esto para informar en KB, MB o MiB con -S k , -S·m y -S M , respectivamente.

La primera línea de la salida de vmstat es siempre un promedio desde el inicio, por lo que al recopilar métricas, elimine la primera línea y use las líneas posteriores. Las primeras dos líneas de salida son información de encabezado y la tercera es el promedio de tiempo de actividad. El siguiente ejemplo muestra la salida de vmstat a partir de la cuarta línea de salida:

# vmstat 10 | tail -n +4
 1  0      0 479748   1044 570784    0    0     0     5   90  132  0  0 100  0  0
 0  0      0 475952   1044 570912    0    0     0     0   81  130  0  0 100  0  0
 0  0      0 479456   1044 570856    0    0     0    52   87  137  0  0 100  0  0
...

Descripción general de las columnas vmstat

ejemplos de vmstat

1. El comando vmstat, si no se le dan argumentos, imprimirá los promedios de varias estadísticas del sistema desde el arranque:

# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 424444   1044 615940    0    0    89    14   58   78  1  0 98  1  0

2. Aquí hay un ejemplo donde vmstat generará estadísticas cada 10 segundos hasta que se interrumpa:

# vmstat 10
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 426440   1044 615872    0    0    88    14   58   78  1  0 98  1  0
 0  0      0 426072   1044 615872    0    0     0     1   92  137  0  0 100  0  0
 0  0      0 426072   1044 615872    0    0     0     5   74  116  0  0 100  0  0
 ...

3. Si desea que vmstat salga después de imprimir cuatro informes, agregue un argumento de conteo:

# vmstat 10 4
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 2  0      0 425236   1044 616252    0    0    86    13   58   78  1  0 98  1  0
 0  0      0 424936   1044 616252    0    0     0     1   85  129  0  0 100  0  0
 0  0      0 424876   1044 616252    0    0     0    15   70  111  0  0 100  0  0
 0  0      0 423360   1044 616252    0    0     0     1   89  130  0  0 100  0  0

sar:el reportero de actividad del sistema

El comando sar es una herramienta de análisis multipropósito que forma parte del paquete sysstat. Funciona en dos modos. Puede leer los datos recopilados por un trabajo cron cada 10 minutos o puede usarse para recopilar datos instantáneos sobre el estado del sistema.

Nota :El trabajo cron se instala como /etc/cron.d/sysstat , que ejecuta los comandos /usr/lib64/sa/sa1 y /usr/lib64/sa/sa2 que recopilan datos mediante /usr/lib64/sa/sadc y sar. Estos datos se almacenan en /var/log/sa/sadd, donde dd es el día del mes de dos dígitos.Nota :Al igual que el comando vmstat, sar se puede ejecutar con argumentos de retraso y recuento para informar estadísticas para un cierto número de iteraciones y con una cantidad específica de retraso entre cada iteración.

Asegúrese de que sar esté instalado antes de comenzar. Si no está instalado, instálelo usando yum:

# yum install sysstat

Una vez instalado, configure sar para recopilar datos en intervalos de 5 minutos:

# vim /etc/cron.d/sysstat
# Run system activity accounting tool every 10 minutes
*/5 * * * * root /usr/lib64/sa/sa1 1 1

Para obtener los mejores resultados al usar sar, asegúrese de establecer una configuración regional con un LANG variable de entorno que proporciona soporte de tiempo de 24 horas. Por ejemplo, si ordena los datos de sar por la primera columna (la columna de tiempo), en_US.UTF-8 locale colocará 01:00:00 PM antes de las 02:00:00 AM. Es probable que esto distorsione los puntos de datos y haga que un gráfico no tenga valor. La configuración regional c es una que cumple con este requisito de clasificación. Cuando trabaje con datos sar, anule la configuración regional de esta manera:

# LANG=C sar -q
Linux 4.18.0-193.28.1.el8_2.x86_64 (2713138b141c.mylabserver.com) 	02/09/21 	_x86_64_	(2 CPU)

00:00:01       runq-sz   plist-sz    ldavg-l    ldavg-S    1davg-15     blocked
00:10:01             0        317       0.20       0.17        0.18           0
00:20:01             0        317       0.00       0.07        0.13           0
... Output Truncated ...

De hecho, simplemente se puede crear un alias para sar. Agregue la siguiente línea a /etc/bashrc o ~/.bashrc :

alias sar='LANG=C sar'

sar se puede usar para leer uno de los archivos de registro (o cualquier archivo de datos sar en general) usando la opción -f.

# sar -q -f /var/log/sa/sa09
Linux 4.18.0-193.28.1.el8_2.x86_64 (2713138b141c.mylabserver.com) 	02/09/2021 	_x86_64_	(2 CPU)

00:00:01       runq-sz   plist-sz    ldavg-l    ldavg-S    1davg-15     blocked
00:10:01             0        317       0.20       0.17        0.18           0
00:20:01             0        317       0.00       0.07        0.13           0
... Output Truncated ...

Algunas configuraciones se pueden hacer en /etc/sysconfig/sysstat expediente. Por ejemplo, cambie el HISTORIAL variable para establecer el número de días que se guardan los archivos para sar.

ejemplos de sar

1. Cree un alias para todo el sistema para sar que obligue a sar a informar utilizando el horario de 24 horas. Fuente esto en el shell actual.

# echo "alias sar='LANG=c sar'" >> /etc/bashrc
# source /etc/bashrc

2. Mantenga 60 días de archivos en lugar de 28. Cambie la variable HISTORIAL en /etc/sysconfig/sysstat.

# vim /etc/sysconfig/sysstat
HISTORY=60

3. Informe las estadísticas de tasa de transferencia y E/S:

# sar -b
Linux 5.4.10-x86_64-linode132 (mylabserver.com) 	02/09/2021 	_x86_64_	(1 CPU)

12:00:02 AM       tps      rtps      wtps   bread/s   bwrtn/s
12:10:01 AM     38.16     31.03      7.14   1655.33    390.20
12:20:01 AM     12.11      5.81      6.30    280.99    239.08
12:30:01 AM      8.40      2.34      6.06    105.99    229.95
12:40:01 AM      7.38      1.62      5.76     23.48    211.41
12:50:01 AM      8.69      2.64      6.04    125.33    230.58
01:00:01 AM      8.09      2.26      5.83     77.72    227.70
01:10:02 AM     12.25      6.10      6.15    215.14    235.73
...
Average:        12.81      6.41      6.40    343.31    255.49

4. Informe la utilización de CPU0:

# sar -P 0
Linux 5.4.10-x86_64-linode132 (web.thegeekdiary.com) 	02/09/2021 	_x86_64_	(1 CPU)

12:00:02 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
12:10:01 AM       0     11.69      0.00      2.96      0.28      0.06     85.01
12:20:01 AM       0      9.87      0.00      2.53      0.12      0.04     87.44
12:30:01 AM       0      9.96      0.00      2.48      0.09      0.04     87.43
12:40:01 AM       0      9.59      0.00      2.43      0.06      0.04     87.88
12:50:01 AM       0      9.80      0.00      2.46      0.09      0.05     87.59
...
Average:          0     10.00      0.02      2.60      0.14      0.15     87.08

5. Informe las estadísticas del dispositivo de red desde el archivo de registro actual.

# sar -n DEV
Linux 5.4.10-x86_64-linode132 (mylabserver.com) 	02/09/2021 	_x86_64_	(1 CPU)

12:00:02 AM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
12:10:01 AM    dummy0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
12:10:01 AM     tunl0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
12:10:01 AM   ip_vti0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
12:10:01 AM   ip6gre0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
12:10:01 AM     teql0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
12:10:01 AM      sit0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
...
Average:       dummy0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:        tunl0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:      ip_vti0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:      ip6gre0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:        teql0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:         sit0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
...

6. Configure un trabajo cron adicional para recopilar datos de uso de energía además de los datos del disco. Modifique lo siguiente en el archivo /etc/sysconfig/sysstat:

SADC_OPTIONS="-S POWER"

iostat y mpstat

Al igual que sar, iostat y mpstat también forman parte del paquete sysstat. Tanto iostat como mpstat admiten los argumentos de retraso y conteo al igual que el comando vmstat. iostat informa estadísticas de CPU y E/S para dispositivos. particiones y sistemas de archivos de red (NFS).

El comando mpstat informa estadísticas relacionadas con la CPU. Al igual que sar, puede ser necesario configurar el LANG para el horario de 24 horas.

Ejemplos de iostat y mpstat

1. Mostrar salida extendida para /dev/sda.

# iostat -x sda
Linux 5.4.10-x86_64-linode132 (mylabserver.com) 	02/09/2021 	_x86_64_	(1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           8.12    0.08    2.85    0.09    0.24   88.63

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               1.76     7.13    3.55    4.17   122.57    93.88    56.07     0.00    0.83    0.71    0.93   0.88   0.68

2. Mostrar estadísticas de CPU para CPU0:

# LANG=C mpstat -P 0
Linux 5.4.10-x86_64-linode132 (mywebserver.com) 	02/09/21 	_x86_64_	(1 CPU)

06:32:13     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
06:32:13       0    8.12    0.08    2.37    0.09    0.22    0.25    0.24    0.00    0.00   88.63


Linux
  1. Cómo verificar la versión del sistema operativo y Linux

  2. Cómo analizar y comparar imágenes de contenedores usando Container-diff

  3. Cómo hacer una copia de seguridad y restaurar la configuración de la aplicación usando Mackup en un sistema Linux recién instalado

  4. ¿División básica usando variable y entero?

  5. 24 ejemplos de iostat, vmstat y mpstat para la supervisión del rendimiento de Linux

Cómo identificar el sistema operativo usando el valor TTL y el comando ping

Cómo instalar y usar Git en el sistema Linux

Cómo usar el comando DD y cómo grabar ISO usándolo

Cómo instalar y usar el comando SAR (para monitorear el rendimiento del sistema) en Linux

Cómo instalar y configurar Redis en el sistema Linux

Uso de vmstat para solucionar problemas de rendimiento en Linux