Existem muitas razões possíveis, e é um pouco impossível / inviável investigar o problema daqui sem monitorar completamente o sistema.
Mas aqui vou listar três razões possíveis:
Primeiro
O motivo pode ser diferente devido às tarefas que você tem em seu sistema e às coisas que você está fazendo, pode diferir se você usar qualquer virtualização, se houver processos associados ao fazer snapshots e por meio de alocação de memória COW (Copy-on-right) regras de particionamento que você está executando, E / S de arquivos mapeados na memória, objetos compartilhados que devem ser compartilhados por arquivos executáveis e outros arquivos de objetos compartilhados, links dinâmicos (ligação tardia) e etc.
Além disso, esteja ciente de que nem sempre é possível encontrar sua memória total real adicionando a memória que está sendo usada por todos os processos em execução. Existem muitos aplicativos que parecem estar usando mais memória do que realmente existe na máquina, devido ao objeto compartilhado e outros conceitos relacionados à RAM.
Além disso, a memória livre é toda sobre memória física que não possui dados lógicos mapeados para ela. Sim, devemos estar cientes de que a parte de memória não utilizada tem alguns dados mapeados para ela, mas não no estado ativo e usados por um processo em execução.
BTW, Observe que os sistemas Unix-like querem ter - e mostrar - o mínimo de memória livre possível, nem toda memória livre! Então, pelo que você deve ter adivinhado, eles usam memória que não é ativamente mapeada para processos na máquina em execução para coisas como buffers para várias operações de transferência de E / S e caches.
Segundo
Seu BIOS pode estar com problemas, MAS, como está mostrando a quantidade exata de RAM, podemos dizer que não há nada errado com o BIOS, e o problema é que o kernel não o está usando.
O último
A última coisa que vou listar é, de alguma forma, a primeira coisa que vem à mente de todos, e isso é uma RAM reservada para coisas relacionadas à GPU, especialmente se você tiver uma GPU on-board. Mas como a saída do seu dmesg | grep -C 3 -i e820
não mostra nada errado, então, isso não é problema seu.
É realmente difícil dizer qual é o seu problema, já que não temos um entendimento profundo do seu servidor, mas tudo o que você mencionou na sua pergunta e comentários, e acho que não podemos fazer mais nada aqui.
Eu recomendo que você ⟼ Faça algum teste, por exemplo, faça o download de memtest86+
executando yum install memtest86+
e tente testar sua memória e ver qual é o seu código de saída. E monitore a memória do sistema por um tempo, usando comandos como vmstat -a
, vmstat -s
, cat /proc/meminfo
, top
, htop
, sar -r
etc. e veja se você vê algo estranho.
Se a recomendação acima não ajudou ↴
Duas outras opções finais: Primeiro, reposicione seu RAM, esse suporte da Lenovo pode ajudá-lo nisso. Em segundo lugar, reconstrua e instale um novo kernel.
Espero que isso possa ajudar.