Por que o Linux só vê 3832MB dos meus 4096MB de RAM?

1

Estou configurando muitas VMs RedHat de 64 bits (VMware vSphere) para o departamento de desenvolvimento da minha empresa. A maioria deles começa com 4096MB de RAM, mas o Linux parece reconhecer apenas 3832MB. Alguém pode me dizer por que isso é?

    
por dhojgaard 30.07.2014 / 14:10

2 respostas

3

Existem várias razões pelas quais uma parte da RAM não seria usada pelo Linux:

  • Se o Linux o detectar como pertencente a um periférico de hardware. A maioria dos computadores precisa de RAM para o monitor e, portanto, reserva alguma RAM para a placa gráfica. Também é possível que a placa gráfica contenha sua própria RAM; como as placas gráficas têm requisitos de memória relativamente altos, elas tendem a não ser empacotadas com RAM própria (mas há exceções). Pelo menos o VMware e o VirtualBox contam a memória de vídeo como parte da memória alocada para uma máquina virtual. O tamanho da memória de vídeo é uma configuração na configuração da VM.
  • O intervalo de endereços de memória que o Linux usará pode ser restrito com os parâmetros mem=… ad memmap=… na linha de comando do kernel.
  • Às vezes, o kernel pode não conseguir usar parte da memória. Como as interfaces de RAM são bastante padrão, isso quase nunca acontece, exceto quando você executa um kernel de 32 bits não-LPAE e tem 4 GB ou mais de RAM.
  • Com a memória ECC, alguns intervalos nos quais um erro foi detectado podem ser marcados como inutilizáveis.

Na prática, na maior parte do tempo, a memória que o Linux pode usar é a RAM disponível menos a memória de vídeo (e possivelmente a memória usada por outros periféricos de hardware). O próprio Linux divide a memória em duas partes: a memória usada pelo kernel e a memória disponível para os processos. A maioria das ferramentas, como free , reporta como o total da memória disponível para os processos.

Portanto, se free mostrar um total de 3832MB e você tiver 4096MB de RAM nessa máquina (física ou virtual), isso significa que

4096MB - 3832MB = video memory (+ other hardware memory) + kernel memory

264MB para hardware e sons de kernel plausíveis. Você tem 3832MB disponíveis para aplicativos porque o restante é usado pelo hardware e pelo kernel.

    
por 31.07.2014 / 03:48
0

No cliente vSphere, clique em "Editar configurações" na sua máquina virtual. Na guia "Hardware", selecione "Placa de vídeo". Você deve ver a memória de vídeo para a direita. O meu padrão é 8MB.

    
por 30.07.2014 / 15:23