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?