Como @khedron diz , você pode ver essas informações no Activity Monitor.
Se você quiser na linha de comando, aqui está um script Python que eu escrevi (ou talvez modificado a partir de outra pessoa, não me lembro, é muito antigo agora) para mostrar as quantidades de memória com fio, ativa, inativa e livre:
#!/usr/bin/python
import subprocess
import re
# Get process info
ps = subprocess.Popen(['ps', '-caxm', '-orss,comm'], stdout=subprocess.PIPE).communicate()[0].decode()
vm = subprocess.Popen(['vm_stat'], stdout=subprocess.PIPE).communicate()[0].decode()
# Iterate processes
processLines = ps.split('\n')
sep = re.compile('[\s]+')
rssTotal = 0 # kB
for row in range(1,len(processLines)):
rowText = processLines[row].strip()
rowElements = sep.split(rowText)
try:
rss = float(rowElements[0]) * 1024
except:
rss = 0 # ignore...
rssTotal += rss
# Process vm_stat
vmLines = vm.split('\n')
sep = re.compile(':[\s]+')
vmStats = {}
for row in range(1,len(vmLines)-2):
rowText = vmLines[row].strip()
rowElements = sep.split(rowText)
vmStats[(rowElements[0])] = int(rowElements[1].strip('\.')) * 4096
print 'Wired Memory:\t\t%d MB' % ( vmStats["Pages wired down"]/1024/1024 )
print('Active Memory:\t\t%d MB' % ( vmStats["Pages active"]/1024/1024 ))
print('Inactive Memory:\t%d MB' % ( vmStats["Pages inactive"]/1024/1024 ))
print('Free Memory:\t\t%d MB' % ( vmStats["Pages free"]/1024/1024 ))
print('Real Mem Total (ps):\t%.3f MB' % ( rssTotal/1024/1024 ))
Como você pode ver, você pode simplesmente chamar a vm_stat
partir da linha de comando, apesar de contar em páginas de 4kB, daí o script para converter em MB.
O script também conta o uso de "memória real" de todos os processos em execução para comparação (isso não corresponde a nenhum valor específico das estatísticas gerais de memória, porque a memória é uma besta complexa).
Aqui está um exemplo da saída do script no meu sistema:
[user@host:~] % memReport.py
Wired Memory: 1381 MB
Active Memory: 3053 MB
Inactive Memory: 727 MB
Free Memory: 1619 MB
Real Mem Total (ps): 3402.828 MB
(ligeiramente ajustado para corresponder ao tamanho da guia no StackExchange;)
ps -caxm -orss= | awk '{ sum += $1 } END { print "Resident Set Size: " sum/1024 " MiB" }'
O comando que você precisa é
vm_stat
semelhante à ferramenta tradicional do Unix,vmstat
mas com algumas diferenças específicas ao MACH. A página do manual está bem escrita.fonte
Parece que o motivo é lento porque
top -l 1
sempre atrasa um segundo após a conclusão, o atraso padrão entre as atualizações. Adicionar -s 0 ao comando faz com que seja concluído instantaneamente:Além disso, para maior clareza, gosto de mostrar cada componente mem em sua linha, então adicionei 9 espaços para alinhamento com 'PhysMem:' na sequência de substituição sed:
fonte
vm_stat
.top
é significativamente mais lenta que a chamada,vm_stat
mas atop
extração é muito menos detalhada e a unidade é megabyte e não páginas. Para ser ainda menos detalhada, as quebras de linha podem ser removidas eawk
substituídasgrep
resultando emtop -l 1 | grep ^PhysMem
.page
unidades inúteis / requer algum tipo de pós-processamento hacky para tornar essas unidades interpretáveis.Aqui está uma linha simples para tornar toda a
vm_stat
produção mais amigável ao ser humano:fonte
Caso você esteja realmente interessado apenas no uso de swap (qual seria a última linha de saída
free
):fonte
Há um terminal de comando semelhante ao
free
do Mac OS X ... É chamadotop
Para obter mais informações, consulte este documento de suporte da Apple.
Mac OS X: Como exibir o uso de memória com o utilitário "top"
fonte
htop
Basta pegar a solução do @zack e adicionar blocos inativos e especulativos.
fonte
Somente para especialistas em Unix:
fonte
top -l1 | awk '/PhysMem/ {print $2}'
on macos> = High Sierrafonte
tcsh
(meu padrão) oush
. O comando é específico do shell?bash
eksh
específico. Natcsh
tentativa:set freeblocks=`vm_stat | grep free | awk '{ print $3 }' | sed 's/\.//'` ; set freeMB=`expr $freeblocks \* 4096 / 1048576`; set free=`echo $freeMB MiB free`
. Você pode fazer issoecho $free
para imprimir a quantidade de memória livre. Você também pode criar um alias:alias free echo $freeMB MiB free
.A julgar pela sua outra pergunta , acho que você encontrou o uso do utilitário Activity Monitor para verificar seu status de memória, certo? Apenas para o registro, está em / Aplicativos / Utilitários / Activity Monitor.app.
fonte
Não existe um equivalente exato distribuído no Mac OS X, mas existem outras maneiras de obter as informações:
system_profiler
- Mostra todas as informações de perfil do sistema do Mac no shellsysctl -a | grep mem
ousysctl hw.memsize
(mem total)fonte
Você pode tentar o comando
allmemory
se desejar uma ferramenta de linha de comando que relate o uso extremamente detalhado da memória.fonte
allmemory
pode ser inesperadamente longa - para mim hoje, mais de quatro minutos por execução, YMMV. Uma corrida deallmemory
forsysdiagnose
pode demorar consideravelmente mais.O exposto acima é um esforço demais para o meu gosto, e pressupõe que você também tenha uma instalação completa ... Se você inicializou a partir de um disco de inicialização do Mac OS X, todas as soluções acima obviamente não funcionarão. .. Basta usar o comando "hostinfo", aqui está a saída do meu MBAir de meados de 2012 executando o Mavericks (10.9.1):
O bom deste comando é que ele vem pré-instalado com o instalador 10.9 também
/usr/bin
, portanto é muito útil,idealmente, se você quer apenas RAM, emita:
Porém, não sei se o hostinfo existe em qualquer sistema operacional anterior ...
fonte
hostinfo
mostra a memória usada ?Isso deve fazer muito bem :)
fonte
Penso que atualmente,
psutil
e seumeminfo.py
script fornece os detalhes mais úteis sobre o uso da memória. Experimentá-lo:A saída que ele produz se parece com isso:
Observe a
Available
linha, que mostra uma estimativa da quantidade de memória realmente disponível para iniciar novos aplicativos , sem trocar.Não conheço nenhum outro utilitário MacOS que ofereça essa estimativa de memória disponível.
Para fins de comparação: Em um sistema Linux, o mesmo tipo de informação é fornecido na
available
coluna na saída das versões atuais defree
:Essa
available
coluna nafree
saída apenas vemMemAvailable
em/proc/meminfo
. E em sistemas que possuem/proc/meminfo
, o psutil também usa isso para estimar a memória disponível.Mas MacOS não tem
/proc/meminfo
, por isso, para estimar a memória disponível, nesse caso, psutil emprega o mesmo algoritmo usado no Linux para calcularMemAvailable
para/proc/meminfo
.fonte
Você pode tentar o
memory_pressure
comando Veja a saída do meu sistema (i5, 4 GB de RAM)fonte
Comandos Bash "free like" para Mac OSX.
Esta é a segunda reedição deste post. No começo, eu tenho dois
-1
. Um porque eu não estava descrevendo em inglês, está corrigido. O outro, porque eu useigawk
(que não faz parte de uma instalação padrão do OS X), também é corrigido, agora usoawk
. O-2
ainda estão lá ;-). Talvez o melhor agora seja testar e avaliar os comandos por si próprios?Revisei minha primeira ideia para criar apenas um comando orientado ao usuário final com uma exibição amigável e altamente configurável; fiz duas:
free-like.sh
um script sempre orientado para "usuário final", com mais precisão, uma exibição "amigável" e configurável, mas com mais cálculos e consumo de recursos,free-like-raw.sh
, um desenvolvedor agora orientado a comando, sysadmin, etc., com menos computação e consumo de recursos, mas também com menos precisão, exibição menos "amigável".Os dados para a memória física são extraídos dos resultados do comando
vm_stat
(que retorna os resultados em tamanho de bloco). A imprecisão resultante da transformação em bytes (number_of_blocks * block_size, o valor padrão dos cálculos) estará entre 0 <o tamanho do bloco. Os dados da memória virtual são obtidos dotop
comando A imprecisão aqui está ligada à unidade de referência dotop
comando: kilo, mega, giga.Os cálculos são feitos com
awk
respeito aos aspectos arredondados (em oposição abc
).awk
também é mais rápido quebc
. Você pode ver o script de teste aqui: http://myblog.robert.sebille.name/article29.html#awk-bcVocê pode visualizar os resultados dos comandos em bytes (padrão), em quilo, mega ou giga, com x casas decimais no caso de free-like.sh e se você solicitar a exibição em mega ou giga.
Os scripts são muito longos para uma postagem, mas você pode encontrá-los neste artigo do meu blog: http://myblog.robert.sebille.name/article29.html
O artigo está em francês, mas exibe um exemplo de exibição para cada comando e sua ajuda integrada (
./free-like.sh -h
e./free-like-raw.sh -h
), em inglês. Esses auxílios descrevem completamente os comandos. O artigo também exibe os códigos.Inglês não é minha língua materna. Se alguém quiser corrigir erros na ajuda integrada, será bem-vindo;).
Sua.
fonte
gawk
que não faz parte de uma instalação padrão do OS X.Isso funciona no meu $ PS1:
https://github.com/vigo/dotfiles-universal/blob/master/prompts/free_memory
(Versão Ruby: https://github.com/vigo/dotfiles-universal/blob/master/prompts%2Ffree_memory.rb )
fonte
vm_stat
mostra em kilobytes.O oneliner abaixo mostra em megabytes:
Devoluções:
fonte
Se você usar o fishshell no osx, junto com o fisher, seu gerenciador de pacotes.
Eu escrevi a seguinte extensão: https://github.com/fisherman/free
É uma refazer completa do comando free para osx. Veja você mesmo
fonte
top ou htop também pode ajudar a resolver o problema.
fonte