O sysctl do Mac OS X obtém tamanho total e livre de memória

Respostas:

8

Você não

Bem, exceto pelo tamanho total da memória, que você poderia encontrar sysctl -a | grep mem( hw.memsize = 4294967296na minha máquina).

vm_statexibe as mesmas informações Activity Monitor.appque você, basta multiplicar o valor desejado pelo tamanho da página. Ambos são fornecidos na saída.

Daniel Beck
fonte
vm_stat: páginas Free: 12054 .. 12054 * 4096/1024/1024 = 47,08 e monitorar a atividade mostra: 103 MB grab.by/6KSD VM_stats saída: pastebin.com/BJcxPswv Por que eu recebo valores errados?
Krose # 7/10
1
Adicione Pages speculativeaos gratuitos. Você deve ter notado que livre + ativo + inativo + conectado com fio não aumentam o tamanho total exibido no Monitor de atividades.
Daniel Beck
3
o grepnão parece necessário - no meu MacBook Pro, sysctl hw.memsizetambém trabalha e impressõeshw.memsize: 8589934592
SSC
3
top -l 1 | grep PhysMem: | awk '{print $10}'

top -l 1executa topno modo de registro (por exemplo, saída de arquivo, não exibição / saída do terminal) por uma iteração e sai. Os grep/ awkfiltros para o valor de memória livre na topsaída.

Killinks
fonte
YMMV. Na Sierra, top -l 1 | grep PhysMem:me dá , PhysMem: 9674M used (1752M wired), 6701M unused.então eu usei top -l 1 | grep PhysMem: | awk '{print $6}'. Obrigado!
PYB
1

Por que não usar o topcomando para visualizar seu uso de memória em tempo real?

ATUALIZAR:

Você pode usar os seguintes comandos:

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

Para uma lista completa, digite man sysctl no terminal.

ricbax
fonte
Provavelmente para uso em um script.
Daniel Beck
2
Ambos usermeme physmemexibem valores inúteis para sistemas com mais de 2 GB de RAM. Ambos são provavelmente delimitados por um inteiro assinado de 32 bits.
Daniel Beck
Talvez eu possa usar top para obter saída única. Depois de obter a saída, analisarei os valores necessários.
Krose2 #
Uso inútil de grep... sysctl hw.memsize= total sysctl hw.physmem,sysctl hw.usermem
TrinitronX
@DanielBeck está certo, hw.memsizeé o que você provavelmente deseja total. Veja meu comentário aqui para mais informações
TrinitronX
1

Mac OS X / Linux

$ sysctl -a | grep '^hw\.m'
hw.memsize: 8589934592
Rohit Malgaonkar
fonte
Parece um pequeno ajuste nas respostas existentes. Provavelmente mais apropriado como um comentário.
fixer1234
1

Não é necessário grep.

sysctl -n hw.memsize
fosco
fonte