Hola a todos, mi nombre es Liang Xu.
Hoy compartiré con ustedes un artefacto de gestión de memoria en el sistema Linux: smem
.
smem
Es 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, smem
puede 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 yum
puede :
Para usuarios de Ubuntu, se puede instalar usando el apt-get
comando 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.
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.
Este comando produce demasiados resultados, si queremos ver el uso de memoria de una aplicación específica, como Firefox, podemos usarlo con el grep
comando y usar la -p
opción para ver el uso de memoria como un porcentaje.
$ smem -m -p | grep firefox
smem
El comando también puede mostrar el uso de memoria de cada usuario con la opción:-u
También puede usar la -w
opción ver el uso de la memoria del sistema:
3. Salida de visualización de resultados
Después de todo, mostrar números no es intuitivo, también podemos usarlo smem
para 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 matplotlib
biblioteca .
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 smem
para ver el uso de la memoria como un gráfico circular con la --pie
siguiente 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 pss
mostrar 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.
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 --bar
opció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 pid
reemplazarlo con name
.
Después de ejecutar el comando, se puede generar el gráfico de barras que se muestra en la siguiente figura.
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!
buen linux
Liang Xu, autodidacta, cambió a TI e ingresó con éxito a las 500 principales empresas extranjeras como ingeniero de desarrollo de Linux. La cuenta pública comparte una gran cantidad de productos secos de Linux, incluidos los conceptos básicos de Linux, las aplicaciones de Linux, el software de herramientas de Linux y el conocimiento técnico de Git, la base de datos, Raspberry Pi, etc. (responda a Linux en segundo plano para obtener los recursos necesarios de Linux)
228 contenido original
el público