¿Cómo obtener la cantidad de 'Memoria comprimida', por proceso (desde el terminal)?

4

¿Cómo puedo usar ps , o alguna variación del mismo ... para obtener un valor que se corresponda aproximadamente con el valor de "Memoria comprimida" que Apple reporta en Activity Monitor.app ?

username52036100.124.180268323035512??Rs...com.apple.WebKit.WebContent

Ok,entoncesaparecepsauxnosdice...

  • 3035512,tambiénconocidocomo2.83Gb,quecorrespondea"Memoria privada"
  • 8026832 , también conocido como 7.48 Gb que no parece corresponder a nada . (Aunque posiblemente podría ser ("Memoria" 3.89 + "Memoria privada" 2.84 + "Memoria comprimida" 1.05 )?

¿Hay alguna manera "normal" de acceder a esta métrica, o es solo un valor "mágico" que Apple ha creado?

    
pregunta alex gray 12.12.2016 - 11:24

3 respuestas

3

No hay nada mágico en la memoria comprimida. Es algo que se agregó a 10.9 como un último paso antes de que el sistema cambie la memoria RAM al almacenamiento. Según John Siracusa , esto cumple tres funciones principales:

  

La compresión de memoria es un triple play para los Mavericks. Es una victoria de rendimiento; comprimir y descomprimir datos en la RAM es mucho más rápido que leer y escribir en el disco, incluso un SSD. Es una victoria energética. Cuanto menos tiempo se pasa moviendo datos entre la RAM y el disco, más tiempo puede pasar el sistema en su estado inactivo. Y, finalmente, es una capacidad de ganar; Los Mavericks pueden manejar cargas de trabajo mucho más exigentes que las versiones anteriores de OS X antes de llorar tío.

En cuanto a obtener los detalles de la línea de comandos, eso puede ser difícil de alcanzar. Los números de compresión en general son fáciles con un par de herramientas:

memory_pressure
vm_stat

No creo que ninguna invocación de ps haga el truco, pero tal vez alguien pueda corregirlo. Puede ver los detalles de la implementación en este hilo: vm_compressor_mode (vm.compressor_mode) valores para la memoria comprimida habilitada en OS X

Lo mejor que puedo conseguirte es mirar toda la memoria "intercambiada y / o comprimida" usando el comando vmmap . Básicamente, antes del intercambio, las regiones de memoria marcadas para el intercambio se comprimen. Si eso ahorra espacio suficiente para aliviar el algoritmo de intercambio, no se produce ningún intercambio. Si no, las regiones comprimidas se cambian al almacenamiento.

vmmap -swapped [PID]

Tendría que manejar la adición de las regiones y no estoy seguro de si el monitor de actividad informa de todos los cambios y comprimidos en la columna que mencionó, pero eso es algo que puede resolver mediante inspección y / o uso Los instrumentos de Xcode para correlacionar lo que se ve desde la línea de comandos con el monitor de actividad para algunos procesos.

    
respondido por el bmike 12.12.2016 - 16:07
1

Funciona para mí:

VAR='top -l 1 | awk '/processName/  {print $10 }''

Para comprimir + memoria normal

VAR='top -l 1 | awk '/processName/  {print $8 + $10 }''
    
respondido por el Vilefort 25.09.2017 - 15:16
-5

ActivityMonitor: haga clic en el botón Memoria, luego elija la columna CompressedMemory.

    
respondido por el LexS 12.12.2016 - 12:19

Lea otras preguntas en las etiquetas