O problema que estou enfrentando é que, em um servidor (e em outras caixas OSX), temos 4 GB de RAM, mas descobrimos que o OSX usa apenas 40-60% da RAM disponível, além de ter uma troca de 6-7 GB. O servidor está executando o Apache e o MySQL enquanto as outras máquinas são desktops.
Comparei seu uso com caixas semelhantes do Linux (hardware e software) e constatei que o Linux normalmente usa 80-90% da RAM e possui um arquivo de troca muito menor (2-3 GB). Os servidores Linux também costumam rodar muito mais rápido.
Existe uma maneira de forçar o OSX a usar mais ou a maior parte da RAM antes de usar um arquivo de troca de disco?
No Windows, você pode realmente desativar a troca completamente. Existe algo semelhante para o OSX?
mac-osx
mac-osx-server
Darryl Hein
fonte
fonte
du -sh /var/vm
- o que significa que pode ser artificialmente alto se houver uma imagem do sono (mais frequentemente vista em laptops) presente. Existem várias ferramentas disponíveis que podem ajudá-lo a determinar se a memória está causando lentidão:vm_stat
- particularmente você está interessado no valor das paginações - se aumentar um pouco, então você saberá que está trocando bastante. Para obter mais informações sobre como a Apple gerencia sua memória: developer.apple.com/documentation/Performance/Conceptual/…Respostas:
O mais básico de resposta? Não. O sistema operacional lida com o gerenciamento de memória para o usuário - fornecendo ao processo a quantidade de memória necessária e solicitando e não fornece muito em termos de poder modificar o desempenho do sistema. Não ajuda muito tentar descobrir se a utilização da memória faz parte da equação do motivo pelo qual os servidores Linux estão superando os servidores Mac.
Devido à falta de "hackability" no sistema de memória virtual, suas melhores opções são avaliar o desempenho da memória virtual para ver se é realmente o motivo pelo qual você está tendo problemas de desempenho - o mais básico é usá-lo
vm_stat
ou segui-lo ao vivo usandovm_stat [number of seconds]
para ver quantas páginas estão ocorrendo. Mover páginas não utilizadas da RAM para o disco rígido tem um custo muito mais baixo do que recuperar as páginas do disco rígido para a RAM. Uma página nos termos do OS X refere-se a 4kb de dados.Além disso, processos de 32 bits (por exemplo, Illustrator) não podem acessar mais de 4 GB; portanto, é teoricamente possível ter 2 GB livres e um processo ficar sem memória se você tiver 6 GB instalados.
Tanto na área de trabalho quanto nos servidores, eu executaria
vm_stat 2
e verificaria a última coluna - especialmente quando ocorrer um atraso de vários segundos ao mudar para o Illustrator.Para descobrir qual o tamanho real da troca, você pode verificar o tamanho da troca no Activity Monitor ou executar
du -shc /var/vm/swap* | tail -n 1
.O uso
du -sh /var/vm
tem uma ressalva: em laptops que têm o modo de hibernação (qualquer coisa nos últimos 4 anos ou mais recentes), pode haversleepimage
aproximadamente o tamanho de quanta memória você instalou.Jargão de memória do Mac OS X:
Com fio : refere-se ao código do kernel e tal. Memória que nunca deve ser removida da RAM. Também conhecida como memória residente.
Shared : Memória compartilhada entre dois ou mais processos. Ambos os processos mostrariam essa quantidade de memória, de modo que pode ser um pouco enganador quanto à quantidade de memória realmente usada.
Real : esse é o uso de memória "real" para um aplicativo, conforme relatado por task_info () - uma contagem aproximada do número de páginas físicas que o processo atual possui. (RSIZE)
Privada : é a memória que um processo está usando por si só e usada na memória residente. (RPRVT)
Virtual : a quantidade total de espaço de endereço no processo mapeado para qualquer coisa - seja um espaço arbitrariamente grande para variáveis ou qualquer coisa - não equivale ao uso real da VM. (VSIZE)
Ativo : Memória atualmente rotulada como ativa e é usada RAM.
Inativo : "A memória inativa não está mais sendo usada e foi armazenada em cache no disco. Ela permanecerá na RAM até que outro aplicativo precise do espaço. Deixar essas informações na RAM é vantajosa se você (ou um cliente do seu computador) voltar mais tarde. " - Ajuda do Mac OS X
Livre : a quantidade de RAM realmente disponível sem nenhum dado.
A melhor documentação que eu conheço (e consegui encontrar na pesquisa de acompanhamento) é o artigo de gerenciamento de memória da Apple no site do desenvolvedor.
Outras fontes que valem a pena: lista de discussão de Darwin-dev: [ 1 ], [ 2 ] e um artigo antigo no MacOSXHints . Além disso, Mike Ash publicou uma introdução de um bom leigo em seu blog
Pode ser possível (eu ainda não tentei) desativar o sistema de memória virtual executando
sudo launchctl unload /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
e reiniciando para que dynamic_pager (o programa que realmente faz a alocação de memória virtual) não seja iniciado. No entanto, como o sistema operacional pressupõe que ele possui memória virtual, você pode se deparar com problemas muito, muito rapidamente. Para carregá-lo novamente, executesudo launchctl load /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
(se necessário no modo de usuário único)fonte