Un sistema que carece de suficiente memoria física (RAM) funcionará significativamente más lento, ya que los procesos se mueven entre la RAM y la swap. Si un sistema Linux comienza a funcionar con lentitud, una de las primeras tareas de solución de problemas es liberar memoria física.

Hay múltiples herramientas disponibles para monitorizar el uso de la memoria en un sistema Linux, incluyendo top, del que ya hemos hablado. Smem es otra herramienta, utilizada para monitorear el uso de la memoria. Además de mostrar el uso de la memoria de los procesos en la línea de comandos, smem también puede mostrar un gráfico circular y/o de barras codificado por colores. Con smem, puedes visualizar fácilmente el uso de la memoria en tu sistema Linux.

Instalación

En los sistemas Debian y Ubuntu, smem puede instalarse desde los repositorios con el comando

sudoapt-get install smem

Comprobar el uso de la memoria

Ejecutando smem como un usuario sin privilegios mostrará la memoria utilizada por todos los procesos lanzados con el ID de usuario actual, ordenados por PSS de menor a mayor.

smem

Ejecutar smem como un usuario sin privilegios.

Por defecto, hay siete columnas, el ID del proceso, el nombre de usuario, el comando utilizado para lanzar el proceso, la cantidad de espacio de intercambio asignado al proceso, y USS, PSS y RSS.

RSS

El RSS (Resident set size) es la memoria total que tiene el proceso en la RAM. Esto incluye la memoria asignada a las bibliotecas compartidas utilizadas por el proceso, aunque las bibliotecas compartidas pueden ser utilizadas por múltiples procesos, mientras que se cargan sólo una vez en la memoria. Por lo tanto, el RSS no es una representación exacta de la memoria utilizada por un proceso determinado.

PSS

En cambio, el PSS (Proportional set size) reparte la memoria asignada a una biblioteca compartida entre los procesos que la utilizan. Así, si tres procesos utilizan una biblioteca compartida que tiene sesenta páginas, la biblioteca contribuirá con veinte páginas al PSS de cada uno de los procesos. El PSS total suele ser aproximadamente igual a la RAM total del sistema. Sin embargo, cuando un proceso que comparte una biblioteca es eliminado, la PSS reportada para el proceso no es igual a la memoria total liberada.

USS

USS (Unique set size) se refiere a la memoria única total para un proceso. Esto no incluye la memoria de las bibliotecas compartidas. Cuando se mata un proceso, el USS se refiere a la memoria real que se liberaría. Como resultado, el USS es el valor a observar si se sospecha que un proceso tiene una fuga de memoria.

Ejecutar smem como root muestra todos los procesos de todos los usuarios del sistema.

sudo smem

Ejecutando smem como root.

Visualizar el uso de la memoria

Un informe visualizado es casi seguramente más fácil de leer que los resultados basados en texto. Usando smem, puede ver el uso de la memoria como un gráfico circular o un gráfico de barras.

Para ver un gráfico de barras para PSS, USS y RSS de los procesos del usuario actual, ejecute el siguiente comando

smem –bar name -c “pss uss rss”

Ver un gráfico de barras para pss, uss y rss de los procesos del usuario actual.

Recuerde que la PSS es un reflejo más cercano de la memoria total disponible en el sistema. Para ver un gráfico circular de esto, utilice el siguiente comando

smem –nombre de la tarta

Ver un gráfico circular.

Para ver un gráfico circular de RSS etiquetado por nombre

smem –pie nombre -s rss

Ver un gráfico circular de RSS etiquetado por nombre.

Con smem, puede ver fácilmente la memoria utilizada por las aplicaciones y los procesos de su sistema, con un útil gráfico circular o de barras codificado por colores. Como se suele decir, una imagen vale más que mil palabras. Parece que los desarrolladores de smem están de acuerdo.