Cómo averiguar cuánta memoria toma un programa

8

Utilizo htop para ver mis procesos, pero la mayoría de los servicios ejecutados son multiproceso, por lo que se muestran en varias líneas con un% de uso de memoria que en algunos casos es el mismo para todos, a veces varía entre ellos.

Digamos que en el caso de Firefox puede enumerar 15 procesos, cada uno de los cuales consume el 13% de la memoria.

¿Puedo saber que tanta memoria es Firefox, MySQL, algún script fcgi o algo está consumiendo? ya que la salida de htop parece engañosa.

Jjdelc
fuente

Respuestas:

6

La mayoría de las principales implementaciones tienen una forma de activar o desactivar la visualización de subprocesos.

  • htop: en el menú "Configuración / Opciones de visualización", "Ocultar hilos de usuario".
  • Parte superior de Linux: presione Hpara alternar la visualización de subprocesos (pero están desactivados de forma predeterminada).
  • Parte superior de OpenBSD: presione Tpara alternar la visualización de hilos (pero están desactivados por defecto).

Tenga en cuenta que las asignaciones de memoria y, por lo tanto, la ocupación de memoria, es una propiedad de un proceso, por lo que siempre verá los mismos números para cada subproceso en un proceso. Si ve números diferentes, significa que hay múltiples procesos.

No hay una manera fácil de averiguar el consumo total de memoria de un conjunto de procesos porque el concepto no está bien definido. Parte de la memoria puede ser compartida; Esto sucede todo el tiempo con las bibliotecas compartidas y, además, los procesos relacionados (como múltiples instancias de un servidor) tienen más probabilidades de utilizar la memoria compartida para intercambiar datos. Si solo agrega las cifras, a menudo obtendrá un número que es mucho más grande que la memoria utilizada real.

Gilles 'SO- deja de ser malvado'
fuente
1
No me di cuenta de que el concepto de memoria del proceso no está bien definido, creo que eso es lo que hace que todo tenga más sentido. Gracias
Jjdelc