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 sysstat).
# 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:
- Actividad del buffer del sistema
- Información sobre las llamadas del sistema
- Información sobre los dispositivos de bloques
- Información general sobre la paginación
- Información sobre el mapa y la asignación de memoria
- 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
Cómo obtener las métricas de un día en particular utilizando SAR en linux
# 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
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
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.