¿Es exagerado el uso de memoria del software típico?

¿Es exagerado el uso de memoria del software típico?

Supongamos que varios procesos utilizan la misma biblioteca compartida (como Gtk). Presumiblemente, ¿ mmapson compartidos el archivo de la biblioteca y físicamente la RAM?

Sin embargo, el tamaño de la biblioteca se suma al tamaño de la memoria de cada proceso, como se muestra en el monitor del sistema, lo que genera números exagerados. ¿Es esto exacto?

Respuesta1

La contabilidad de memoria real separa la memoria compartida de la memoria privada, pero algunas herramientas las agregan al mostrar el uso de la memoria de proceso. Además, cgroups cobrará el proceso por ese uso de memoria, por lo que si tiene un límite máximo de memoria en cgroups, esto cuenta.

Esto no exagera el uso de memoria del proceso: realmente está usando esa memoria. Pero si observa el uso total de memoria de un grupo de procesos y solo observa los totales combinados, los resultados estarán inflados con respecto al uso real. No existe una forma sencilla de saber cuántas veces se reutiliza una biblioteca compartida sin tener que examinar las bibliotecas que utiliza cada proceso, aunque se debe contabilizar correctamente en cgroups.

Entonces, si desea conocer el verdadero uso de la memoria de un grupo de procesos y se siente justificado al agregarlos todos al mismo grupo de memoria, esto debería darle una respuesta correcta.

información relacionada