Para ver el uso y análisis de la memoria el administrador dispone de algunas herramientas.
El rendimiento de la memoria virtual es muy importante ya que cuando vayamos a hacer uso de ella es porque al sistema se le esta requiriendo un esfuerzo mayor y no queremos que sea el cuello de botella. Por ello las herramientas nos deben dar las estadísticas de la utilización de la memoria.
Para ver el estado de la memoria actual tenemos el comando free.
[pcm@sal]$
free -m
total used free shared buffers cached Mem: 504 491 12 0 41 147 -/+ buffers/cache: 302 201 Swap: 329 51 277
[pcm@sal]$
La primera linea nos está dando como realmente se esta utilizando la memoria física, y la segunda cuanta memoria hay libre desde el punto de vista de las aplicaciones. La última linea contiene la utilización de la memoria swap.
En detalle, este sistema tiene 504Mb de memoria de los cuales están usados 491Mb y 12Mb libres. De los usados 302Mb por las aplicaciones, 41Mb de memoria compartida y 147Mb para buffers y caches. Como la memoria para buffers y cache es adaptable según las necesidades, tendríamos hasta 201Mb libres.
Muchas de las herramientas de administración nos dan también
estos mismos valores de memoria como por ejemplo
top o htop o desde webmin. Esta información se recoge del fichero
/proc/meminfo
del
sistema de ficheros virtual del núcleo.
Nos da la misma información que free más algunos datos estadísticos sobre el uso de la memoria swap y entrada/salida con dispositivos de bloques.
Nos permite por parámetro lanzar la petición varias veces y cada cierto periodo de tiempo, así tendremos que poner vmstat 2 10 para que se ejecute 10 veces y muestre los datos cada dos segundos.
[pcm@sal]$
vmstat 2 10
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 0 0 66016 113748 19112 231988 0 0 2 3 38 23 1 1 98 0 0 0 66016 113740 19112 231988 0 0 0 0 196 460 3 0 97 0 1 0 66016 113844 19112 231988 0 0 0 0 193 427 5 1 94 0 0 0 66016 113608 19112 232216 0 0 114 0 206 425 7 1 92 0 0 0 66016 113524 19112 232248 0 0 16 12 206 422 6 1 93 0 0 0 66016 113472 19112 232248 0 0 0 0 191 433 7 0 93 0 0 0 66016 113472 19112 232252 0 0 2 0 190 384 5 1 94 0 0 0 66016 113468 19112 232252 0 0 0 0 195 799 4 1 95 0 2 0 66016 113468 19112 232252 0 0 0 192 227 727 8 1 91 0 0 0 66016 113468 19112 232252 0 0 0 0 203 260 0 0 99 0
[pcm@sal]$
En cada linea nos va dando el estado de las variables. Serán tantas lineas como hayamos puesto en el segundo parámetro y van saliendo cada tantos segundo como hayamos puesto en el primero.
procs: Nos da los procesos preparados para correr en una cpu y los procesos durmiendo.
memory: Estado de la memoria. Los mismo datos que el comando free.
swap: Nos da las páginas intercambiadas por segundo entre la memoria física y la memoria virtual.
io: Bloques recibidos y enviados desde un dispositivo por segundo.
system: Interrupciones lanzadas y cambio de contexto por segundo.
cpu: Porcentajes de tiempos de cpu dedicados a sistema, a aplicaciones de usuario, sin hacer nada y tiempo dedicado a IO (Entrada/Salida).
Este comando permite realizar estadísticas de muchos más elementos, como red, cpu, dispositivos de bloques y memoria. Esta muy pensado para analizar el rendimiento de estos elementos. Para la memoria virtual dispone de muy diversas variables que nos pueden ayudar a ver donde puede haber un problema.
No vamos a entrar en detalle con todas las posibilidades de este comando.