sammlung:free
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
- Zugriff auf die Linux-Kommandozeile
- Grundkenntnisse in Bash-Kommandos
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)
- total: Physischer Arbeitsspeicher insgesamt
- used: Von Prozessen belegter Speicher
- free: Komplett ungenutzter Speicher (meist gering)
- shared: Shared Memory (z.B. tmpfs)
- buff/cache: Für Buffers und Cache genutzter Speicher
- available: Wichtig! Tatsächlich verfügbarer Speicher für neue Programme
Swap
- total: Gesamtgröße der Swap-Partition/Datei
- used: Genutzter Swap (sollte idealerweise 0 oder gering sein)
- free: Verfügbarer 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:
- Freier Speicher wird für Buffers/Cache verwendet
- Cache beschleunigt Dateizugriffe enorm
- Cache wird automatisch freigegeben wenn Programme Speicher brauchen
- Wichtig: Schaue auf „available“, nicht auf „free“!
Wann ist Swap-Nutzung problematisch?
- Geringe Swap-Nutzung (<10%) ist meist unkritisch
- Hohe Swap-Nutzung (>50%) deutet auf RAM-Mangel hin
- Häufiges Swapping (thrashing) verlangsamt System massiv
- Prüfe mit vmstat ob aktiv geswappt wird
Wichtige Hinweise
- available ist die wichtigste Spalte - sie zeigt wirklich verfügbaren Speicher
- Cache ist kein „verschwendeter“ Speicher - er verbessert Performance
- Swap-Nutzung allein ist kein Problem - wichtig ist, ob aktiv geswappt wird
- tmpfs (z.B. /tmp) nutzt RAM und zählt zu „shared“
Fehlerbehebung
- Zu wenig „available“: Identifiziere speicherhungrige Prozesse mit
topoderhtop - Hohe Swap-Nutzung: Erwäge RAM-Upgrade oder reduziere laufende Dienste
- OOM-Killer aktiv: Prüfe
dmesg | grep -i oomfür Details - Cache zu hoch: Normal und gewünscht! Cache wird automatisch freigegeben
Siehe auch
sammlung/free.txt · Zuletzt geändert: von 127.0.0.1
