Mac OS X sysctl obtiene el tamaño de memoria total y libre

Respuestas:

8

Usted no

Bueno, excepto por el tamaño total de la memoria, que podría haber encontrado con sysctl -a | grep mem( hw.memsize = 4294967296en mi máquina).

vm_statmuestra la misma información que lo Activity Monitor.apphace, solo necesita multiplicar el valor que desea por el tamaño de la página. Ambos se proporcionan en la salida.

Daniel Beck
fuente
vm_stat: páginas libres: 12054 .. 12054 * 4096/1024/1024 = 47,08 y supervisión de actividad muestra: 103 MB grab.by/6KSD VM_stats de salida: pastebin.com/BJcxPswv ¿Por qué me sale valores erróneos?
kesrut
1
Añadir Pages speculativea los gratuitos. Es posible que haya notado que libre + activo + inactivo + cableado no se agrega al tamaño total que se muestra en el Monitor de actividad.
Daniel Beck
3
el grepno parece requerido - en mi MacBook Pro, sysctl hw.memsizetambién funciona e imprimehw.memsize: 8589934592
ssc
3
top -l 1 | grep PhysMem: | awk '{print $10}'

top -l 1se ejecuta topen modo de registro (por ejemplo, salida de archivo, no salida de pantalla / terminal) durante una iteración, luego se cierra. Los filtros grep/ awkpara el valor de memoria libre en la topsalida.

Killinks
fuente
YMMV. En Sierra, top -l 1 | grep PhysMem:me da, PhysMem: 9674M used (1752M wired), 6701M unused.así que solía top -l 1 | grep PhysMem: | awk '{print $6}'. ¡Gracias!
pyb
1

¿Por qué no usar el topcomando para ver su uso de memoria en tiempo real?

ACTUALIZAR:

Puede usar los siguientes comandos:

sysctl -a | grep hw.usermem
sysctl -a | grep hw.physmem

Para una lista completa, escriba man sysctl en la terminal.

ricbax
fuente
Probablemente para usar en un guión.
Daniel Beck
2
Ambos usermemy physmemmuestran valores inútiles para sistemas de más de 2 GB de RAM. Probablemente ambos estén limitados por un entero de 32 bits con signo.
Daniel Beck
Tal vez pueda usar top para obtener una salida única. Después de obtener la salida, analizaré los valores necesarios.
kesrut
Uso inútil de grep... sysctl hw.memsize= total sysctl hw.physmem,sysctl hw.usermem
TrinitronX
@DanielBeck tiene razón, hw.memsizees lo que probablemente quieras para el total. Vea mi comentario aquí para obtener más información
TrinitronX
1

mac os x / linux

$ sysctl -a | grep '^hw\.m'
hw.memsize: 8589934592
Rohit Malgaonkar
fuente
Esto parece un pequeño ajuste a las respuestas existentes. Probablemente más apropiado como comentario.
Fixer1234
1

No se necesita grep.

sysctl -n hw.memsize
mate
fuente