Keep Walking

System Activity Report (SAR)

Posted in hardware, Linux, Sistemas, unix by Martín on junio 9, 2008

El comando sar (de system activity report) se encuentra usualmente en el paquete sysstat de linux. Este puede mostrar datos de rendimiento de CPU, cola de ejecución, entrada/salida de disco, paginado (swap), memoria, interrupciones, networking y más. La capacidad más importante de sar es la de crear archivos de datos. Todo sistema Linux debería recolectar datos de sar desde trabajos croneados. Los archivos de datos de sar proveen al administrador de sistemas de información histórica de rendimiento. Esta característica es muy importante y separa a sar de otras herramientas de rendimiento. Si un trabajo nocturno demora el doble de lo normal, no lo sabrás hasta la mañana siguiente (a menos que te llegue un mensaje al pager, pero para eso te tendrían que pagar demasiaado…). Necesitás contar con los datos de rendimiento de 12 horas atrás. El colector de datos de sar te lo permite, y cuenta con una sintaxis que permite generar reportes muy variados.
Para crear un informe básico que muestre el uso de CPU y el porcentaje de tiempo gastado esperando E/S, ejecutamos sar sin ningún argumento. Esto depende de la versión que tengamos instalada, no siempre funciona si no se especifican argumentos, lo mínimo que se requiere a veces es el intervalo de refresco y la cantidad de iteraciones. Por ejemplo sar 5 5 indica que se deben tomar cinco mediciones a un intervalo de cinco segundos entre cada una.

sar_01

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.
Para comprobar cómo se comporta el fichero de paginación se ejecuta sar -B. Analizar este apartado requeriría que me ponga a escribir sobre qué es y cómo funciona el paginado de memoria, cosa que no pienso hacer. Pero cualquiera que haya estudiado Sistemas Operativos debería saberlo.

sar_02

Puede que el número de veces que se ha tenido que recurrir a la paginación no sea determinante, pero el que exista un alto número de fallos mayores de página (majflt/s) indica que el sistema necesita más memoria.

El programa que se ocupa de recopilar la información se llama sadc (system activity data collector o recolector de datos de la actividad del sistema). Obtiene su información, principalmente, del kernel, a través del sistema de archivos virtual en /proc.

El paquete incluye algunos scripts, el sa1 y el sa2. Sería conveniente que crees los tuyos utilizando el comando sar. Por defecto este programa obtiene la información del archivo de datos del día actual, a menos que se especifique lo contrario. Para hacer que sar obtenga los datos de un archivo en particular, utilizamos el flag -f /var/log/sysstat/saDD. Podes seleccionar múltiples archivos usando varios flags -f. Dado que muchos de los informes que crea sar tienen un tamaño considerable, puede que quieras redirigir la salida a un archivo.

Para obtener estadísticas de red, utilizamos sar -n DEV. Este comando genera un informe que muestra estadísticas con los datos transmitidos y recibidos para cada interfaz de red.
Para ver los errores de red, probá con el comando sar -n EDEV.

sar_03

Como demostró el Dr. Heisenberg, el simple hecho de realizar una medida cambia los datos medidos. Cualquier herramienta dedicada a recopilar datos sobre rendimiento tiene un cierto impacto negativo en el rendimiento del sistema, pero con sar, este parece ser mínimo.

La cantidad de opciones y configuraciones con que cuenta sar y el conjunto de herramientas que lo acompaña son muchísimas. Con sólo pegarle una ojeada a las man pages nos daremos cuenta de esto. Sar es mucho más completo que top si queremos dedicarnos a una administración de sistemas más minuciosa y mantener nuestros servidores funcionando de manera óptima.

Les recomiendo que chequeen los links, lean atentamente el man y prueben cronear un par de scripts hasta que encuentren la configuración que les venga mejor en su Linux/Unix server.

Fuentes:
*Linux Haxor
*Mundo Geek (traducciones)

Una respuesta

Subscribe to comments with RSS.

  1. backd00r said, on julio 16, 2008 at 7:53 pm

    Hola!

    Hay una herramienta muy buena que te permite explotar los datos obtenidos por SAR. Se llama kSar.
    Mira éste Screencast: http://www.screencasts.es/2008/06/19/ksar-visualizacion-grafica-de-la-actividad-del-sistema/


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: