La herramienta systat (no confundir con sysstat), disponible en los sistemas operativos FreeBSD, muestra estadísticas de carga del sistema en tiempo real por pantalla, utilizando la librería ncurses. Se trata de una herramienta muy completa, ya que muestra todo tipo de estadísticas de uso, desde memoria, discos y swap, hasta procesos y protocolos de red. Este artículo explica la salida de las diferentes ventanas de systat (llamadas display) a través de capturas de pantalla.

Las diferentes pantallas que puede mostrar systat son: icmp, icmp6, ifstat, iostat, ip, ip6, netstat, pigs, swap, tcp y vmstat. Estas se especifican como parámetro por línea de comandos, por ejemplo:

# systat -netstat

Aunque luego es posible cambiar de pantalla utilizando dos puntos y luego ingresando el nombre de la pantalla deseada (de forma similar a cuando se desea ingresar un comando en el editor vi), por ejemplo:

:vmstat

A continuación, se explican algunas de las pantallas más importantes.

ifstat

La pantalla ifstat muestra estadísticas de tráfico de red para todas las interfaces activas:

Para cada interfaz muestra el tráfico actual, pico y total. Las unidades se ajustan automáticamente para que sean amigables, aunque se pueden cambiar con el comando scale (kbit, kbyte, mbit, mbyte, gbit, gbyte). Para listar todas las interfaces de red disponibles en FreeBSD ejecutar ifconfig.

iostat

Esta pantalla muestra estadísticas de uso de CPU y rendimiento de discos. Las estadísticas de utilización de procesador aparecen como barras horizontales que representan el tiempo ejecutando en modo usuario ("user"), en modo usuario ejecutando procesos de baja prioridad ("nice"), en modo sistema ("system"), en interrupciones ("interrupt") y disponible ("idle"). Las estadísticas de disco se muestran también en forma de barras horizontales que representan, para cada dispositivo, el ancho de banda expresado en megabytes por segundo y el número de transacciones por segundo (tps):

Para listar los discos físicos en FreeBSD, es posible recurrir a la herramienta camcontrol (Common Access Method). Por ejemplo, este sistema posee una unidad de CDROM (cd0) y dos discos (da0 y da1).

ip

La pantalla ip muestra estadísticas acerca del número de mensajes enviados y recibidos por el protocolo IP:

Tal como se observa, la información presentada por esta pantalla es auto-descriptiva.

netstat

Esta pantalla muestra las conexiones de red establecidas:

Si se desean listar todas las conexiones (incluyendo sockets escuchando peticiones) se debe utilizar el subcomando all (similar a la opción -a del comando netstat):

:all

Para expresar las direcciones IP en forma numérica en vez de simbólica (names), utilizar el subcomando numbers:

:numbers

pigs

La pantalla pigs es muy interesante, muestra los procesos residentes en memoria principal que están obteniendo la mayor porción del procesador. Cuando menos del 100% de procesador está siendo dedicado a procesos de usuario, el tiempo restante cuenta como disponible ("idle").

Esta pantalla decidí capturarla en mi workstation. ¿Adivinen quién es un cerdito?

Sí, adivinaron, es Firepig Firefox.

swap

Muestra información acerca del uso de memoria de intercambio en todas las áreas de swap disponibles:

La primera columna muestra el nombre de dispositivo, la siguiente el espacio total disponible, y la tercera el porcentaje utilizado en forma de barra.

tcp

Esta pantalla es similar a las pantallas ip, ip6, icmp e icmp6. Muestra estadísticas generales de tráfico TCP:

vmstat

Tal vez ésta sea la pantalla más completa e interesante que provee esta herramienta. vmstat muestra en una sola pantalla un resumen de estadísticas de uso de memoria, memoria virtual, procesos, interrupciones, actividad de disco, y más:

Esta pantalla es mucho más completa (en cantidad de información) que la salida de la herramienta vmstat:

Aunque, tanta información puede marear un poco, más aún cuando no queda mucho lugar en pantalla para describir qué representa cada número. Veamos entonces qué información presenta cada sección de la pantalla.

En la parte superior se muestra la cantidad de usuarios en el sistema, junto con la carga promedio en el último, en los últimos cinco, y en los últimos 15 minutos:

Por debajo se muestran estadísticas de uso de memoria. La primera fila de la tabla reporta el uso de memoria sólo entre los procesos activos (procesos que estuvieron en ejecución al menos una vez en los últimos 20 segundos). La segunda fila representa el uso de memoria entre todos los procesos. Luego, la primera columna reporta la cantidad de kilobytes en páginas físicas reclamadas por procesos, mientras que la segunda reporta el número de kilobytes en páginas físicas dedicadas a páginas de texto de sólo lectura. La tercera y cuarta columna representan la misma información pero relacionada a páginas virtuales (la cantidad de kilobytes necesarios si todas las páginas de todos los procesos estuvieran en memoria principal). La última columna muestra el número de kilobytes en páginas físicas libres:

Luego se muestra una lista con el número promedio de procesos (durante el último intervalo de refresco) que estuvieron en ejecución ("r"), en espera de páginas ("p"), en espera de disco no relacionado a páginas ("d"), en espera ("s"), y en swap pero deseando ejecutar ("w"). También se muestra el número de cambios de contexto ("Csw"), traps ("Trp", incluyendo page faults), llamadas al sistema operativo ("Sys"), interrupciones ("Int"), interrupciones de red por software ("Sof"), y page faults ("Flt"):

Debajo de esta lista se presenta un listado numérico y gráfico de barra mostrando la cantidad de tiempo de ejecución en modo supervisor ("=", sistema), en interrupciones ("+"), en modo usuario (">"), en modo usuario con baja prioridad (nice, "-"), y disponible (mostrado como espacios en blanco):

Por debajo se listan estadísticas de traducciones de nombre (mapeo de nombres de archivos a vnodos) del subsistema namei. Esta tabla lista el número de nombres traducidos en el último intervalo, el número y porcentaje de traducciones que fueron manejadas por la caché de traducciones del sistema, y el número y porcentaje de traducciones que fueron manejadas por la caché de traducciones a nivel proceso.

A la derecha de esta tabla se muestra el número de buffers dirty en el buffer cache ("dtbuf"), el valor máximo deseado para la caché de vnodos ("desvn"), el número de vnodos actualmente asignados ("numvn"), y el número de vnodos asignados que están libres ("frevn").

En la esquina inferior izquierda de la pantalla se muestran estadísticas de disco, donde "tps" contabiliza la cantidad de transacciones por segundo y "KB/t" los kilobytes promedio por transacción:

Debajo de la fecha, en la parte derecha de la pantalla, se encuentran las estadísticas de paginado y actividad de swap. Las primeras dos columnas reportan el número promedio de páginas traídas y sacadas de memoria por page faults, mientras que las dos restantes reportan aquellas traídas y sacadas de memoria principal debido a pedidos de swap iniciados por el planificador. En el ejemplo de la imagen no se observa actividad, pero en caso de haber, los valores de las filas están expresados en número de transferencias de disco y número de páginas, ambos por segundo.

Debajo de las estadísticas de paginado y swap se presenta una columna con información relacionada al sistema de memoria virtual. Las primeras filas describen, en páginas por segundo promedio en el último intervalo: páginas copiadas en escrituras ("cow"), páginas llenadas con ceros a demanda ("zfod"), páginas llenadas con ceros a demanda de forma óptima ("ozfod"), la relación entre estos últimos dos valores (ozfos/zfod, "%ozfod"), páginas liberadas por el demonio de paginado ("daefr"), páginas liberadas por procesos terminados ("prcfr"), total de páginas liberadas ("totfr"), páginas reactivadas de la lista de libres ("react"), número promedio de veces por segundo que el demonio de paginado fue activado ("pdwak"), páginas analizadas por el demonio ("pdpgs") y page faults bloqueantes en tránsito ("intrn"). Las siguientes líneas describen, como cantidades de memoria expresadas en kilobytes, páginas que no pueden ser sacadas de memoria principal ("wire", memoria residente, por ejemplo páginas de memoria del kernel), páginas activas ("act"), páginas inactivas ("inact"), páginas en la cola de caché ("cache"), y páginas libres ("free"). Al final de la columna se muestra la cantidad de memoria virtual (en kilobytes) mapeada en el buffer cache ("buf").

Finalmente, a la derecha de esta tabla, hay un resumen de las interrupciones del sistema totales y por dispositivo:

Tremenda cantidad de información útil organizada en una única pantalla:

Para más información, consultar la página de manual de systat:

man systat


Tal vez pueda interesarte


Compartí este artículo