Cómo calcular el tamaño de la memoria virtual en Mavericks

4

Me gustaría saber si hay un comando (o conjunto de comandos) que calcula cada uno de los parámetros (Memoria virtual, Caché de archivos y Memoria de la aplicación) que se enumeran en la captura de pantalla anterior.

    
pregunta Muhammad Hassan Nasr 26.03.2014 - 14:37

2 respuestas

0

Puede usar los comandos de terminal vm_stat y sysctl . Si bien no había una forma directa ni documentación sobre cómo extraer los nuevos atributos de estos comandos, tuvimos que hacer algunas pruebas y errores hasta que descubrimos las relaciones entre los parámetros en los comandos y el atributo que necesitamos calcular.

Los pasos son los siguientes:

  1. Ejecutar vm_stat
  2. Ejecute "sysctl hw.memsize" y "sysctl vm.swapusage".
  3. La relación entre el uso de la memoria que aparece en el Monitor de actividad y los comandos anteriores se describe en Cómo calcular el uso de la memoria en Mavericks mediante programación .

Salida de muestra de vm_stat :

Mach Virtual Memory Statistics: (page size of 4096 bytes)
Pages free:                               24428.
Pages active:                           1039653.
Pages inactive:                          626002.
Pages speculative:                       184530.
Pages throttled:                              0.
Pages wired down:                        156244.
Pages purgeable:                           9429.
"Translation faults":                  14335334.
Pages copy-on-write:                     557301.
Pages zero filled:                      5682527.
Pages reactivated:                           74.
Pages purged:                             52633.
File-backed pages:                       660167.
Anonymous pages:                        1190018.
Pages stored in compressor:                 644.
Pages occupied by compressor:               603.
Decompressions:                              18.
Compressions:                               859.
Pageins:                                 253589.
Pageouts:                                     0.
Swapins:                                      0.
Swapouts:                                     0.
    
respondido por el Ahmed Lotfy 05.05.2014 - 11:14
1

Creo que entre top y vm_stat podría obtener la mayor parte de esa salida, aunque en una forma menos legible. (¿Por qué quieres leerlo desde el terminal, curiosidad?)

top tiene la mayoría de las estadísticas de memoria virtual y física, pero vm_stats tiene la cantidad de comprimidos, y ambos tienen intercambio, aunque gracias a una compresión baja.

No se pudieron encontrar las especificaciones de la aplicación y de la memoria de la aplicación, están incluidas en el recuento de memoria virtual.

vm_stats:

Mach Virtual Memory Statistics: (page size of 4096 bytes)
Pages free:                              262614.
Pages active:                            818894.
Pages inactive:                          287658.
Pages speculative:                        46300.
Pages throttled:                              0.
Pages wired down:                        411565.
Pages purgeable:                          56793.
"Translation faults":                 255617431.
Pages copy-on-write:                   10812762.
Pages zero filled:                    165910381.
Pages reactivated:                      3419113.
Pages purged:                           2058688.
File-backed pages:                       246635.
Anonymous pages:                         906217.
Pages stored in compressor:              396258.
Pages occupied by compressor:            269783.
Decompressions:                          625574.
Compressions:                           1816628.
Pageins:                                1693962.
Pageouts:                                223513.
Swapins:                                      0.
Swapouts:                                     0.

arriba:

Processes: 253 total, 2 running, 6 stuck, 245 sleeping, 1101 threads             14:53:50
Load Avg: 1.42, 1.43, 1.62  CPU usage: 8.52% user, 5.97% sys, 85.50% idle
SharedLibs: 120M resident, 0B data, 26M linkedit.
MemRegions: 70307 total, 2561M resident, 107M private, 577M shared.
PhysMem: 5919M used (1608M wired), 1218M unused.
VM: 631G vsize, 1312M framework vsize, 0(0) swapins, 0(0) swapouts.
Networks: packets: 7933197/5221M in, 5685549/2563M out.
Disks: 1748536/37G read, 1726987/42G written.

Editar: Ok, busqué una herramienta que pudiera encontrar ese valor de la memoria virtual. Creo que el valor de la memoria virtual que se muestra en 'Monitor de actividad' es la cantidad de memoria que realmente se está utilizando. Mientras que 'top' muestra toda la memoria virtual, y la mayoría no se ha colocado en algún lugar. Los programas pueden solicitar mucha más memoria de la que usarán, y como se trata de una memoria virtual, no cuesta nada que se les permita tener un gran espacio de vm siempre y cuando no lo utilicen. Este enlace tiene una herramienta de reemplazo superior Si lo ejecuta con 'sudo' como 'sudo procexp-all' le da qué memoria virtual puede estar más en la línea de lo que muestra el 'Monitor de actividad'.

-----------------
Process: 0  Name: kernel_task       Parent:     0   Status: runnable
Flags:   64-bit,system,session leader
UID:        0   RUID:     0 SVUID:     0
GID:        0   RGID:     0 SVGID:     0

Virtual size:       7167M (7515574272)  Resident size:         752M (789536768)
Time:     58.03   =   00.00 (User)    +    58.03 (System)
Syscalls:           0   Mach Traps:       0
Disk I/O: Read   9786K  Written:      88547K

#Threads:  96     (Process has no workqueues)
    
respondido por el Benjamin Scherer 26.03.2014 - 15:00

Lea otras preguntas en las etiquetas