Inhaltsverzeichnis

free - Arbeitsspeicher-Auslastung

free zeigt die Nutzung des Arbeitsspeichers (RAM) und des Swap-Speichers an. Es ist ein essentielles Tool zur Überwachung der Speicherauslastung und hilft dabei, Performance-Probleme und Speichermangel zu identifizieren.

Voraussetzungen

Grundlegende Syntax

free [OPTIONEN]

Häufige Anwendungsfälle

Standard-Ausgabe

# Standard-Ausgabe in Kilobytes
free
 
# Human-readable Format (empfohlen)
free -h
 
# In Megabytes
free -m
 
# In Gigabytes
free -g

Ausgabe verstehen

$ free -h
              total       used       free     shared  buff/cache   available
Mem:           15Gi       4.5Gi      8.2Gi       250Mi       2.8Gi       10Gi
Swap:         2.0Gi          0B      2.0Gi
Spalte Bedeutung
total Gesamter verfügbarer Speicher
used Genutzter Speicher (ohne Buffers/Cache)
free Komplett ungenutzter Speicher
shared Von mehreren Prozessen genutzter Speicher (tmpfs, etc.)
buff/cache Von Kernel für Buffers und Cache genutzter Speicher
available Verfügbarer Speicher für neue Programme (wichtigste Spalte!)

Kontinuierliche Überwachung

# Alle 2 Sekunden aktualisieren
free -h -s 2
 
# 10 Mal alle 5 Sekunden
free -h -s 5 -c 10
 
# Mit Zeitstempel
watch -n 2 'date && free -h'

Nützliche Optionen

Option Bedeutung
-h Human-readable Format (KB, MB, GB)
-b Bytes
-k Kilobytes (Standard)
-m Megabytes
-g Gigabytes
-t Summen-Zeile für RAM + Swap
-s N Aktualisierung alle N Sekunden
-c N N Wiederholungen
-w Breite Ausgabe (Buffer und Cache getrennt)
–si 1000er-Basis statt 1024

Die Spalten im Detail

Mem (RAM)

Swap

Praktische Beispiele

Speicher-Analyse

# Übersicht mit Summen
free -h -t
 
# Breite Ansicht (Buffer und Cache getrennt)
free -hw
 
# Prozentuale Auslastung berechnen
free | awk 'NR==2{printf "%.2f%%\n", $3*100/$2}'
 
# Verfügbarer Speicher in Prozent
free | awk 'NR==2{printf "%.2f%% verfügbar\n", $7*100/$2}'

Swap-Nutzung prüfen

# Swap-Auslastung anzeigen
free -h | grep Swap
 
# Warnung bei Swap-Nutzung
free | awk '/Swap/{if($3>0)print "WARNUNG: Swap wird genutzt:", $3}'
 
# Prozesse nach Swap-Nutzung sortieren
sudo grep VmSwap /proc/*/status | awk '{sum[$1]+=$2}END{for(i in sum)print sum[i],i}' | sort -rn | head

Monitoring und Alarme

# Speicher-Alarm bei unter 10% verfügbar
free | awk 'NR==2{if($7/$2<0.1)print "KRITISCH: Nur",$7,"verfügbar!"}'
 
# Kontinuierliche Überwachung mit Farben
watch -n 1 -c 'free -h'
 
# Log erstellen
while true; do echo "$(date): $(free -h | grep Mem)" >> memory.log; sleep 300; done

Erweiterte Anwendungen

Cache leeren (nur für Tests!)

# WARNUNG: Nur für Troubleshooting!
# PageCache leeren
sudo sync && echo 1 | sudo tee /proc/sys/vm/drop_caches
 
# Dentries und Inodes leeren
sudo sync && echo 2 | sudo tee /proc/sys/vm/drop_caches
 
# Alles leeren
sudo sync && echo 3 | sudo tee /proc/sys/vm/drop_caches

Achtung: Cache leeren ist normalerweise nicht nötig! Linux nutzt freien Speicher automatisch als Cache für bessere Performance. Cache wird bei Bedarf automatisch freigegeben.

Vergleich mit anderen Tools

# Mit top/htop vergleichen
free -h && echo "---" && top -bn1 | head -5
 
# Mit /proc/meminfo vergleichen
free -h && echo "---" && grep -E 'MemTotal|MemFree|MemAvailable' /proc/meminfo
 
# Detaillierte Speicher-Info
cat /proc/meminfo

Skripte und Automation

# Einfaches Monitoring-Skript
#!/bin/bash
AVAIL=$(free -m | awk 'NR==2{print $7}')
if [ $AVAIL -lt 1000 ]; then
    echo "Warnung: Nur ${AVAIL}MB verfügbar!" | mail -s "Speicher-Warnung" admin@example.com
fi
 
# JSON-Output für Monitoring-Systeme
free -b | awk 'NR==2{printf "{\"total\":%s,\"used\":%s,\"free\":%s,\"available\":%s}\n",$2,$3,$4,$7}'

Speicher-Verständnis

Warum ist "free" so niedrig?

Linux nutzt ungenutzten RAM intelligent:

Wann ist Swap-Nutzung problematisch?

Wichtige Hinweise

Fehlerbehebung

Siehe auch