Información sobre el uso de RAM y CPU: /proc/meminfo y /proc/cpuinfo

En el post anterior presentamos a /proc como una «ventana de información» para observar lo que sucede en el kernel. En cualquier momento dado, los contenidos de ese directorio nos permiten saber qué sucede con los procesos del sistema. Además de eso, en esta ocasión veremos que podemos obtener información sobre el uso de RAM y CPU. Para lograrlo, examinaremos /proc/meminfo y /proc/cpuinfo.

Información sobre el uso de RAM y CPU

En la Fig. 1 examinamos el resultado del comando

cat /proc/meminfo

en un equipo con 256 MB de RAM (sí, bastante «viejito», pero que todavía uso como servidor de pruebas):

Información sobre el uso de RAM y CPU: el archivo /proc/meminfo
Figura 1 – Información sobre el uso de RAM y CPU: el archivo /proc/meminfo

En primer lugar tenemos que aclarar que las cantidades en realidad se expresan en kibibytes (1 KiB = 1024 B). Por razones de compatibilidad, se utiliza la nomenclatura kB debido a que otros programas (como free, top, y ps) la requieren. De hecho, ese es uno de los motivos por el que este archivo es tan importante, ya que brinda información esencial a otros programas.

En la Fig. 1 podemos ver, por ejemplo, que el sistema tiene 3752 KiB de memoria completamente libres (MemFree). Además, vemos que hay 153784 KiB usados para el caché de disco pero disponibles para el uso de las aplicaciones que lo requieran (MemAvailable). Para un mayor detalle, ver este enlace y este otro.

Por otra parte, el comando

cat /proc/cpuinfo

nos permite ver en la Fig. 2 (entre otras cosas) la marca del microprocesador (vendor_id), el modelo (model name), la velocidad (cpu MHz), y las flags disponibles (flags). Las flags en un microprocesador nos indican la presencia de ciertas características en el mismo (para un listado detallado, ver este enlace).

Información sobre el uso de RAM y CPU: el archivo /proc/cpuinfo
Figura 2 – Información sobre el uso de RAM y CPU: el archivo /proc/cpuinfo

En sistemas con más de un núcleo, estos datos son reportados por núcleo de manera individual. Por eso, en este caso solamente vemos processor: 0 debido a que este sistema tiene solamente uno.