imagen
Hola a todos, mi nombre es Liang Xu.
Hoy compartiré con ustedes un artefacto de gestión de memoria en el sistema Linux: smem.
smemEs una herramienta de línea de comandos que puede generar varios informes de consumo de memoria en sistemas Linux. A diferencia de las herramientas existentes, smempuede informar PSS [Tamaño de conjunto proporcional (tamaño de conjunto proporcional)], que es un indicador más significativo. Puede medir la cantidad de memoria utilizada por las bibliotecas y aplicaciones del sistema de memoria virtual.
Dado que la mayor parte de la memoria física a menudo se comparte entre varias aplicaciones, esta métrica estándar de consumo de memoria llamada Resident Set Size (RSS) sobreestima en gran medida el consumo de memoria. En cambio, el parámetro PSS mide la "asignación justa" de cada aplicación en cada área de memoria compartida, dando una medida realista.

1. Instale la herramienta smem

Si tiene Fedora 19+, está smem  en el repositorio de forma predeterminada, por lo que yumpuede :
$ sudo yum instalar smem
Para usuarios de Ubuntu, se puede instalar usando el apt-getcomando   smem:
$ sudo apt-get install smem
Si no se puede instalar normalmente, puede descargar su código fuente e instalarlo directamente. La dirección es: https://www.selenic.com/smem/download/

2. Uso común de la herramienta smem

De forma predeterminada, smem  se mostrará cada proceso en ejecución y la memoria utilizada. Aquí, puede notar el tamaño de RSS en relación con USS y PSS, y puede ver que es significativamente más alto que los otros dos.
$ broma
imagen
Además, smem  se puede mostrar la memoria utilizada por cada biblioteca. Este resultado es largo y puede tardar algún tiempo, dependiendo de su sistema.
$ smem-m
Este comando produce demasiados resultados, si queremos ver el uso de memoria de una aplicación específica, como Firefox, podemos usarlo con el grepcomando y usar la -popción para ver el uso de memoria como un porcentaje.
$ smem -m -p | grep firefox
imagen
smem  El comando también puede mostrar el uso de memoria de cada usuario con la opción:-u
$ smem -u -p
imagen
También puede usar la -wopción ver el uso de la memoria del sistema:
$ smem -w -p
imagen

3. Salida de visualización de resultados

Después de todo, mostrar números no es intuitivo, también podemos usarlo smempara generar tablas gráficas para mostrar el uso de la memoria de un vistazo. Para lograr esto, necesitamos usar Python que puede hacer todo excepto no tener hijos.
Pero Python solo no es suficiente, también necesita instalar la matplotlibbiblioteca .
Los usuarios de Fedora pueden instalarlo ejecutando:
$ sudo yum instalar python-matplotlib
Los usuarios de Ubuntu pueden obtenerlo ejecutando:
$ sudo apt-get install python-matplotlib
Una vez que se ha instalado la biblioteca, ahora es posible visualizar el uso de memoria logrado en forma de gráfico de barras o circular.

3.1 Gráfico circular

Use smempara ver el uso de la memoria como un gráfico circular con la --piesiguiente opción:
$ smem --nombre del pastel -s pss
Después de que se ejecute el comando, se generará un gráfico circular. Tenga en cuenta que también agregamos este comando para -s pssmostrar el uso de memoria de PSS. Para obtener un gráfico circular para USS y RSS, simplemente reemplace pss con uss o rss en el comando.
imagen
imagen
En los dos gráficos circulares, puede ver que RSS informa el 41,74 % de la memoria sin usar, mientras que PSS informa el 53,02 % de la memoria sin usar. Se puede ver que la memoria disponible que muestra RSS es relativamente pequeña, pero en realidad hay mucho espacio de memoria.

3.2 Histograma

smem  Otra característica interesante es que produce una salida en forma de histograma. Con esta función, puede ver el uso de memoria informado por USS, PSS y RSS de una sola vez.
Para lograr esta función, debe agregar la --baropción :
$ smem --bar pid -c  "pss uss rss"
El comando anterior dará como resultado el uso de la memoria con el número de identificación del proceso. Si desea ver el nombre del proceso, puede pidreemplazarlo con name.
Después de ejecutar el comando, se puede generar el gráfico de barras que se muestra en la siguiente figura.
imagen


Todas las publicaciones de blog en esta cuenta oficial se han organizado en un directorio, ¡responda a " m " en la cuenta oficial para obtenerlo!

Lectura recomendada:

Argot de Linux explicado: ¿Qué son upstream y downstream?

Resumen de los conocimientos de optimización de io que el desarrollo en segundo plano de Linux debe conocer

¡Las consultas difusas de MySQL ya no necesitan like+%!


¡Se liberan los recursos técnicos de 5T! Incluyendo pero no limitado a: C/C++, Linux, Python, Java, PHP, inteligencia artificial, microcontrolador, Raspberry Pi, etc. ¡Responde a " 1024 " en la cuenta oficial para obtenerlo gratis!