So erhalten Sie einen guten Überblick über die RAM-Nutzung

So erhalten Sie einen guten Überblick über die RAM-Nutzung

Ich habe Ubuntu 14.10 auf einem Server installiert. Die Hauptaufgabe des Servers besteht darin, eine MongoDB-Installation zusammen mit mehreren NodeJS-Anwendungen auszuführen. Die NodeJS-Anwendungen werden kontinuierlich ausgeführt und akzeptieren Anfragen von außen.

Hin und wieder kommen große Anfragen herein, die dazu führen, dass einige NodeJS-Anwendungen für kurze Zeit viel RAM verwenden. Ich habe versucht, dies zu überwachen, bin mir aber nicht sicher, was ich aus meinen Erkenntnissen machen soll.

Bisher habe ich zwei Befehle verwendet, um Einblicke in die RAM-Nutzung zu erhalten. Diese sind

free -m

Und

sudo htop

Das erste zeigt Folgendes:

                        total       used       free     shared    buffers     cached                                           
Mem:                     3442       3158       283          6        111       1203                                           
-/+ buffers/cache:                  1842       1599                                                                         
Swap:                    0          0          0    

Wenn ich mir das anschaue, würde ich sagen, dass etwa 280 MB RAM frei sind. Das scheint nicht viel zu sein.

htop sagt mir folgendes:

  1  [|||                                         0.8%]     Tasks: 61, 129 thr; 2 running
  2  [|||                                         1.0%]     Load average: 1.16 1.15 0.93
  Mem[|||||||||||||||||||||||||||||||||||||1979/3442MB]     Uptime: 29 days, 00:23:31
  Swp[                                           0/0MB]   

Ich weiß nicht wirklich, wie ich das lesen soll. Kann mir hier jemand weiterhelfen?

Ich denke, meine Frage läuft letztlich auf Folgendes hinaus:

  • Wie kann ich einen Einblick darüber erhalten, wie viel RAM verfügbar ist?
  • Wann ist der RAM-Speicher zu wenig? Sind 300 MB zu wenig? Gefährlich wenig?

Antwort1

Kurz zusammengefasst: Solange die -/+ buffers/cacheZeile genügend freien Speicher anzeigt, müssen Sie sich keine Sorgen machen. Wenn nur wenig freier Speicher angezeigt wird und Sie ständig swapauf die Festplatte zugreifen müssen, müssen Sie sich Sorgen machen.

Erläuterung:

Sie sind mit Ihrem aktuellen RAM-Nutzungsszenario zufrieden. Sehen wir uns die Ausgabe an, um free -mes aufzuschlüsseln:

Alle Spalten free -msind selbsterklärend. Wichtig ist, dass Sie nicht beunruhigt sein müssen, wenn die Speichernutzung hoch ist, ohne die Menge des zwischengespeicherten und gepufferten Speichers zu sehen.

Aus der Ausgabe geht hervor, dass Sie 3158 MB Ihres 3442 MB großen RAM verwendet haben. Eine einfache Subtraktion würde ergeben, dass Sie nur 283 MB frei haben, die Sie neuen Programmen zuweisen können. Das ist nicht richtig. Sie müssen sich auch die Spalten cachedund ansehen . Dort wird die Menge der im RAM zwischengespeicherten Daten auf der Festplatte angezeigt, um schneller auf die häufig verwendeten Dateien zugreifen zu können, und die Menge der Daten, die auf die Festplatte geschrieben werden sollen.bufferscachedbuffered

Wie Sie wissen, ist der Festplattenzugriff viel langsamer als der RAM. Um die Leistung zu verbessern, ist es daher sinnvoll, einige Festplattendaten im RAM zu speichern. Sie haben 1203 MB zwischengespeicherte und 111 MB gepufferte Daten. Es ist gut, dass Ihr Speicher diese Menge zwischenspeichert, ohne diese Menge RAM ungenutzt zu lassen. Dadurch wird Ihre Leistung erheblich verbessert.

Um die tatsächliche Menge an RAM zu ermitteln, die ohne Zwischenspeicherung/Pufferung verwendet wird, sehen Sie sich die -/+ buffers/cache:Zeile an. Dieses Ergebnis wird angezeigt, wenn die zwischengespeicherte/gepufferte Menge abgezogen wird. Wie Sie sehen, haben Sie 1599 MB frei, also scheint in diesem Zustand alles in Ordnung zu sein. Wenn Sie sehen, dass die Werte in dieser Zeile niedrig sind, sollten Sie sich Sorgen machen und einen Blick auf die RAM-Nutzung werfen.

Beachten Sie auch, dass, wenn ein neues Programm gestartet werden soll und nach dem Zwischenspeichern nicht genügend Speicher vorhanden ist, die älteren Caches automatisch gelöscht werden, um Platz für das neue Programm zu schaffen. Solange die tatsächliche Speichernutzung nicht hoch ist und Sie kontinuierlich auf die Festplatte ausgelagert werden, ist es gut, eine beträchtliche Menge im Cache zu haben, da dies Ihren Speicher effizient „nutzt“.

Antwort2

.bashrcheemayl hat bereits einen Großteil der Informationen zum tatsächlich verfügbaren Speicher abgedeckt. Mein Beitrag hier besteht lediglich aus ein paar Einzeilern, die Sie als Alias ​​hinzufügen können, um einen schnellen Überblick über die tatsächliche Nutzung zu erhalten:

free -h | awk '/free/ {getline; x=$2; getline; print "Used "$3 " Out of " x }'

Und Beispielausgabe:

$ free -h | awk '/free/ {getline; x=$2; getline; print "Used "$3 " Out of " x  }'                                                                 
Used 1.2G Out of 5.6G

Wenn Sie an einer eingehenderen Untersuchung des Speichers interessiert sind, verwenden Sie cat /proc/meminfo, das eine ganze Menge Informationen auflistet, unddieser Blogwird Ihnen helfen zu verstehen, wie freeder Befehl Dinge aus dieser Datei berechnet.

verwandte Informationen