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.
Fuente: linuxito