En este artículo presento las principales herramientas que dispone FreeBSD para monitorear el consumo o utilización de memoria.



vmstat

La principal herramienta que provee FreeBSD para monitorear el uso de memoria es vmstat.

La utilidad vmstat reporta las estadísticas que mantiene el kernel acerca de procesos, memoria virtual, disco, interrupciones y actividad de CPU. Utilizando la opción -h es posible obtener los valores en unidades amigables (human readable).

emi@hal9000:~ % vmstat -h
 procs      memory      page                    disks     faults         cpu
 r b w     avm    fre   flt  re  pi  po    fr  sr md0 ad0   in   sy   cs us sy id
 0 0 11  14972M  1186M   558  29   1   1   489 392   0   0  296  594 4208  3  6 91

Para más información:

man 8 vmstat

swapctl

Para determinar el estado de la memoria de intercambio (swap), existe la herramienta swapctl. Esta provee la funcionalidad necesaria para agregar, remover o listar dispositivos swap. Utilizando la opción -l se listan todos los dispositivos utilizados como swap actualmente. Con la opción -m se epresan las unidades en formato amigable (mega bytes):

emi@hal9000:~ % swapctl -lm
Device:       1MB-blocks      Used:
/dev/md0            2048        353

Para más información:

man 8 swapctl

sysctl

La herramienta sysctl permite recuperar y establecer información de estado del kernel. La información se maneja utilizando un formato llamado MIB (Management Information Base) similar al que emplea el protocolo SNMP, donde los diversos componentes del sistema se describen utilizando puntos.

Desde las estructuras de datos del kernel FreeBSD, es posible obtener información acerca del estado de la memoria virtual (VM) accediendo al componente vm.vmtotal. Con la opción -h se formatea la salida en unidades amigables:

emi@hal9000:~ % sysctl -h vm.vmtotal
vm.vmtotal: 
System wide totals computed every five seconds: (values in kilobytes)
===============================================
Processes:              (RUNQ: 1 Disk Wait: 0 Page Wait: 0 Sleep: 279)
Virtual Memory:         (Total: 15694580K Active: 15456692K)
Real Memory:            (Total: 1653936K Active: 1471728K)
Shared Virtual Memory:  (Total: 287992K Active: 184728K)
Shared Real Memory:     (Total: 79432K Active: 77660K)
Free Memory:    1206908K

Algunos componentes están definidos de forma estática en archivos de encabezado, mientras que otros se generan dinámicamente.

emi@hal9000:~ % locate vm_param.h
/usr/include/vm/vm_param.h
emi@hal9000:~ % grep vmtotal /usr/include/vm/vm_param.h
#define VM_TOTAL                1       /* struct vmtotal */

Es posible listar todas las variables disponibles, junto con su descripción, ejecutando:

sysctl -ad

Para más información:

man 8 sysctl

Otras herramientas

Otras formas de obtener información del estado de la memoria en sistemas FreeBSD (al igual que en sistemas GNU/Linux) consiste en utilizar herramientas como top, atop, htop, etc.


Tal vez pueda interesarte


Compartí este artículo