GNU/Linux >> Linux Esercitazione >  >> Linux

Perché MemTotal in /proc/meminfo cambia?

Questo non dovrebbe mai cambiare. Potrebbe essere un'indicazione di alcune posizioni difettose all'interno della RAM. Puoi diagnosticare la tua RAM usando Memtest86+.

A parte questo, l'unico altro modo in cui il numero potrebbe cambiare potrebbe essere se stessi analizzando un guest di una macchina virtuale. Forse l'host su cui è in esecuzione il guest VM sta regolando la RAM assegnata al guest.

Modifica n. 1

Ho scovato questo post sul forum che discute la potenziale perdita di memoria da parte dei moduli del kernel che potrebbe portare alla modifica del MemTotal.

estratto da:Re:Come si determina la quantità di memoria di sistema?

Il 30/07/08, Bill McGonigle ha scritto:

Il 30 luglio 2008, alle 10:03, Thomas Charron ha scritto:

MemTotal può cambiare. MemTotal non mostra la memoria utilizzata dai binari del kernel stessi in memoria, tuttavia ci sono situazioni in cui i moduli possono perdere memoria che viene rimossa anche da MemTotal. Non ricordo i dettagli di questo avvenimento, ma so di cosa parla ora Paulis. Beh, questo è solo un bug se definisci MemTotal come la memoria fisica presente in una macchina. Se la vedi come memoria totale disponibile per il kernel, sta funzionando correttamente, giusto?

Sì, e il "bug" è quando quel numero scende, significa che qualcosa perde, ovvero un "nocciolo difettoso". Almeno moduli del kernel potenzialmente 'cattivi' (leggi potenzialmente bacati).


Non mi sentivo a mio agio con un bug nel kernel o in un modulo, così ho scavato più a fondo e ho scoperto... che MemTotal può cambiare regolarmente, verso il basso o verso l'alto. Non è una costante e questo valore è sicuramente modificato dal codice del kernel in molti punti, in varie circostanze.

Per esempio. virtio_balloon kmod può diminuire MemTotal così come aumentarlo di nuovo. Quindi, ovviamente, mm/memory_hotplug.c sta esportando [add|remove]_memory , entrambi utilizzati anche da molti driver.


Linux
  1. In che modo Linux gestisce più separatori di percorsi consecutivi (/home////nomeutente///file)?

  2. Linux – Collegamento di /proc/mnt a /proc/mounts?

  3. Perché /bin/sh punta a /bin/dash e non a /bin/bash??

  4. Perché find -exec mv {} ./target/ + non funziona?

  5. Perché malloc() chiama mmap() e brk() in modo intercambiabile?

/proc/cpuinfo e /proc/meminfo in Linux

Comprendere i file /proc/mounts, /etc/mtab e /proc/partitions

Come scoprire da quale cartella è in esecuzione un processo?

Come funziona /proc/*?

Perché sono necessari < o > per usare /dev/tcp

Come modificare /tmp predefinito in /home/user/tmp