# free — Speicherauslastung von RAM und Swap anzeigen

> Praxis-Guide zu free: RAM- und Swap-Auslastung anzeigen und verstehen, warum unter Linux die Spalte available aussagekräftiger ist als free.

Source: https://www.jpkc.com/db/cheatsheets/shell-system/free/

<!-- PROSE:intro -->
`free` verschafft dir in Sekunden einen Überblick über die Speicherauslastung deines Linux-Systems: wie viel physischer RAM und Swap belegt sind und – besonders wichtig – wie viel Speicher tatsächlich noch für neue Programme bereitsteht. Der häufigste Anfängerfehler ist die Panik beim Blick auf eine niedrige `free`-Spalte. Dieser Guide zeigt dir die wichtigsten Optionen und erklärt, warum unter Linux die Spalte `available` zählt und nicht `free`.
<!-- PROSE:intro:end -->

## Grundlegende Verwendung

`free` — Speicherauslastung in Kibibyte anzeigen (Standard).

```bash
free
```

`free -h` — Speicherauslastung menschenlesbar anzeigen (wählt automatisch KB/MB/GB).

```bash
free -h
```

`free -m` — Speicherauslastung in Mebibyte (MiB) anzeigen.

```bash
free -m
```

`free -g` — Speicherauslastung in Gibibyte (GiB) anzeigen.

```bash
free -g
```

`free -b` — Speicherauslastung in Byte anzeigen.

```bash
free -b
```

`free --si` — SI-Einheiten verwenden (Zehnerpotenzen mit 1000 statt 1024).

```bash
free -h --si
```

## Anzeigeoptionen

`free -t` — Eine Summenzeile anzeigen (RAM + Swap zusammengefasst).

```bash
free -ht
```

`free -w` — Breite Ausgabe: buffers und cache als getrennte Spalten anzeigen.

```bash
free -wh
```

`free -l` — Statistiken zu Low- und High-Memory anzeigen (32-Bit-Systeme).

```bash
free -lh
```

`free -v` — Versionsinformationen anzeigen.

```bash
free -v
```

## Kontinuierliche Überwachung

`free -s <seconds>` — Die Ausgabe alle n Sekunden fortlaufend wiederholen.

```bash
free -h -s 5
```

`free -c <count> -s <seconds>` — Die Ausgabe n-mal mit einer Verzögerung dazwischen wiederholen.

```bash
free -h -c 10 -s 2
```

`watch free -h` — watch für eine sich aktualisierende Anzeige verwenden (Alternative zu -s).

```bash
watch -n 2 free -h
```

## Ausgabespalten erklärt

`total` — Insgesamt installierter Speicher (bzw. gesamter Swap-Bereich).

```bash
free -h | awk '/Mem:/ {print $2}'
```

`used` — Aktiv von Prozessen genutzter Speicher (total - free - buffers - cache).

```bash
free -h | awk '/Mem:/ {print $3}'
```

`free` — Überhaupt nicht genutzter Speicher (komplett ungenutzt).

```bash
free -h | awk '/Mem:/ {print $4}'
```

`shared` — Von tmpfs und Shared-Memory-Segmenten genutzter Speicher.

```bash
free -h | awk '/Mem:/ {print $5}'
```

`buff/cache` — Speicher für Datenträger-Buffer und Page-Cache (vom Kernel wiederverwendbar).

```bash
free -h | awk '/Mem:/ {print $6}'
```

`available` — Geschätzter Speicher, der für neue Anwendungen verfügbar ist (ohne Swapping). Das ist die aussagekräftigste Kennzahl.

```bash
free -h | awk '/Mem:/ {print $7}'
```

## Typische Muster

`free -h | awk '/Mem:/ {print $7}'` — Nur den verfügbaren Speicher anzeigen.

```bash
free -h | awk '/Mem:/ {print "Available: " $7}'
```

`free -h | awk '/Mem:/ {printf "Used: %s / %s (%.1f%%)\n", $3, $2, $3/$2*100}'` — Speicherauslastung als Prozentwert anzeigen.

```bash
free -m | awk '/Mem:/ {printf "RAM: %.1f%% used\n", $3/$2*100}'
```

`free -h | awk '/Swap:/ {print $3}'` — Prüfen, wie viel Swap belegt ist.

```bash
free -h | awk '/Swap:/ {print "Swap used: " $3}'
```

`free -m | awk '/Mem:/ {if ($7 < 500) print "WARNING: Low memory!"}'` — Warnen, wenn der verfügbare Speicher unter einen Schwellwert (MB) fällt.

```bash
free -m | awk '/Mem:/ {if ($7 < 500) print "WARNING: Only " $7 "MB available!"}'
```

`cat /proc/meminfo` — Detaillierte Speicherinformationen vom Kernel anzeigen (feiner granuliert als free).

```bash
cat /proc/meminfo | head -20
```

`cat /proc/meminfo | grep -i huge` — Konfiguration und Nutzung von Huge Pages prüfen.

```bash
cat /proc/meminfo | grep -i huge
```

`vmstat -s` — Detaillierte Speicherstatistiken in einem anderen Format anzeigen.

```bash
vmstat -s | head -10
```

<!-- PROSE:outro -->
## Fazit

`free` ist ein reines Lese-Kommando ohne Risiko – du kannst es jederzeit gefahrlos ausführen. Der zentrale Lernpunkt: Erschrick nicht über eine niedrige `free`-Spalte. Linux nutzt freien Arbeitsspeicher bewusst als Page-Cache, um Festplattenzugriffe zu beschleunigen, und gibt diesen Speicher sofort wieder frei, sobald Anwendungen ihn brauchen. Die ehrliche Antwort auf die Frage „Wie viel Speicher habe ich noch?" steht in der Spalte `available`, nicht in `free`. Für eine fortlaufende Live-Anzeige greifst du zu `free -s` oder `watch`, für tiefere Analysen zu `vmstat`, `top` oder `htop`. Unter macOS gibt es `free` übrigens nicht – dort liefert `vm_stat` vergleichbare Informationen.

## Weiterführende Links

- [Wikipedia: Seitencache](https://de.wikipedia.org/wiki/Seitencache) – warum Linux freien Arbeitsspeicher als Page-Cache nutzt und „free" dadurch niedrig wirkt
- [Linux ate my RAM](https://www.linuxatemyram.com/) – die klassische Erklärung, warum ein niedriger „free"-Wert unter Linux völlig normal ist
<!-- PROSE:outro:end -->

## Verwandte Kommandos

- [top](https://www.jpkc.com/db/cheatsheets/shell-system/top/) – interaktiver Prozess- und Speichermonitor in Echtzeit
- [htop](https://www.jpkc.com/db/cheatsheets/shell-system/htop/) – komfortable, farbige Alternative zu top mit Maus-Bedienung
- [vmstat](https://www.jpkc.com/db/cheatsheets/shell-system/vmstat/) – Statistiken zu Speicher, Swap, I/O und CPU im Überblick

