Ejemplos de uso del comando SAR para la monitorización del sistema en Linux

, Author

System Activity Reporter es una herramienta importante que ayuda a los administradores de sistemas a obtener una visión general de la máquina del servidor con el estado de diferentes métricas importantes en diferentes puntos del tiempo.

Si suponemos que está teniendo un problema con el sistema en la actualidad, Como algunos de sus clientes son incapaces de listar algunos datos de la base de datos. La primera cosa que la mayoría de los administradores de sistemas Linux hacer es recordar el mismo problema cuando se produjo anteriormente, y Si usted recuerda el día de su ocurrencia anterior entonces usted puede comparar fácilmente las estadísticas internas del sistema con las estadísticas actuales.

SAR es muy útil para hacer exactamente eso.

Lo primero que tenemos que hacer es comprobar y confirmar si tiene la utilidad SAR instalada en la máquina. Lo cual puede comprobarse listando todos los rpm y buscando esta utilidad.

SAR es una de las utilidades dentro de sysstat. Usted puede fácilmente descargar e instalar en su máquina muy fácilmente a través de YUM. (Pero sí no se preocupe porque la mayoría de las distribuciones vienen preempacadas con la herramienta sysstatsmiley).

# yum install sysstat

Sí, pero asegúrese de que tiene el repositorio epel,rpmformge habilitado para la instalación. Si no, el DVD de tu distribución será un buen lugar para buscar el paquete.

SAR (System Activity Reporter) dará información sobre las siguientes cosas:

  1. Actividad del buffer del sistema
  2. Información sobre las llamadas del sistema
  3. Información sobre los dispositivos de bloques
  4. Información general sobre la paginación
  5. Información sobre el mapa y la asignación de memoria
  6. Informe sobre la utilización de la CPU y los procesos

Lo principal que tenemos que entender con respecto al SAR es que, todo se hace usando un cron. Por defecto en muchas distribuciones de Linux tendrás un archivo llamado /etc/cron.d/sysstat.

Veamos cómo funciona realmente el SAR.

Si empezamos a pensar en la monitorización del sistema, entonces la herramienta debe tener todos y cada uno de los datos sobre los diferentes aspectos del sistema y debe cubrir todos los intervalos de tiempo. Lo que significa que un sistema de monitorización debe ser capaz de proporcionar las estadísticas de la máquina para un tiempo determinado.

No hay otra manera, que no sea tomar todas las métricas y estadísticas de la máquina en un intervalo de tiempo definido. Reducir el intervalo de tiempo para recoger las estadísticas aumentará la cantidad de estadísticas detalladas que tenemos (porque estaremos teniendo más datos sobre el sistema).

SAR hace exactamente eso. sar toma las estadísticas de diferentes aspectos de la máquina en un intervalo de tiempo definido. Así que SAR se ejecuta a través de CRON.

# cat /etc/cron.d/sysstat# ejecutar la herramienta de contabilidad de la actividad del sistema cada 10 minutos*/10 * * * * root /usr/lib64/sa/sa1 1 1# generar un resumen diario de la contabilidad de procesos a las 23:5353 23 * * * root /usr/lib64/sa/sa2 -A
  • Así que puede verse en el archivo cron anterior para SAR que su script «sa1» ubicado en «/usr/lib64/sa/» se ejecuta cada 10 minutos
  • Y también está ejecutando un script /usr/lib64/sa/sa2 al final del día alrededor de las 23.53

Así que la primera entrada de cron para SAR(/usr/lib64/sa/sa1) se ejecutará cada 10 minutos que a su vez llamará a la utilidad sadc para recoger las estadísticas del sistema y almacenarlas en un archivo binario (un archivo por día)

Y la segunda entrada de cron volcará todo el contenido de ese archivo binario en otro archivo de texto, y purga los datos más antiguos que un número determinado de días, normalmente 7 días por defecto(que se menciona en el siguiente archivo),

# cat /etc/sysconfig/sysstat# Cuánto tiempo mantener los archivos de registro (días), el máximo es un mesHISTORY=7

Así que usted puede modificar esa entrada HISTORY fácilmente editando el archivo.

Así que aunque las estadísticas del sistema se recogen cada 10 minutos a través de cron(modificar el cron para que se ejecute cada 1 minuto para obtener información más precisa) Si desea ver las estadísticas, entonces usted necesita para ejecutar el comando como abajo.

La salida del comando sar simple es como se muestra a continuación.

12:00:01 AM CPU %user %nice %system %iowait %steal %idle12:01:01 AM all 73.28 0.00 1.25 0.00 0.00 25.4712:02:01 AM all 7.83 0.00 0.44 0.00 0.00 91.7312:03:01 AM todos 61.65 0.00 0.70 0.00 0.00 37.6612:04:01 AM todos 57.85 0.00 0.82 0.00 0.00 41.3412:05:01 AM todos 4.25 0.00 0.41 0.00 0.00 95.3412:06:01 AM todos 4.20 0.00 0.22 0.00 0.00 95.5812:07:01 AM todos 5.05 0.00 0.33 0.00 0.00 94.6312:08:01 AM todos 4.76 0.00 0.06 0.00 0.00 95.1812:09:01 AM todos 37.57 0.00 0.37 0.00 0.00 62.0512:10:01 AM todos 70.04 0.00 0.80 0.00 0.00 29.1612:11:01 AM todos 5.03 0.00 0.12 0.00 0.00 94.84

Puede verse en la salida que me informa de la salida de las estadísticas recogidas para cada minuto (lo que significa que tengo mi cron en un intervalo de 1 minuto), y mostrará los detalles de todo el día (o mostrará los detalles recogidos hasta que escribió el comando).

Entendiendo la salida del comando SAR

%user: Esto muestra el tiempo total que el procesador está gastando en diferentes procesos YCX5UKN5ZKEJ

%sys: esto muestra el porcentaje de tiempo gastado por el procesador para las tareas del sistema operativo(porque el usuario anterior muestra el tiempo gastado para el proceso final del usuario)

%iowait: el propio nombre iowait sugiere que es el tiempo gastado por el procesador en espera de dispositivos(entrada y salida)

%nice: La mayoría de ustedes deben saber que un usuario puede cambiar la prioridad de un proceso en linux cambiando el valor de nice en Linux. Esta tabla muestra el tiempo gastado por la CPU para el proceso cuyo valor nice ha sido cambiado.

%steal: Esta columna muestra la cantidad de tiempo gastado por una CPU (que está virtualizada), para los recursos de la CPU física.

%idle: Esto sugiere el tiempo de inactividad gastado por el procesador.

Por defecto sar almacena todos sus datos bajo /var/log/sa/ y un días se nombran como se muestra a continuación.

s01 – para el primer día del mes

s02- para el segundo día del mes

s03,s04..y así sucesivamente.

la opción d en el comando sar

Esta opción -d se puede utilizar para informar de todas y cada una de las actividades relacionadas con los diferentes dispositivos conectados al sistema (dispositivos de bloque). A continuación se muestra una salida típica del comando sar con la opción -d.

12:00:01 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util12:01:01 AM dev3-0 0.00 0.00 0.00 0.00 0.00 0.00.0012:01:01 AM dev3-64 0.00 0.00 0.00 0.00 0.00 0.00 0.0012:01:01 AM dev8-0 55.62 9.98 8317.87 149.72 13.68 245.96 2.61 14.5212:01:01 AM dev8-16 0.00 0.00 0.00 0.00 0.00 0.00 0.00 12:02:01 AM dev3-0 0.00 0.00 0.00 0.00 0.00 0.00 0.0012:02:01 AM dev3-64 0.00 0.00 0.00 0.00 0.00 0.00 0.0012:02:01 AM dev8-0 1.55 0.00 35.29 22.70 0.01 7.26 1.86 0.2912:02:01 AM dev8-16 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0012:03:01 AM dev3-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0012:03:01 AM dev3-64 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

DEV: esta columna nombra los dispositivos de la máquina, según los números mayor y menor de un dispositivo de bloque Linux. Puedes comprobarlo haciendo un ls -l en el directorio /dev. como se muestra a continuación.

brw-r----- 1 disco raíz 8, 0 Nov 16 16:29 sdabrw-r----- 1 disco raíz 8, 1 Nov 16 16:29 sda1brw-r----- 1 disco raíz 8, 2 Nov 16 16:29 sda2

en la salida «ls -l» mostrada arriba para «sda», el número mayor es «8», y el número menor es «0».Así que puede identificar fácilmente el disco mencionado en la salida del comando sar.

tps: tps significa transferencia por segundo, por lo que muestra la transferencia por segundo a ese dispositivo en particular

rd_sec/s: esto muestra el número total de sectores en ese dispositivo que se está leyendo

wr_sec/s: si rd_sec/s son los sectores que se leen por segundo entonces obviamente wr_sec son los sectores que se escriben por segundo.

avgrq-sz: esta columna muestra el promedio.

await: esto muestra el número total de tiempo que el procesador esperó para las solicitudes con respecto a IO

%util: esta columna muestra el uso de la cpu en porcentaje cuando se generó la solicitud

Mostrar el uso de la memoria en el comando SAR

la opción -r disponible en el comando sar es muy útil. Muestra la memoria, el swap, la memoria en caché, etc. en cada intervalo de tiempo requerido.

02:20:01 AM kbmemfree kbmemused %memused kbbuffers kbcached kbswpfree kbswpused %swpused kbswpcad02:30:01 AM 609500 1487652 70.94 242420 777560 1075980 364 0.03 36002:40:01 AM 609500 1487652 70.94 242424 777568 1075980 364 0.03 36002:50:01 AM 609500 1487652 70.94 242424 777592 1075980 364 0.03 36003:00:01 AM 608980 1488172 70.96 242424 777600 1075980 364 0.03 36003:10:01 AM 608584 1488568 70.98 242424 777628 1075980 364 0.03 36003:20:01 AM 608584 1488568 70.98 242424 777648 1075980 364 0.03 360
en la salida anterior la mayoría de las columnas se explican por sí mismas(y la mayoría de las salidas están en KB).
kbmemfree: muestra la cantidad de memoria libre
Kbmemused: memoria utilizada
%memused: porcentaje de memoria utilizada
kbbuffers: memoria intermedia utilizada por el kernel.
kbcached: memoria caché utilizada por el kernel
todas las demás entradas de memoria son swap(free,used,percentage etc)

Cómo obtener las métricas de un día en particular utilizando SAR en linux

Como se mencionó anteriormente todas las métricas de un día en particular se guardan en sa<día del mes>. Así que si quiero saber mis métricas para 27 º día del mes puedo encontrar fácilmente que como se muestra a continuación.
# sar -f /var/log/sa/sa27Linux 2.6.18-194.el5xen (archivo.r) 11/27/2012 02:20:01 AM CPU %user %nice %system %iowait %steal %idle02:30:01 AM all 2.58 0.00 0.70 1.12 0.05 95.5502:40:01 AM todos 2.56 0.00 0.69 1.05 0.04 95.6602:50:01 AM todos 2.64 0.00 0.65 1.15 0.05 95.5003:00:01 AM todos 3.27 0.00 0.71 1.12 0.04 94.86
en el comando anterior hemos pasado /var/log/sa/sa27 como argumento ya que necesitaba las estadísticas de ese día..pasar el sa<día del mes>como se requiere en el comando anterior

Cómo obtener las métricas del SAR para una hora específica en una fecha particular

esto se puede lograr pasando otro argumento como se muestra a continuación.

# sar -f /var/log/sa/sa27 -s 02:20:00 -e 03:20:00Linux 2.6.18-194.el5xen (archive.r) 11/27/2012 02:20:01 AM CPU %user %nice %system %iowait %steal %idle02:30:01 AM all 2.58 0.00 0.70 1.12 0.05 95.5502:40:01 AM all 2.56 0.00 0.69 1.05 0.04 95.6602:50:01 AM all 2.64 0.00 0.65 1.15 0.05 95.5003:00:01 AM all 3.27 0.00 0.71 1.12 0.04 94.8603:10:01 AM todos 2.72 1.06 0.75 1.09 0.04 94.33Promedio: todos 2.76 0.21 0.70 1.11 0.04 95.18
En el ejemplo anterior le pedí al SAR que obtuviera las métricas entre las 2:20:00 y las 3:20:00 del día 27 del mes
Incluso puedes pasar cualquier otra opción de métrica junto con el intervalo de tiempo… como -d o -r
¿Te has dado cuenta? SAR puede mostrarnos con precisión las estadísticas de la máquina de un día en particular en un momento determinado…por lo que es mucho más fácil identificar los cuellos de botella.
Usando la opción -A junto con el comando anterior mostrará TODO (todas las métricas recogidas por sar).
sar -f /var/log/sa/sa27 -s 02:20:00 -e 03:20:00 -A
La salida será elaborada. y obtendrá casi todo en sar de esa opción -A en su pantalla!

Mostrar las estadísticas de la red utilizando el comando sar

el comando sar muestra incluso las estadísticas de la red. Esto se puede hacer utilizando la opción -n DEV en el comando sar.

# sar -n DEVLinux 2.6.18-194.el5xen (archivo.r) 27/11/2012 02:20:01 AM IFACE rxpck/s txpck/s rxbyt/s txbyt/s rxcmp/s txcmp/s rxmcst/s02:30:01 AM lo 0.01 0.01 0.77 0.77 0.00 0.0002:30:01 AM eth0 12.30 0.12 1285.06 27.59 0.00 0.00 0.0002:30:01 AM eth1 14.45 0.00 1399.34 0.00 0.00 0.00 0.0002:30:01 AM sit0 0.00 0.00 0.00 0.00 0.00.0002:40:01 AM lo 0.01 0.01 0.77 0.77 0.00 0.00 0.0002:40:01 AM eth0 10.65 0.12 1139.38 27.00 0.00 0.00 0.0002:40:01 AM eth1 13.96 0.00 1352.87 0.00 0.00 0.00 0.00

IFACE: representa el nombre de la interfaz de la tarjeta nic

rxpck/s: muestra el total de paquetes recibidos por segundo

txpck/s: paquetes transmitidos por segundo

rxcmp/s: paquetes comprimidos recibidos

txcmp/s: paquetes comprimidos transmitidos

rxmcst/s: paquetes multicasted por segundo.

Algunas otras métricas que se pueden determinar usando sar

la opción y en sar: se puede usar para determinar los detalles del tty

la opción X en sar para obtener detalles de un proceso en particular. Es necesario pasar pid como argumento a esta opción.

-n Opción SOCK en sar: esta opción informará de todos los detalles del socket.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.