Wie kann ich den gesamten physikalischen Speicher (RAM) meiner Linux-Box herausfinden, der von einem Shell-Skript analysiert werden kann?
Ich Schreibe ein shell-Skript, um herauszufinden, den gesamten physischen Speicher in einigen RHEL linux-Boxen.
Zunächst möchte ich betonen, dass ich bin interessiert in der gesamten physischen Speicher erkannt wird vom kernel nicht nur die verfügbaren Speicher. Daher, bitte, vermeiden Sie Antworten, die darauf hindeutet, zu Lesen /proc/meminfooder verwenden Sie die freitop oder sar Befehle -- In allen diesen Fällen ist Ihre "Speicher insgesamt" Werte bedeuten "verfügbaren Speicher".
Der erste Gedanke war, Lesen Sie den boot-kernel-Meldungen:
Memory: 61861540k/63438844k available (2577k kernel code, 1042516k reserved, 1305k data, 212k init)
Aber in einigen linux-Boxen, die durch die Nutzung der EMC2 - PowerPath-software und deren überschwemmungen - boot-Meldungen in das kernel startup, dass sich nützliche boot-kernel-message ist nicht verfügbar, auch nicht in den /var/log/dmesg Datei.
Die zweite option war die dmidecode Befehl (ich bin gewarnt vor den möglichen mismatch von kernel erkannt RAM und real RAM, durch die Einschränkungen von einigen älteren Kernel und Architekturen). Die option - memory vereinfacht das Skript, aber ich merkte, dass ältere Versionen dieses Befehls hat keine - memory option.
Meine Letzte chance war die getconf Befehl. Es meldet die Speicher-Größe der Seite, aber nicht die Anzahl der physischen Seiten -- die _PHYS_PAGES system-variable zu sein scheint, den verfügbaren physischen Seiten, die nicht den gesamten physischen Seiten.
# getconf -a | grep SEITEN PAGESIZE 4096 _AVPHYS_PAGES 1049978 _PHYS_PAGES 15466409
Meine Frage: gibt es einen anderen Weg, um die Gesamtgröße des physischen Speichers, geeignet, um analysiert zu werden, indem Sie ein shell-Skript aus?
InformationsquelleAutor der Frage Jdamian | 2013-12-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie interessiert sind, in der physischen RAM, verwenden Sie den Befehl
dmidecode
. Es gibt Ihnen eine viel mehr Informationen, als nur das, aber die vom Anwendungsfall abhängig sind, möchten Sie vielleicht auch wissen, ob die 8G in das system kommen, aus 2 x 4 GB-sticks oder 4 x 2 GB-sticks.InformationsquelleAutor der Antwort
Haben Sie versucht
cat /proc/meminfo
? Sie können dann grep heraus, was Sie wollen, MemTotal z.B.Aktualisiert Beispiel (btw. danke, Masta):
InformationsquelleAutor der Antwort Robert
cat /proc/meminfo | grep MemTotal
oder kostenlos gibt Ihnen die genaue Menge an RAM Ihr server hat. Das ist nicht "freier Speicher".Ich denke mal dein Problem kommt, wenn Sie eine VM, und Sie möchten berechnen Sie die vollständige Menge an Speicher, veranstaltet von der hypervisor-aber Sie haben, um sich in den hypervisor in diesem Fall.
entspricht
InformationsquelleAutor der Antwort Cyril
Fügen Sie die letzten 2 Einträge von
/proc/meminfo
Sie geben Sie die genaue Speicher auf dem host.Beispiel:
10240 + 4184064 = 4194304 kB = 4096 MB.
InformationsquelleAutor der Antwort Sandip
Ein weiterer nützlicher Befehl:
vmstat -s | grep memory
Beispiel für die Ausgabe auf meinem Rechner ist:
ein weiterer nützlicher Befehl zum abrufen von speicherinformationen ist:
free
Beispielausgabe:
Einer Beobachtung ist hier, dass der Befehl
free
gibt Informationen über swap-space auch.Der folgende link kann nützlich sein für Sie:
http://www.linuxnix.com/find-ram-details-in-linuxunix/
InformationsquelleAutor der Antwort Yogesh Jilhawar
So haben Sie den gesamten Speicher in Ihrem system in menschenlesbarem format und automatisch skaliert, um die entsprechende Einheit ( z.B. bytes, KB, MB oder GB).
InformationsquelleAutor der Antwort JayEek
Addition aller oben genannten Werte angezeigt, nach "Größe:" geben genaue Summe physikalische Größe alle RAM-sticks in der server.
InformationsquelleAutor der Antwort Raghu Ni
Gesamten Speicher im
Mb
:oder:
InformationsquelleAutor der Antwort Eduardo Cuomo
Dies sind die Möglichkeiten :
1. /proc/meminfo
Schreiben Sie einen code oder Skript zu Parsen.
2. Verwenden sysconf von unten mit Makros
sysconf (_SC_PHYS_PAGES) * sysconf (_SC_PAGESIZE);
3. Durch die Verwendung von sysinfo Systemcall
int sysinfo(struct sysinfo *info);
struct sysinfo {
.
InformationsquelleAutor der Antwort Sandy
InformationsquelleAutor der Antwort Prime Lee
Finde ich
htop
ein nützliches Werkzeug.dann
geben die Informationen, die Sie benötigen.
InformationsquelleAutor der Antwort Sathyam