Recientemente escribí un artículo sobre como solucionar problemas de firmware en Linux. En este artículo te comenté sobre como podías investigar en el log del sistema. Sea como fuere, para cualquier investigación que quieras emprender necesitas tener información. Información donde buscar y analizar que es lo que ha sucedido. Así en este artículo te quiero comentar sobre una herramienta que te puede ayudar para tener información de lo que sucede en tu equipo. En particular, este artículo trata sobre SAR.
¿Y que es SAR te preguntarás? Se trata de una herramienta que te permitirá recabar información de tu sistema, guardarla de forma adecuada y por supuesto, generar informes adecuados. Así, tendrás un proceso, corriendo en segundo plano, guardando todo tipo de estadísticas sobre lo que sucede en tu equipo, para poder analizarlo con posterioridad.
Así, en este artículo te comentaré como puedes poner en funcionamiento esta herramienta y como sacar esos informes para conocer con detalle lo que sucede en tu equipo.
SAR o estadísticas detalladas de tu sistema operativo
Como te comentaba en la introducción, SAR o System Report Activity, es un monitor del sistema que te va a permitir conocer la carga del sistema, la actividad de la CPU, el estado de la memoria física y de la memoria de intercambio.
Sysstat es un conjunto de herramientas que te permiten monitorizar el desempeño de tu sistema. Así, algunas de estas herramientas son,
iostat
mpstat
pidstat
sadf
sar
Registrando y almacenando información
El primer paso, fundamental, y sin el cual el resto no tiene sentido, es recoger y guardar la información del sistema. En este sentido, necesitas instalar sysstat. Esta herramienta es la que se encargará de recopilar toda la información. Así, desde un emulador de terminal, ejecuta la siguiente instrucción,
sudo apt install sysstat
Habilitar sysstat
Una vez instalada esta herramienta tenemos que configurarla adecuadamente. Configurarla para que por un lado registre información, y por otro que lo haga con la frecuencia que precisamos. Así, para el primer primer paso que tienes que haces es editar el archivo de configuración /etc/default/sysstat
. Eso si, lo tienes que hacer con derechos de administración.
Dentro de este archivo, encontrarás ENABLED="false"
. Modifícalo, de forma que quede como ENABLED="true"
.
Definir la frecuencia de toma de datos
Una vez modificado empezará a recopilar y guardar informacón de tu sistema. Eso si, lo hace cada diez minutos. Si quieres modificar la frecuencia con la que registra la información, necesitas cambiar la configuración del cron para esta herramienta. Para ello, edita el archivo /etc/cron.d/systat
.
En este archivo encontrarás tres líneas. La primera de las líneas hace referencia al PATH
. La segunda de las líneas, que es la que debes modificar, hace referencia a la frecuencia de toma de datos. Por último, la tercera de las líneas, hace referencia al rotado del archivo donde se guardan los datos.
Si no sabes que es esto del rotado de archivos, te recomiendo le des una lectura al artículo sobre rotado de logs con logrotate. Aunque este artículo que te comento, no se ciñe al archivo anterior, lo cierto, es que explica con claridad el concepto de rotado de archivos.
Almacenamiento de la información
Por otro lado, debes tener en cuenta que toda esta información guardad en tu equipo ocupa espacio. Te comento este detalle básicamente para que lo tengas en mente, y no te encuentres un día que te has quedado sin espacio de almacenamiento. O que no has dimensionado correctamente tus particiones para ello.
En este sentido, tienes que editar el archivo de configuración /etc/sysstat/sysstat
. En este archivo tienes que tener en cuenta los siguientes parámetros,
HISTORY
. Es el número de días durante los que quieres guardar registros. Si quieres todos los datos de una semana, este valor tendrá que ser7
.COMPRESSAFTER
. Con este parámetro establecerás a partir de cuando los archivos se comprimirán para ahorrar espacio.SADC_OPTIONS
este parámetro te permite definir que estadísticas vas a recoger. Por defecto solo está definida las de disco. Te recomiendo que selecciones la opciónXALL
inicialmente. Esto te va a permitir obtener todas las estadísticas posibiles. Una vez las tengas en tu poder, podrás elegir, cuales te resultan mas interesantes, y cuales puedes descartar porque no te aportan valor.
Además de estos dos parámetros tienes otros mas que te permitirán configurar y personalizar el funcionamiento de sysstat, y adaptarlo a tus necesidades.
Desde luego, si quieres estudiar con detalle la evolución de estos parámetros en un período superior a una semana, necesitarás modificarlo para adecuarlo a tus necesidades.
Uso y funcionamiento de SAR
Una vez ya tienes configurado sysstat ya puedes comenzar a utilizar SAR. Bueno, no exactamente, porque necesitarás que se haya repilado suficiente información del sistema para que empieces a sacar provecho.
El comando sar muestra el contenido de toda la información acumulada reference al sistema operativo.
Desde luego, con la configuración de un registro por minuto, en un día de uso, ya tendrás unas buenas estadísticas para empezar a sacar informes, y estudiar el funcionamiento de tu equipo.
Así para obtener la información recogida durante el día en curso, tan solo tienes que ejecutar sar
. Esto de devolverá algo como lo que puedes ver a continuación,
08:31:01 CPU %user %nice %system %iowait %steal %idle
08:32:01 all 8,23 0,22 3,90 0,06 0,00 87,60
08:33:01 all 7,43 0,26 3,45 0,06 0,00 88,80
08:34:01 all 9,48 0,17 4,56 0,06 0,00 85,72
08:35:01 all 9,65 0,18 4,94 0,04 0,00 85,19
Si te pasa como a mi, que lleva registrando desde primera hora de la mañana y lo consultas ahora, no podrás ver todos los datos. Aunque simpre puedes utilizar herramientas como head
tal y como te comento en el capítulo sobre procesar texto del tutorial sobre bash. Así, para ver las primeras 10 líneas, puede ejecutar,
sar | head -10
Un detalle, es que estás viendo la información agrupada de todos los procesadores. Para ver la información detallada por procesador, ejecuta,
sar -P ALL
Si quieres ver la de uno en concreto, por ejemplo, la del procesador 3
, tienes que ejecutar sar -P 3
.
Por supuesto que puedes recuperar la información de otro día. Para ello, tienes que indicar el día en cuestión, y evidentemente deberás tener información en ese día. Por ejemplo, si quiero ver la del día 22 del mes, tienes que ejecutar la siguiente instrucción,
sar -f /var/log/sysstat/sa22
Si además quisieras ver los registros de las 20 horas, la solución puede ser tan sencilla como ejecutar la siguiente instrucción,
sar -f /var/log/sysstat/sa22 | grep ^20:
Si quieres sacar mas partido a herramientas como grep
, te recomiendo la lectura del artículo sobre filtros: awk, grep, sed y cut del tutorial sobre Bash.
Recogiendo información al vuelo
No solo puedes consultar la información que has recopilado en el sistema. Además sar
te permite generar informes al vuelo. Para ello, tan solo le tienes que decir cuantos resultados necesitas y cada cuanto tiempo. Por ejemplo, para obtener 5 resultados cada 3 segundos, ejecuta,
sar 3 5
Por supuesto, que si quieres la información por procesador, como anteriormente, la instrucción a ejecutar es sar 3 5 -P ALL
.
Mas información
Sobre el usod de memoria
Además de poder conocer el uso de la CPU, es posible conocer la evolución de otros parámetros. Así, por ejemplo, para conocer datos sobre el uso de memoria, ejecuta la instrucción,
sar -r
El problema de esta instrucción son las unidades. Si quieres ver la misma información pero con unidades comprensibles, utiliza la instrucción sar -rh
.
Por otro lado report -S
te muestra referencia sobre el uso de la memoria de intercambio.
Estadísiticas de energía
Es posible obtener datos sobre el uso de energía. Sin embargo, para esta opción tendrás que seguir las indicaciones indicadas anterioremente, en referencia a la configuración.
Con sar -m ALL
obtendrás información referente a diferentes elementos como la CPU, ventilador, USB y mucho mas.
Estadísticas de red
Otra interesante fuente de información es todo lo relativo a las conexiones de red. En este caso, tienes que utilizar sar -n ALL
.
Consulta por intervalos
Otra opción muy interesante que te ofrece sar es la posibilidad de mostrarte información en un rango determinado de horas dentro de un día concreto. Esto se puede hacer conforme al siguiente ejemplo,
sar -s 10:00:00 -e 13:00:00
Conclusión
Como puedes ver, las posibilidades que sar pone a tu alcance son increibles. Tienes todo tipo de información disponible, para analizar con detalle que es lo que sucede en tu equipo. Simplemente tienes que configurarlo de forma adecuada, y realizar las consultas que necesites.
Sin embargo, mi recomendación es que estudies con detenimiento la ayuda de esta herramienta. Y es que sar te ofrece tantas posibilidades que se merece un estudio pormenorizado para estrujarlo al máximo.
Más información,
Imagen de portada por Stephen Dawson en Unsplash