Cómo verificar el uso de la memoria por proceso en Linux

Cómo verificar el uso de la memoria por proceso en Linux

En estos días, una computadora puede ejecutar muchos programas a la vez. La CPU no tiene problemas para manejar todos estos programas porque las CPU tienen múltiples núcleos para manejar la multitarea.

Cada uno de estos programas se ejecuta como uno o más procesos. Cada proceso asigna cierta cantidad de RAM o memoria para sí mismo. Es esencial que el proceso funcione correctamente. Si un proceso no puede asignar suficiente RAM o memoria, entonces el proceso no se puede crear y el programa no podrá comenzar.

Entonces, una de las tareas básicas que realiza en su computadora es verificar cuánta memoria o RAM (memoria de acceso aleatorio) cada uno de los procesos está utilizando. Porque la RAM o la memoria de su computadora es limitada.

Imagine un caso, en el que desea ejecutar algún programa y falla porque no tiene suficiente memoria. Puede ser algunos de los procesos utilizando mucha memoria que no necesita en este momento. Puede matar o detener estos procesos para liberar RAM o memoria, para que pueda iniciar sus programas importantes.

En este artículo, le mostraré cómo verificar el uso de la memoria de cada uno de los procesos que se ejecutan en su máquina Linux. Usaré Debian 9 Stretch para toda la demostración en este artículo. Pero debería funcionar en cualquier distribución moderna de Linux. Empecemos.

Verificación de uso de la memoria usando el comando PS:

Puedes usar el PD Comando para verificar el uso de la memoria de todos los procesos en Linux. Hay un problema con este procedimiento. PD Realmente no le muestre cuánta memoria usa un proceso en formato KB o MB, pero le mostrará cuánta memoria se está utilizando en porcentaje.

Puede verificar el uso de la memoria (en porcentaje) de todo el proceso que se ejecuta en su sistema operativo Linux con el siguiente comando:

$ PS -O PID, usuario,%MEM, comando AX | ordenar -b -k3 -r

Como puede ver, todos los procesos con el uso de la memoria en porcentaje se enumeran en orden descendente (los procesos que usan la mayor parte de la memoria se enumeran primero).

Comprobando el uso de la memoria de los procesos con PMAP:

Puede verificar la memoria de un proceso o un conjunto de procesos en formato legible humano (en kb o kilobytes) con PMAP dominio. Todo lo que necesita es el PID de los procesos que desea verificar el uso de la memoria de.

Digamos que desea verificar cuánta memoria está usando el proceso con PID 917. Para hacer eso, corre PMAP como sigue:

$ sudo PMAP 917

Como puede ver, la memoria total utilizada por el proceso 917 es 516104 kb o kilobytes. También puede ver cuánta memoria también está utilizando las bibliotecas y otros archivos para ejecutar el proceso con PID 917.

Si no le importa cuánta memoria están utilizando las bibliotecas u otros archivos dependientes, ejecute PMAP como sigue:

$ sudo PMAP 917 | cola -n 1

Como puede ver, solo la memoria total utilizada por el proceso con PID 917 se imprime en la pantalla.

Si lo desea, puede filtrar aún más esto con asombrar y obtener solo el tamaño en KB o Kilobytes. Para hacer eso, corre PMAP como sigue:

$ sudo PMAP 917 | cola -n 1 | Awk '/[0-9] k/imprimir $ 2'

Como puede ver, solo se imprime el uso de la memoria en KB o Kilobytes.

Ahora también puede enumerar cuánta memoria usa múltiples procesos utilizando sus PID con PMAP como sigue:

$ sudo PMAP 917 531 | Total de GREP

NOTA: Aquí 917 y 531 son ID de proceso o PID. Puedes poner tantos PID como quieras de esta manera.

Uso de PMAP para enumerar el uso de la memoria de todos los procesos en Kilobytes:

En esta sección, le mostraré cómo escribir su propio script de shell para enumerar el uso de la memoria de todos los procesos que se ejecutan en su sistema operativo Linux en formato legible humano (Kilobytes o KB).

Primero haz un nuevo archivo sysmon En su directorio de trabajo actual con el siguiente comando:

$ touch sysmon

Ahora haga que el archivo sea ejecutable con el siguiente comando:

$ chmod +x sysmon

sysmon es el script de shell que mostrará todos los procesos de ejecución Pid, DUEÑO, MEMORIA (en KB en orden descendente) y DOMINIO. Empecemos.

Abre el sysmon Script con tu editor de texto favorito, voy a usar Kate.

Ahora, el primer comando que voy a ejecutar me dará el Pid, DUEÑO y DOMINIO de todos los procesos de ejecución separados por colon (:) símbolo y guárdelo en el Crudo variable. Luego bucle a través de la salida e imprima en la pantalla.

Como puede ver, estoy obteniendo la salida correcta.

Ahora es el momento de procesar cada línea, almacene la información delimitada de colon en variables separadas. Eso es lo que hice en la línea 7, 8 y 9.

Como puede ver, puedo imprimir Pid, DUEÑO y DOMINIO En mi propio formato ahora.

Ahora es el momento de obtener el uso de la memoria de cada pid. La línea 10 hace exactamente eso.

Como puede ver, todo funciona perfectamente. Ahora también puedo imprimir el uso de la memoria de cada proceso en Kilobytes (KB).

Ahora todo lo que queda por hacer es formatear la salida para que se vea bien. Prefiero el formato de tabla. La línea 5 imprime el encabezado de cada columna de la tabla.

Finalmente, imprimí Pid, DUEÑO, MEMORIA (en KB) y DOMINIO de cada procesos en un formato tabular utilizando la línea 14.

Como puede ver, está funcionando un poco bien. Sin embargo, hay un poco de problema, los procesos no se clasifican correctamente en orden descendente por uso de la memoria.

Para arreglar eso, eliminé ordenar -bnr -k3 desde la línea 3 y envuelto todo en una función de shell sysmon_main (). Luego dejó el trabajo de clasificar al clasificar dominio.

El script de shell final se parece a esto:

Como puede ver, funciona muy bien.

Ahora puedes moverlo a algún lugar como /usr/bin y ejecutarlo al igual que otros comandos de la siguiente manera:

$ sudo mv -v sysmon /usr /bin

Ejecutivo sysmon:

Gracias por leer este artículo.