Wie kann ich den physischen Gesamtspeicher (RAM) meiner Linux-Box ermitteln, der für die Analyse durch ein Shell-Skript geeignet ist?

Ich schreibe ein Shell-Skript, um den gesamten physischen Speicher in einigen RHEL-Linux-Boxen herauszufinden.

Zunächst möchte ich betonen, dass mich das interessiertGesamter physischer Speicher Vom Kernel erkannt, nicht nur vomverfügbare Erinnerung. Vermeiden Sie daher bitte Antworten, die Sie lesen möchten/ proc / meminfo oder um das zu benutzenkostenlos, oben odersar Befehle - In all diesen Fällen "Gesamtspeicher"Werte bedeuten"verfügbare Erinnerung" Einsen.

Der erste Gedanke war, die Boot-Kernel-Nachrichten zu lesen:

Memory: 61861540k/63438844k available (2577k kernel code, 1042516k reserved, 1305k data, 212k init)

Aber in einigen Linux-Boxen, aufgrund der Verwendung von EMC2 PowerPath-Software und seinerÜberschwemmung Startmeldungen im Kernel-Startup, die nützliche Boot-Kernel-Meldung ist nicht verfügbar, auch nicht in der/ var / log / dmesg Datei.

Die zweite Option war diedmidecode Befehl (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--Erinnerung vereinfacht das Skript, aber ich habe festgestellt, dass ältere Versionen dieses Befehls keine haben--Erinnerung Möglichkeit.

Meine letzte Chance war diegetconf Befehl. Es gibt die Speicherseitengröße an, jedoch nicht die Gesamtzahl der physischen Seiten - die_PHYS_PAGES Die Systemvariable scheint die verfügbaren physischen Seiten zu sein, nicht die gesamten physischen Seiten.

# getconf -a | grep PAGES
PAGESIZE                           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?

Antworten auf die Frage(11)

Ihre Antwort auf die Frage