Einleitung
Sobald auf einem Ubuntu- oder Linux-Server Engpässe bei den Systemressourcen auftreten, greifen Administratoren intuitiv zuerst zum Werkzeug free. Diese Kurzanleitung beleuchtet den praktischen Einsatz des Tools im Sysadmin-Alltag: von anwenderfreundlichen Einheitenskalierungen über die feinen Unterschiede zwischen available und buff/cache bis hin zur kontinuierlichen Live-Überwachung unter Last.
1. Speicherabfrage mit optimaler Skalierung (-h, -m, -g)
Über das Dienstprogramm free lässt sich die aktuelle Belegung des physischen Hauptspeichers (RAM) sowie des Auslagerungsspeichers (Swap) unmittelbar im Terminal erfassen.
Wird der Befehl isoliert ohne Zusatzparameter aufgerufen, generiert der Kernel die Rohdaten standardmäßig in Kibibyte (KiB), was eine rasche Einschätzung auf modernen Servern mit vielen Gigabyte RAM erschwert.
⚙️ [Wichtige Befehlsoptionen]
-b : Gibt sämtliche Speicherwerte exakt in Bytes aus.-k : Nutzt Kibibyte (KiB) als Ausgabeeinheit (Standardeinstellung).-m : Skaliert alle Messwerte einheitlich auf Mebibyte (MiB).-g : Berechnet die Belegung in Gibibyte (GiB).--mega : Formatiert im Dezimalsystem auf Basis von 1.000 (1 MB = 1.000.000 B).--giga : Dezimale Darstellung auf Gigabyte-Basis (1 GB = 1.000.000.000 B).-h : Schaltet auf das “Human-readable”-Format um, bei dem passende Einheitenkürzel (B, Ki, Mi, Gi, Ti) dynamisch ergänzt werden.-w : Aktiviert das Breitformat (wide), welches Zwischenpuffer (buffers) und Seitencache (cache) getrennt aufführt.-c [Anzahl] : Wiederholt die Speicherausgabe in der festgelegten Durchlaufanzahl.-s [Sekunden] : Aktualisiert die Anzeige zyklisch im definierten Zeitintervall.-t : Fügt am Ende eine Summenzeile (Total) ein, welche RAM und Swap zusammenrechnet.

Durch das Anhängen des Schalters -h transformiert free die Zahlenkolonnen in ein intuitiv lesbares Format.
Das Tool wählt eigenständig die jeweils passendste Größenordnung (GiB, MiB, KiB), weshalb diese Variante im praktischen Betrieb den Standardaufruf für schnelle Ad-hoc-Analysen darstellt.

Der Aufruf mit -m erzwingt eine normierte Darstellung aller Kapazitäten in MiB.
Da hierbei reine Ganzzahlen ohne wechselnde Einheitenbuchstaben ausgegeben werden, eignet sich diese Variante hervorragend für reguläre Ausdrücke und Monitoring-Skripte in Bash.

2. Metriken richtig interpretieren: free versus available und die Aufteilung von buff/cache
Ein Blick auf die Spaltenüberschriften bei free -h offenbart Kennzahlen, die häufig zu Fehlinterpretationen führen.
Der Wert unter free beziffert ausschließlich jenen RAM-Bereich, der vom Betriebssystem im Moment absolut unberührt und leer gehalten wird.
Hingegen reflektiert available die tatsächlich nutzbare Kapazität: Hier kalkuliert der Linux-Kernel ein, wie viel Zwischenspeicher bei plötzlichem Bedarf sofort freigegeben und neuen Prozessen zugewiesen werden kann.
Für die Beurteilung, ob ein System kurz vor dem “Out of Memory” (OOM) steht, ist folglich primär die Spalte available ausschlaggebend, nicht free.

Ergänzt man die Kommandozeile um den Parameter -w (free -h -w), bricht das Dienstprogramm den zusammengefassten Block buff/cache in zwei getrennte Spalten auf.
Unter buffers verbucht der Kernel Speicherstrukturen für anstehende Disk-I/O-Operationen sowie Metadaten des Dateisystems.
Die Rubrik cache repräsentiert den Page-Cache, in dem gelesene Dateiinhalte verbleiben, um künftige Lesezugriffe drastisch zu beschleunigen.
Beide Zwischenbereiche beanspruchen zwar RAM, werden vom Kernel bei Speicheranfragen jedoch ohne Verzögerung wieder geräumt.

Über das virtuelle Dateisystem /proc lässt sich mit head -n 10 /proc/meminfo ein Blick direkt in die interne Buchführung des Kernels werfen.
Sämtliche von free aufbereiteten Messpunkte – darunter MemTotal, MemFree, MemAvailable oder Cached – speisen sich unmittelbar aus dieser Schnittstelle.
Diese Datei dient Administratoren als verlässliche Referenz zur Verifikation und für tiefergehende Performanceanalysen.

3. Dynamische Intervallabfragen und Gesamtauswertung (-s, -c, -t)
Durch Kombination der Optionen zu free -h -t wird die Ausgabe um die Zeile Total erweitert, in welcher der Linux-Kernel den RAM- und Swap-Bedarf kumuliert.
Dies verschafft Systembetreuern einen unmittelbaren Überblick über den gesamten Speicherpool des Hosts und dessen Auslastungsgrad.

Um temporäre Speicherlasten gezielt einzufangen, erlaubt der Aufruf free -h -s 2 -c 3 ein automatisiertes Polling: Der Speicherzustand wird dreimal hintereinander (-c 3) im Abstand von je zwei Sekunden (-s 2) ermittelt.
Damit lassen sich Verbrauchsspitzen während rechenintensiver Skripte oder Dienststarts unkompliziert nachvollziehen.

4. Speicherallokation im Praxistest: Lastsimulation mit stress
Um das Reaktionsmuster des Kernels unter Last transparent zu machen, installieren wir zunächst das Diagnosetool stress.

Vor dem Start des Lasttests wird zunächst der unbeeinflusste Ausgangszustand der Speicherbelegung mittels free -h festgehalten.
In unserem Ausgangsszenario belegen aktive Prozesse 5.2GiB (used), 1.2GiB liegen komplett ungenutzt (free), während noch rund 2.0GiB als real verfügbar (available) ausgewiesen werden.

Mit der Instruktion stress --vm 1 --vm-bytes 256M --timeout 5s fordern wir das System gezielt heraus: Ein Worker reserviert für die Dauer von 5 Sekunden genau 256 Megabyte Arbeitsspeicher.
Diese kontrollierte Allokation sorgt für eine messbare Dynamik in der Speicherhierarchie.

Eine erneute Abfrage mit free -h verdeutlicht die unmittelbare Speicherzuteilung durch das Betriebssystem.
Im Vergleich zur Basismessung kletterte used von 5.2GiB auf 5.3GiB, während free parallel von 1.2GiB auf 1.0GiB absank und der available-Wert leicht auf 1.9GiB korrigiert wurde – ein klarer Beleg dafür, wie zügig der Kernel Ressourcen bereitstellt.

Mit diesen Kernbefehlen und der korrekten Interpretation der Buffer- und Cache-Werte steht Ihnen ein solides Rüstzeug zur Verfügung, um Engpässe auf Linux-Systemen treffsicher zu diagnostizieren und die tatsächliche Speichersituation fundiert zu beurteilen.