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

How Check Memory Usage Per Process 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 múltiples tareas.

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 fundamental para 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á iniciarse.







Entonces, una de las tareas básicas que realiza en su computadora es verificar cuánta memoria o RAM (memoria de acceso aleatorio) está usando cada proceso. 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 que algunos de los procesos estén usando mucha memoria que no necesita en este momento. Puede matar o detener estos procesos para liberar RAM o memoria, de modo que pueda iniciar sus programas importantes.



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





Puedes usar el ps comando para verificar el uso de memoria de todos los procesos en Linux. Hay un problema con este procedimiento. ps realmente no le muestra cuánta memoria usa un proceso en formato KB o MB, pero le mostrará cuánta memoria se está usando en porcentaje.

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



$ps -opid, usuario,%meme,mandohacha| clasificar -b -k3 -r

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

Comprobación del uso de memoria de los procesos con pmap:

Puede verificar la memoria de un proceso o un conjunto de procesos en formato legible por humanos (en KB o kilobytes) con pmap mando. Todo lo que necesita es el PID de los procesos que desea verificar el uso de la memoria.

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

$sudopmap917

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

Si no le importa la cantidad de memoria que utilizan las bibliotecas u otros archivos dependientes, ejecute pmap como sigue:

$sudopmap917 | cola -norte 1

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

Si lo desea, puede filtrar aún más esto con awk y obtenga solo el tamaño en KB o kilobytes. Para hacer eso, corre pmap como sigue:

$sudopmap917 | cola -norte 1 | awk '/ [0-9] K / {imprimir $ 2}'

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

Ahora también puede enumerar cuánta memoria utilizan varios procesos utilizando sus PID con pmap como sigue:

$sudopmap917 531 | sujecióntotal

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

Usando pmap para enumerar el uso de 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 memoria de todos los procesos que se ejecutan en su sistema operativo Linux en formato legible por humanos (kilobytes o KB).

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

$tocarsysmon

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 en ejecución PID , DUEÑO , MEMORIA (en KB en orden descendente) y MANDO . Empecemos.

Abre el sysmon script con su editor de texto favorito, voy a usar Kate .

Ahora, el primer comando que voy a ejecutar me dará la PID , DUEÑO y MANDO de todos los procesos en ejecución separados por dos puntos (:) y almacenarlo en el RAWIN variable. Luego recorra la salida e imprímala en la pantalla.

Como puede ver, obtengo el resultado correcto.

Ahora es el momento de procesar cada línea, almacenar la información delimitada por dos puntos en variables separadas. Eso es lo que hice en las líneas 7, 8 y 9.

Como puede ver, puedo imprimir PID , DUEÑO y MANDO en mi propio formato ahora.

Ahora es el momento de obtener el uso de memoria de cada PID. La línea 10 hace precisamente eso.

Como puede ver, todo funciona a la perfección. Ahora también puedo imprimir el uso de 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 MANDO de cada proceso en formato tabular utilizando la línea 14.

Como puede ver, está funcionando bastante bien. Sin embargo, existe un pequeño problema, los procesos no están ordenados correctamente en orden descendente por uso de memoria.

Para arreglar eso, quité sort -bnr -k3 de la línea 3 y envolvió todo en una función de shell sysmon_main () . Luego dejó el trabajo de clasificación al clasificar mando.

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 ejecútelo como otros comandos de la siguiente manera:

$sudo mv -vsysmon/usr/soy

Ejecutando sysmon :

Gracias por leer este artículo.