Novos 16GB de RAM instalados ainda vejo 15.3 no meu sistema. Por quê?

6

Apenas mudaram de 4 GB para 16 GB de RAM. No entanto, quando olho para a quantidade de memória que tenho, diz 15.3. Eu só estou querendo saber por que minha memória caiu quando eu instalei apenas 16 GBs de RAM.

    
por Geri Sati 09.03.2016 / 00:00

1 resposta

11

Resposta curta

É provavelmente apenas o kernel que usa memória. Em vez de reportar o uso da memória do kernel, o Ubuntu subtrai o total disponível. Isso é simplesmente para informar que a memória do kernel não pode ser liberada na maioria dos casos. Essa memória está sendo usada para coisas que são absolutamente necessárias e, portanto, nunca estarão disponíveis.

Comandos de diagnóstico

Eu não espero que você execute todos estes, mas eu os incluí aqui para referência e integridade. Os mais relevantes são os comandos 3 e 4. Observe também que todos os tamanhos estarão na base 2 (por exemplo, GiB ) e não na base 10 (por exemplo, GB ), apesar das abreviaturas das unidades.

  1. Você pode verificar o tamanho dos seus sticks de memória RAM:

    sudo dmidecode | grep Size | grep MB
    
  2. Você pode verificar quanta RAM está disponível para uso geral com (procure Mem e total ):

    free -h
    
  3. Você pode estimar a quantidade de memória que o kernel está usando:

    cat /proc/meminfo | grep Slab
    
  4. Você pode verificar a memória da placa gráfica "roubada" com:

    dmesg | grep stolen
    
  5. Você pode procurar por memória reservada de hardware específica olhando:

    dmesg | grep e820
    
  6. Você pode testar para ter certeza de que toda a sua memória funciona executando o memtest

Explicação

A explicação mais provável é simplesmente que o espaço extra está sendo usado pela sua placa gráfica ou pelo próprio kernel. Se você não estiver familiarizado, o kernel é a parte de nível mais baixo do sistema operacional, e qualquer memória que esteja usando não estará disponível para você e, portanto, não será reportada como livre. A memória pode ser usada por vários motivos, como as tabelas de memória virtual, E / S mapeadas na memória, processos do kernel, determinados caches, memória gráfica compartilhada, etc.

Exemplo: olhando para o meu laptop

É muito provável que a adição da saída do comando 3 ao seu 15.3GiB resulte em quase exatamente 16GiB . Este foi o caso no meu sistema:

  • RAM instalada: 6GiB
  • Relatado nas configurações do sistema > Detalhes: 5.6GiB
  • Saída de cat /proc/meminfo | grep Slab : 316652 kB
  • Convertido para GiB : 316652/2^20 = 0.3GiB
  • Saída de dmesg | grep stolen : 32768K
  • Convertido para GiB : 32768/2^20 = 0.03GiB
  • Adicionando-os juntos: 5.6 + 0.3 + 0.03 = 5.93GiB

Como a Slab de memória não é abrangente, podemos supor que o kernel está usando os 0.07GiB restantes em locais que não podemos ver, e esse é um resultado muito satisfatório.

Veja também

por TheSchwa 09.03.2016 / 01:53

Tags