Cela ne devrait jamais changer. Cela pourrait être une indication de certains emplacements défectueux dans la RAM. Vous pouvez diagnostiquer votre RAM en utilisant Memtest86+.
En dehors de cela, la seule autre façon dont ce nombre changerait pourrait être si vous analysiez un invité de machine virtuelle. Peut-être que l'hôte sur lequel l'invité VM s'exécute ajuste la RAM allouée à l'invité.
Modifier #1
J'ai déterré ce message de forum qui traite de la fuite potentielle de mémoire par les modules du noyau, ce qui pourrait entraîner le changement de MemTotal.
extrait de :Re :Comment déterminez-vous la quantité de mémoire système ?
Le 30/07/08, Bill McGonigle a écrit :
Le 30 juillet 2008 à 10h03, Thomas Charron écrit :
MemTotal peut changer. MemTotal n'affiche pas la mémoire utilisée par les binaires du noyau eux-mêmes en mémoire, mais il existe des situations où les modules peuvent perdre de la mémoire qui est également supprimée de MemTotal. Je ne me souviens pas des détails de cet événement, mais je sais de quoi Paul parle maintenant. Eh bien, ce n'est qu'un bogue si vous définissez MemTotal comme la mémoire physique présente dans une machine. Si vous le considérez comme la mémoire totale disponible pour le noyau, il fonctionne correctement, n'est-ce pas ?
Oui, et le "bogue" est que lorsque ce nombre diminue, cela signifie que quelque chose fuit, c'est-à-dire un "mauvais noyau". Au moins des modules de noyau potentiellement "mauvais" (lire potentiellement bogués).
Je n'étais pas à l'aise d'avoir un bogue dans le noyau ou un module, alors j'ai creusé plus loin et j'ai découvert... que MemTotal
peut changer régulièrement, vers le bas ou vers le haut. Ce n'est pas une constante et cette valeur est définitivement modifiée par le code du noyau à de nombreux endroits, dans diverses circonstances.
Par exemple. virtio_balloon kmod peut diminuer MemTotal
ainsi que l'augmenter à nouveau. Alors bien sûr, mm/memory_hotplug.c exporte [add|remove]_memory
, qui sont également utilisés par de nombreux conducteurs.