GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Warum ändert sich MemTotal in /proc/meminfo?

Das sollte sich nie ändern. Es könnte ein Hinweis auf einige fehlerhafte Stellen im RAM sein. Sie können Ihren Arbeitsspeicher mit Memtest86+ diagnostizieren.

Abgesehen davon könnte sich diese Zahl möglicherweise nur ändern, wenn Sie einen Gast einer virtuellen Maschine analysieren. Möglicherweise passt der Host, auf dem der VM-Gast ausgeführt wird, den dem Gast zugewiesenen Arbeitsspeicher an.

Änderung Nr. 1

Ich habe diesen Forenbeitrag ausgegraben, in dem das potenzielle Speicherleck durch Kernel-Module diskutiert wird, was zu einer Änderung von MemTotal führen könnte.

Auszug aus:Betreff:Wie bestimmen Sie die Größe des Systemspeichers?

Am 30.07.08 schrieb Bill McGonigle:

Am 30. Juli 2008 um 10:03 schrieb Thomas Charron:

MemTotal kann sich ändern. MemTotal zeigt keinen Speicher an, der von den Kernel-Binärdateien selbst im Speicher verwendet wird, es gibt jedoch Situationen, in denen Module Speicher verlieren können, was ebenfalls aus MemTotal entfernt wird. Ich erinnere mich nicht an die Einzelheiten dieses Vorgangs, aber ich weiß, wovon Paulis jetzt spricht. Nun, das ist nur ein Fehler, wenn Sie MemTotal als den physischen Speicher definieren, der in einer Maschine vorhanden ist. Wenn Sie es als den gesamten für den Kernel verfügbaren Speicher betrachten, funktioniert es richtig, oder?

Ja, und der „Bug“ ist, wenn diese Zahl sinkt, bedeutet das, dass etwas leckt, auch bekannt als „schlechter Kernel“. Zumindest potentiell 'schlechte' (sprich potentiell fehlerhafte) Kernel-Module.


Ich fühlte mich nicht wohl dabei, einen Fehler im Kernel oder einem Modul zu haben, also habe ich weiter gegraben und herausgefunden ... dass MemTotal kann sich regelmäßig ändern, nach unten oder nach oben. Es ist keine Konstante und dieser Wert wird definitiv an vielen Stellen unter verschiedenen Umständen durch den Kernel-Code modifiziert.

Z.B. virtio_balloon kmod kann MemTotal verringern sowie wieder zurück erhöhen. Dann exportiert mm/memory_hotplug.c natürlich [add|remove]_memory , die beide auch von vielen Fahrern verwendet werden.


Linux
  1. Wie behandelt Linux mehrere aufeinanderfolgende Pfadtrennzeichen (/home////username///file)?

  2. Wie ändere ich Mount-Punkte?

  3. Grundlegendes zur /proc/meminfo-Datei (Analyse der Speicherauslastung in Linux)

  4. Warum funktioniert find -exec mv {} ./target/ + nicht?

  5. /proc/[pid]/pagemaps und /proc/[pid]/maps | Linux

Warum zeigt /bin/sh auf /bin/dash und nicht auf /bin/bash?

/proc/cpuinfo- und /proc/meminfo-Dateien unter Linux

Die Dateien /proc/mounts, /etc/mtab und /proc/partitions verstehen

Wann sollte ich /dev/shm/ verwenden und wann sollte ich /tmp/?

Wie funktioniert /proc/*?

So ändern Sie das Standard-/tmp in /home/user/tmp