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
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
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”
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
Para ver un gráfico circular de RSS etiquetado por nombre
smem –pie nombre -s rss
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.