Ich schreibe ein Shell-Skript, um den gesamten physischen Speicher in einigen RHEL-Linux-Boxen herauszufinden.
Zunächst möchte ich betonen, dass mich der gesamte vom Kernel erkannte physische Speicher interessiert , nicht nur der verfügbare Speicher . Daher bitte, was darauf hindeutet , vermeiden Antworten zu lesen / proc / meminfo oder zu verwenden , frei , oben oder sar Befehle - In allen diesen Fällen ihre „ Gesamtspeicher “ Werte „bedeuten verfügbare Speicher “ sind.
Der erste Gedanke war, die Boot-Kernel-Nachrichten zu lesen:
Memory: 61861540k/63438844k available (2577k kernel code, 1042516k reserved, 1305k data, 212k init)
In einigen Linux-Boxen ist diese nützliche Boot-Kernel-Nachricht jedoch aufgrund der Verwendung der PowerPath-Software von EMC2 und ihrer überfluteten Startmeldungen beim Kernel-Start nicht verfügbar, auch nicht in der Datei / var / log / dmesg .
Die zweite Option war der Befehl dmidecode (ich werde vor der möglichen Nichtübereinstimmung von Kernel-erkanntem RAM und echtem RAM aufgrund der Einschränkungen einiger älterer Kernel und Architekturen gewarnt). Die Option --memory vereinfacht das Skript, aber ich habe festgestellt, dass ältere Versionen dieses Befehls keine Option --memory haben .
Meine letzte Chance war der Befehl getconf . Es gibt die Größe der Speicherseite an, jedoch nicht die Gesamtzahl der physischen Seiten. Die Systemvariable _PHYS_PAGES scheint die verfügbaren physischen Seiten zu sein, nicht die Gesamtzahl der physischen Seiten.
# getconf -a | grep SEITEN SEITENGRÖSSE 4096 _AVPHYS_PAGES 1049978 _PHYS_PAGES 15466409
Meine Frage: Gibt es eine andere Möglichkeit, die Gesamtmenge des physischen Speichers abzurufen, die von einem Shell-Skript analysiert werden kann?