Por que o OS X usa memória virtual quando ainda tenho RAM livre?

9

Eu tenho este incrível MacBook Pro com 8 GB de RAM. Quando eu abro o Activity Monitor, parece que tenho bastante RAM disponível, mas meu computador parece preferir usar a memória virtual para muitas coisas. Por que é isso? Existe uma maneira de mudá-lo? Seria sensato?

Além disso, parece que tenho 7 GB de pageins e sem pageouts. Isso é normal? São muitos dados.

DCIndieDev
fonte
11
Veja esta pergunta . Quando diz memória virtual, isso não significa que está usando seu disco como RAM (o tamanho da troca). Nenhuma página indica também que não está armazenando RAM no disco.
ughoavgfhw
As entradas e saídas de página estão relacionadas ao SWAP e NOT VM
Alexander - Reinstate Monica

Respostas:

8

Você parece entender mal a memória virtual. A memória virtual é simplesmente um mecanismo que o sistema operacional usa para fazer parecer que cada programa tem seu próprio espaço de endereço extremamente grande (4 GB em 32 bits, 16 EB em 64 bits). Ele também fornece uma maneira para o sistema operacional usar paginação, enquanto faz parecer (para aplicativos) que apenas a RAM real está sendo usada. Em resumo, é apenas uma abstração, e as estatísticas "Memória virtual" no Activity Monitor não fazem sentido (para 99% dos casos de uso). Você não deve se preocupar com o número que aparece lá, porque isso não tem nada a ver com o uso de RAM "real" ou não.

Sobre suas estatísticas de paginação: você não forneceu detalhes sobre como usar seu sistema, por isso é difícil saber se algo está errado ou não, mas eu não ficaria alarmado com um valor de 7 GB. Observe também que os valores relatados são entradas / saídas de página desde a inicialização; portanto, se você mantiver seu laptop ligado o tempo todo como eu, não é de admirar que o número se acumule depois de um tempo.

houbysoft
fonte
O problema ocorre quando você começa a obter muitas saídas de página. As entradas de página são de baixo custo quando há memória física livre. As saídas de página são causadas pelo sistema operacional que precisa paginar alguma coisa, mas não possui memória física livre e deve trocar alguma coisa primeiro. Com 8 GB de RAM, isso não é trivial.
Alesplin
Um bom ponto de partida para medir estatísticas de paginação ao vivo vm_statpode ser encontrado nesta resposta
bmike