smem es la mejor a día de hoy para visualizar el estado de la memoria ram en sistemas GNU/Linux permitiendo numerosos informes sobre el uso de la misma. A diferencia de las herramientas existentes, smem puede reportar tamaño del conjunto proporcional (PSS), que es una representación más realista de la cantidad de memoria utilizada por las bibliotecas, aplicaciones y usuarios en un sistema de memoria virtual. Antes de empezar a utilizar la herramienta se recomienda la lectura de “Tipos de memoria RAM”
Conceptos básicos para usar smem
NOTA: USS y PSS incluyen únicamente el uso de memoria física. No incluyen la memoria que se ha intercambiado a disco.
Características de smem
Enlaces
Indicando el origen de los datos, herramientas como smemcap permiten hacer copias del estado de la memoria ram en un determinado momento en el tiempo. Las instantáneas de la ram pueden ser con smem abiertas y mostrar la información deseada. Para ello tenemos estas opciones.
-K KERNEL, –kernel=KERNEL
Ruta a la imagen del núcleo descomprimida (vmlinux), al usarse con la opción “-w” permite obtener información de la ram en relación al kernel y sus datos.
-R REALMEM, –realmem=REALMEM
Capacidad de la memoria RAM física (–realmem=2048M), al usarse con la opción “-W” se obtiene el uso de memoria utilizado por el firmware/hardware. Si se usa junto la opción de porcentajes usará el valor como base para realizar los cálculos.
-S SOURCE, –source=SOURCE
Para que smem pueda hacer sus cálculos necesita acceder al directorio /proc, la opción –source permite indicarle un directorio previamente guardado con herramientas del tipo android-smemcap si se trata de dispositivos móviles.
NOTA: El comando “free”, top y la inmensa mayoría de comandos o ficheros que permiten visualizar información de la memoria RAM no incluye la memoria asignada por los dispositivos de hardware (la tarjeta de vídeo a menudo se asigna una buena parte de sus buffers de pantalla) ni la memoria utilizada por el propio núcleo.
smem -R 8388608K -K /boot/vmlinuz-linux -w Area Used Cache Noncache firmware/hardware 521072 0 521072 kernel image 3812 0 3812 kernel dynamic memory 4424052 4282724 141328 userspace memory 827704 150976 676728 free memory 2611968 2611968 0
Tipos de reporte
Filtros en los reportes
Nota: Si está ejecutando como un usuario sin privilegios sin especificar “–source” sólo se visualizarán los datos de procesos cuyo /proc/ pueda ser accedido.
smem -M "/usr/share/icons/hicolor/icon-theme.cach" -U busi -P LXDE PID User Command Swap USS PSS RSS 383 busi pcmanfm --desktop --profile 0 0 1 8 382 busi lxpanel --profile LXDE 0 4 25 52
Formatos de salida
Parámetros para utilizar con la opción “-s”, –bar y –pie .
Gráficas con smem
smem --bar=pid -c "uss, user"
La aplicación smemcap genera un archivo tar en la salida estándar con información obtenido de los siguientes ficheros / directorios.
smemcap | gzip> smemcap.tar.gz
smem -S smemcap.tar
Total de memoria RAM física real instalada en el equipo.
dmidecode -t 17 | grep Size | awk '{s+=$2} END {print s}' 8192
Memoria física disponible.
dmesg | grep Memory [ 0.000000] Memory: 7856952K/8067116K available (5229K kernel code, 857K rwdata, 1632K rodata, 1120K init, 1288K bss, 210164K reserved)
awk '/MemTotal/ { print $2 }' /proc/meminfo 7863724
free total used free shared buffers cached Mem: 7863724 5390780 2472944 93536 113584 4339812 -/+ buffers/cache: 937384 6926340 Swap: 2367484 0 2367484