GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Analyse des freien Befehls:Was der Linux-Systemadministrator wissen muss

free ist ein beliebter Befehl, der von Systemadministratoren auf Unix/Linux-Plattformen verwendet wird. Es ist ein leistungsstarkes Tool, das einen Einblick in die Speichernutzung in einem für Menschen lesbaren Format gibt.

Der man Seite für diesen Befehl besagt, dass free zeigt die Gesamtmenge an freiem und verwendetem Speicher auf dem System an, einschließlich physischem und Auslagerungsspeicher, sowie die vom Kernel verwendeten Puffer und Caches. Die Informationen werden durch Parsen von /proc/meminfo gesammelt .

Wie jeder andere Befehl free wurde im Laufe der Zeit überarbeitet, um seine Ausgabe aussagekräftig und genau für die Entscheidungsfindung zu machen. In Red Hat Enterprise Linux (RHEL) 6 unterscheidet sich die Ausgabe etwas von der von RHEL 7 und 8. In all diesen Versionen gibt es jedoch Schlüsselparameter, die sich nicht ändern.

Geben Sie unter RHEL 6 free -h ein (Ich habe den -h verwendet Option für menschenlesbares Format) zeigt eine Ausgabe ähnlich der folgenden:

[root@srv ~]# free -h
             total       used       free     shared    buffers     cached
Mem:           94G        44G        49G       161M       993M       1.3G
-/+ buffers/cache:        42G        52G
Swap:          15G         0B        15G

(Abbildung 1)

RHEL 7/8 zeigt ähnliche Informationen wie die folgenden an:


[root@server1 ~]# free -h
               total        used        free      shared  buff/cache   available
Mem:            15G        751M        1.2G        272M         13G         14G
Swap:            0B          0B          0B

(Abbildung 2)

RHEL 8 hat eine ähnliche Ausgabe wie unten:

[root@tiger ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:          819Mi       164Mi       146Mi        25Mi       509Mi       491Mi
Swap:            0B          0B          0B
(Figure 3)


Um die obige Ausgabe besser lesbar zu machen, bietet der Befehl verschiedene Optionen:
free -b , -k , -m , -g :Zeigt die Speichermenge in Byte, Kilobyte, Megabyte,  an Gigabyte bzw. Sie können auch free -h verwenden um die Ausgabe in einer für Menschen lesbaren Ausgabe anzuzeigen. Bitte führen Sie free --help aus für weitere Informationen zu den Optionen.

Die verschiedenen Spalten, die oben von den verschiedenen Versionen angezeigt werden, versuchen den gesamten, verwendeten, freien, gemeinsam genutzten Speicher zu identifizieren. Es versucht auch, den im Cache und in den Puffern gehaltenen Speicher anzuzeigen.

Wie bei den meisten Befehlen müssen jedoch die relevanten Spalten überprüft werden, die für den Systemadministrator bei der Haushaltsführung oder Fehlerbehebung von Interesse sein können Probleme werden unten erläutert.

Red Hat Enterprise Linux 6

Im Fall von RHEL 6 sollte der Fokus auf den -/+ Puffern/Cache liegen Spalte.

In Abbildung 1 oben beträgt die Gesamtzahl 94 GB, belegt 44 GB und frei 49 GB. Dieses System ist ziemlich ausgelastet, aber der verwendete RAM scheint hoch zu sein. Dies sollte keine großen Bedenken hervorrufen, aber der Administrator muss sich die -/+ Puffer/Cache ansehen Säule. Die -/+ Puffer/Cache zeigt belegten Speicher als 42 GB und freien Speicher als 52 GB an. Dies bedeutet, dass die tatsächlich verwendete RAM-Größe 42 GB und nicht 44 GB beträgt. Der Wert 44 GB beinhaltet auch den Cache. Ein Blick auf die gebrauchten Wert ohne Berücksichtigung des Cache beeinflusst Ihre Interpretation der Systemleistung.

Die Puffer und zwischengespeicherten Spalten werden unten erklärt:

  • buffers:Speicher, der von Kernelpuffern verwendet wird
  • cached:Speicherplatz belegt durch "Page Cache."

Cache-Seiten sind nichts anderes als die Daten/Dateien, die in den RAM kopiert werden, wenn der Kernel Lese-/Schreiboperationen auf einer Festplatte ausführt. Der Grund für das Zwischenspeichern dieser Seiten liegt in der E/A-Leistung. Der Kernel hält diese Dateien also im RAM und gibt sie frei, wann immer sie nicht benötigt werden oder wann immer Speicherplatz von einem neuen Prozess/Befehl angefordert wird, der bereitgestellt wird, wenn kein freier Platz im RAM verfügbar ist.

Red Hat Enterprise Linux 7/8

Bei RHEL 7/8 sollte der Fokus auf den verfügbaren liegen Säule. In RHEL 7/8 die -/+ Puffer/Cache wurde entfernt und durch die vorhandene ersetzt Säule. Der Puffer und zwischenspeichern wurden zu buff/cache zusammengefasst und haben dieselbe Bedeutung wie oben erläutert. Die verfügbare Spalte schätzt, wie viel Speicher zum Starten neuer Anwendungen ohne Auslagerung verfügbar ist.

In Abbildung 2 oben beträgt der installierte Arbeitsspeicher insgesamt 15 GB, der verwendete 751 MB und der freie 1,2 GB. Unter Verwendung der gleichen Argumentation wie bei RHEL 6, ein einfacher Blick auf die used Wert könnte zu falschen Schlussfolgerungen führen. Die verwendete -Spalte sollte auch mit Blick auf die Cache-Spalte verstanden werden. Es gibt viel Caching mit den verfügbaren Wert von 14 GB, was sehr hoch ist und fast dem gesamten Arbeitsspeicher entspricht.

Wann sollte sich der Systemadministrator Sorgen machen?

Ein gesundes System mit mehr als genug Arbeitsspeicher zeigt nach einiger Zeit das folgende erwartete und harmlose Verhalten:

  • freier Speicher ist nahe 0 oder sehr klein
  • verbrauchter Speicher ist fast vollständig
  • verfügbarer Speicher (oder freier -/+ Puffer/Cache) ist größer im Verhältnis zum Gesamtspeicher
  • Austauschwert ändert sich nicht

Der Systemadministrator muss sich jedoch Sorgen machen, wenn es Anzeichen gibt, die auf eine Situation mit echtem Speichermangel hindeuten. Unten sind einige dieser Zeichen:

  • verfügbarer Arbeitsspeicher (oder freie -/+ Puffer/Cache) ist nahe Null oder sehr klein
  • Auslagerungswerte beginnen zu steigen oder zu schwanken, da es keine freien Speicherseiten gibt, die das System verwenden kann, und es daher auf die Verwendung der Auslagerungsplatte zurückgreifen muss
  • Es gibt OutOfMemory-Killer-Meldungen in den Protokollen, wenn sie mit grep -i kill /var/log/messages* überprüft werden oder dmesg | grep oom-killer

Abschluss

Der free command ist ein sehr nützliches Dienstprogramm, das dem Systemadministrator viel darüber sagen kann, was auf dem Server passiert. Lernen, die Unterschiede zwischen den Versionen von free zu erkennen kann bei einer genaueren Interpretation der Ausgabe helfen.

[ Möchten Sie Red Hat Enterprise Linux ausprobieren? Laden Sie es jetzt kostenlos herunter. ]


Linux
  1. Was dem „free“-Befehl von Linux auf FreeBSD v8.1 entspricht

  2. Was bedeutet &am Ende eines Linux-Befehls?

  3. Was ist das Windows-Analogon des Linux-Überwachungsbefehls?

  4. Was ist das Äquivalent zum Linux-Dateibefehl für Windows?

  5. Was ist das Äquivalent von Linux's ~ (Tilde) in Windows?

Kostenloser Befehl unter Linux

25 grundlegende Linux-Befehle, die ein Anfänger kennen muss

Was ist die Shell unter Linux?

Sysadmin-Tools:11 Möglichkeiten, den Befehl ls unter Linux zu verwenden

Der Timer-Befehl in Linux

Was ist der Kill-Befehl in Linux?