lunes, 19 de mayo de 2014

LINUX-Cómo utilizar SAR (System Activity Report)

Con SAR se puede monitorear la performance de varios recursos de Sistema. Siendo los más comunes, CPU, RAM(swap), DEV(interfaz de red), I/Ostat (escritura/Lectura de HDD).

El monitoreo puede ser desde este momento en adelante o tabulando los archivos de recolección de estadísticas de días anteriores. Por defecto se guardan hasta 7 días atrás.


Instalación y Configuración 


Por lo general el paquete Sysstat viene incluido en las instalaciones standart de las distrubuciones linux. Sin embargo, si se ha elegido instalar la distribución minimal de CEntOs, RHEL, Debian, etc es posible que no sea instalado este utilitario.

Para una instalación en CentOs/Fedora/RHEL se puede realizar de 3 manera:

  • A través de yum
  • Descargando e instalando el paquete rpm
  • Descargando, compilando e instalando los fuentes.


Una vez que se ha instalado en el Sistema, se puede configurar la periodiocidad conque la herramienta realiza la recolección de datos de uso de recursos.

Examinando la Crontab:
[root@malaya log]# cat /etc/cron.d/sysstat 
# run system activity accounting tool every 10 minutes
*/10 * * * * root /usr/lib/sa/sa1 1 1
# generate a daily summary of process accounting at 23:53
53 23 * * * root /usr/lib/sa/sa2 -A

[root@malaya log]# 

Existen 2 procesos agendados:
/usr/lib/sa/sa1: realiza la recolección de datos en el intervalo señalado en la cron. (cada 10 min). Es posible modificar el agendamiento para que recolecte a cada minuto.

/usr/lib/sa/sa2: realiza un resumen de los datos recolectados por sa1. Por eso se ejecuta a las 23:53 hrs de cada día.

Modificar el valor del parámetro y automáticamente se actualiza el comportamiento del utilitario.

Historial de recolección de Data.
Por defecto se almacenan los últimos 7 días de información histórica. Sin embargoes posible aumentar la cantidad de días a través del siguiente archivo:
[root@malaya ~]# cat /etc/sysconfig/sysstat
# How long to keep log files (days), maximum is a month
HISTORY=7
[root@cl-claro-pcc-sopsac ~]#

Modificar el valor del parámetro y automáticamente se actualiza el comportamiento del utilitario.

Versionamiento y ayuda:

[root@malaya log]# sar -V
sysstat version 5.0.5
(C) Sebastien Godard
Usage: sar [ options... ] [ [ ] ]
Options are:
[ -A ] [ -b ] [ -B ] [ -c ] [ -d ] [ -H ] [ -h ] [ -i ] [ -q ]
[ -p ] [ -r ] [ -R ] [ -t ] [ -u ] [ -v ] [ -V ] [ -w ] [ -W ] [ -y ]
[ -I { | SUM | ALL | XALL } ] [ -P { | ALL } ]
[ -n { DEV | EDEV | SOCK | FULL } ]
[ -x { | SELF | ALL } ] [ -X { | SELF | ALL } ]
[ -o [ ] | -f [ ] ]
[ -s [ ] ] [ -e [ ] ]
[root@malaya log]# 

Generación de Reportes

Tal como se ha señalado en el principio del post, es posible obtener reportes desde distintos parámetros de recursos de la máquina. Los más importantes y comunes son los siguientes:

Estadísticas de uso de CPU

Usando el parametro -u obtenemos una vista del uso de CPU en la máquina.

[root@malaya log]# sar -u 1 3
Linux 2.6.9-78.ELsmp (malaya.sixlabs) 05/09/2014

03:11:12 PM       CPU     %user     %nice   %system   %iowait     %idle
03:11:13 PM       all      0.50      0.00      0.00      0.00     99.50
03:11:14 PM       all      0.50      0.00      0.00      0.00     99.50
03:11:15 PM       all      0.00      0.00      0.00      0.00    100.00
Average:          all      0.33      0.00      0.00      0.00     99.67
[root@malaya log]# 

Los campos mostrados son:
CPU: indica que se utilizan todas las CPU del server. 
%user: indica el porcentaje de ocupación de los procesos ejecutados por los usuarios.
%nice: indica el porcentaje de
%system:indica el porcentaje de de ocupación de los procesos ejecutados por el sistema.
%iowait: indica el porcentaje de desocupación de los recursos disponibles.
%idle: indica el porcentaje de espera en Entrada/Salida.

Es posible obtener información estadística desde el día de hoy y días anteriores, dependiendo de la cantidad de registros recolectado y guardados en el directorio /var/log/sa

Revisando los siguientes ejemplos:

Obtención de Reporte de CPU para lo que va del día de hoy.
[root@malaya log]# sar -u
Linux 2.6.9-78.ELsmp (malaya.sixlabs) 05/09/2014

12:00:01 AM       CPU     %user     %nice   %system   %iowait     %idle
12:10:01 AM       all      0.10      0.00      0.08      0.04     99.78
12:20:01 AM       all      0.10      0.00      0.08      0.03     99.78
...
Average:          all      0.76      0.00      0.25      0.45     98.54
[root@malaya log]# 


Lista de los archivos log de recolección de data.
[root@malaya log]# ls -ltr /var/log/sa
total 5220
-rw-r--r--  1 root root  73048 May  2 23:50 sa02
-rw-r--r--  1 root root 126973 May  2 23:53 sar02
-rw-r--r--  1 root root 305520 May  3 23:50 sa03
-rw-r--r--  1 root root 493059 May  3 23:53 sar03
-rw-r--r--  1 root root 305520 May  4 23:50 sa04
-rw-r--r--  1 root root 493059 May  4 23:53 sar04
-rw-r--r--  1 root root 328840 May  5 23:50 sa05
-rw-r--r--  1 root root 530151 May  5 23:53 sar05
-rw-r--r--  1 root root 305520 May  6 23:50 sa06
-rw-r--r--  1 root root 493059 May  6 23:53 sar06
-rw-r--r--  1 root root 305520 May  7 23:50 sa07
-rw-r--r--  1 root root 493059 May  7 23:53 sar07
-rw-r--r--  1 root root 305520 May  8 23:50 sa08
-rw-r--r--  1 root root 493059 May  8 23:53 sar08
-rw-r--r--  1 root root 201640 May  9 15:40 sa09

Obtención de Reporte de CPU para TODO el día 8 de mayo.
[root@malaya log]# sar -u -f /var/log/sa/sa08 | head
Linux 2.6.9-78.ELsmp (malaya.sixlabs) 05/08/2014

12:00:01 AM       CPU     %user     %nice   %system   %iowait     %idle
12:10:01 AM       all      0.10      0.00      0.09      0.04     99.77
12:20:01 AM       all      0.10      0.00      0.08      0.03     99.78
12:30:01 AM       all      0.20      0.00      0.09      0.03     99.69
12:40:01 AM       all      0.11      0.00      0.10      0.03     99.77
12:50:01 AM       all      0.10      0.00      0.09      0.03     99.78
01:00:01 AM       all      0.11      0.00      0.09      0.03     99.77
01:10:01 AM       all      0.10      0.00      0.08      0.03     99.79
[root@malaya log]# 

Interpretación de los datos desplegados por el reporte SAR

Acontinuación cito la explicación de una de las fuentes utilizadas para realizar este post, y que define en excelente forma cómo interpretar los valores.

"Si %idle (desocupado) está cerca de cero, tu CPU está sobrecargada. Si el valor %iowait (espera por e/s) es grande, tus discos están sobrecargados de peticiones o al menos hay un cuello de botella en la administración de entrada/salida. Este último suele ser un problema tan grave como la sobrecarga del CPU o peor. He comprobado en Unix que un valor de iowait mayor a un cuarenta o un cincuenta por ciento tiende a congelar parcialmente el sistema."

Estadísticas de Uso de Memoria (RAM, swap)

Usando el parametro -r  obtenemos una vista del uso de RAM y swap del server:

[root@malaya ~]# sar -r 1 3
Linux 2.6.9-78.ELsmp (malaya.sixlabs) 05/21/2014

09:09:28 PM kbmemfree kbmemused  %memused kbbuffers  kbcached kbswpfree kbswpused  %swpused  kbswpcad
09:09:29 PM     20740   1013756     98.00     65944    224460   3064076      4328      0.14       536
09:09:30 PM     20740   1013756     98.00     65944    224460   3064076      4328      0.14       536
09:09:31 PM     20740   1013756     98.00     65944    224460   3064076      4328      0.14       536
Average:        20740   1013756     98.00     65944    224460   3064076      4328      0.14       536
[root@malaya ~]# 

En el ejemplo anterior los parámetro 1 y 3 significan que cada 1 segundo se toma una muestra siendo 3 muestras en total a tomar. 

Es posible obtener las estadísticas de todo un día revisando los archivos de log en /var/log/sa

[root@malaya ~]# sar -r -f /var/log/sa/sa21
Linux 2.6.9-78.ELsmp (malaya.sixlabs) 05/21/2014

12:00:01 AM kbmemfree kbmemused  %memused kbbuffers  kbcached kbswpfree kbswpused  %swpused  kbswpcad
12:10:01 AM     21636   1012860     97.91     68220    222744   3064076      4328      0.14       496
12:20:01 AM     21124   1013372     97.96     68288    223196   3064076      4328      0.14       496
...
Average:        22992   1011504     97.78     63648    228008   3064076      4328      0.14       480
[root@malaya ~]# 

Estadísticas de Uso de Interfaces de red (DEV)

Usando el parametro -n DEV   obtenemos una vista del uso de las interfaces de red.

[root@malaya ~]# sar -n DEV 1 1
Linux 2.6.9-78.ELsmp (malaya.sixlabs) 05/21/2014

09:36:37 PM     IFACE   rxpck/s   txpck/s   rxbyt/s   txbyt/s   rxcmp/s   txcmp/s  rxmcst/s
09:36:38 PM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
09:36:38 PM      eth0      4.00      3.00    328.00    386.00      0.00      0.00      0.00
09:36:38 PM      sit0      0.00      0.00      0.00      0.00      0.00      0.00      0.00

Average:        IFACE   rxpck/s   txpck/s   rxbyt/s   txbyt/s   rxcmp/s   txcmp/s  rxmcst/s
Average:           lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:         eth0      4.00      3.00    328.00    386.00      0.00      0.00      0.00
Average:         sit0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
[root@malaya ~]# 

Es posible obtener las estadísticas de todo un día revisando los archivos de log en /var/log/sa

[root@malaya ~]# sar -n DEV -f /var/log/sa/sa20
Linux 2.6.9-78.ELsmp (malaya.sixlabs) 05/20/2014

12:00:01 AM     IFACE   rxpck/s   txpck/s   rxbyt/s   txbyt/s   rxcmp/s   txcmp/s  rxmcst/s
12:10:01 AM        lo      0.97      0.97     53.77     53.77      0.00      0.00      0.00
12:10:01 AM      eth0      4.19      5.84    774.81   1050.77      0.00      0.00      0.30
12:10:01 AM      sit0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
...
11:50:01 PM      sit0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:           lo      0.97      0.97     53.77     53.77      0.00      0.00      0.00
Average:         eth0      4.25      5.89    822.39   1054.40      0.00      0.00      0.31
Average:         sit0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
[root@malaya ~]# 

Estadísticas de Uso de Escritura/Lectura de HDD (iostat)

Usando el parametro -b   obtenemos una vista del uso de lectura/escritura de HDD

[root@malaya ~]# sar -b 1 3
Linux 2.6.9-78.ELsmp (malaya.sixlabs) 05/21/2014

09:41:29 PM       tps      rtps      wtps   bread/s   bwrtn/s
09:41:30 PM      0.00      0.00      0.00      0.00      0.00
09:41:31 PM      3.03      0.00      3.03      0.00     64.65
09:41:32 PM      0.00      0.00      0.00      0.00      0.00
Average:         1.00      0.00      1.00      0.00     21.33
[root@malaya ~]# 

Las columnas desplegadas indican la siguiente información:
tps    : transacciones por segundo.
rtps   : transacciones de lectura por segundo.
wtps   : transacciones de escritura por segundo.
bread/s: bites leídos por segundo.
bwrtn/s: bites escritos por segundo.

Es posible obtener las estadísticas de todo un día revisando los archivos de log en /var/log/sa

[root@malaya ~]# sar -b -f /var/log/sa/sa20
Linux 2.6.9-78.ELsmp (malaya.sixlabs) 05/20/2014

12:00:01 AM       tps      rtps      wtps   bread/s   bwrtn/s
12:10:01 AM      1.02      0.01      1.01      0.07     20.78
12:20:01 AM      0.92      0.00      0.92      0.00     19.69
...
11:50:01 PM      0.95      0.00      0.95      0.00     20.18
Average:         1.00      0.04      0.96      1.00     20.05
[root@malaya ~]# 

Para terminar, indico que existen varias combinaciones de utilización y que se pueden descubrir mirando el man del utilitario o buscando en google. 
Esperando que esta guía sea un kickstart para desubrir más usos acerca de esta herramienta. 

Fuentes:

http://www.thegeekstuff.com/2011/03/sar-examples/#more-7422
https://vat69.wordpress.com/2008/06/09/system-activity-report-sar/

No hay comentarios:

Publicar un comentario