tmpfs, ramfs, /dev/shm

Post Reply
Message
Author
undertuxy

tmpfs, ramfs, /dev/shm

#1 Post by undertuxy »

Hallo liebe Gemeinde,

kan mir mal jemand genau erklären, bzw einen Link zu einer möglichst deutschprachigen oder verständlichen Erläuerung über tmpfs, ramfs und /dev/shm geben?

Ich finde im Netz einige, mir wiedersprüchliche Erläuterungen.
Mounche mounten es einfach wie "mount -t tmpfs -o size=20m tmpfs /mnt/tmp",
einanderer macht dieses: "mount --bind /dev/shm/tmp /tmp"

???
Viele Grüße
undertuxy

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#2 Post by Janka »

Der Hauptunterschied zwischen RAMFS und TMPFS ist, dass RAMFS Speicher im physikalisch vorhandenen RAM alloziert, während TMPFS virtuellen Speicher alloziert. Das heißt, bei RAMFS ist wirklich der gesamte Inhalt im RAM, während bei TMPFS der Kernel selbst entscheiden kann, ob er den Inhalt in den Swap auslagert. Außerdem meldet RAMFS niemals "no space left on device", stattdessen schlägt der OOM-Killer zu, wenn man zuviel Daten reinstopft.

Für alle üblichen Anwendungsfälle: TMPFS. Für Dinge, die niemals auf Platte landen sollen (z.B. ausgepackte entschlüsselte Email-Anhänge): RAMFS.

/dev/shm ist einfach nur ein Mountpoint im Dateisystem. Da ist normalerweise ein tmpfs gemountet. Wenn es unterhalb von /dev/shm einen weiteren Mountpoint /dev/shm/tmp gibt, kann man den natürlich auch irgendwohin sonst bind-mounten, das ist aber eine freie Entscheidung der Distribution. Manche wollen nur ein zentrales TMPFS, weil man ja wie gesagt die Größe initial angeben muss und wenn man mehrere hat ist die Aufteilung vielleicht nicht passend zum Nutzungsprofil. Ein Bind-Mount hat gegenüber einem Symlink den Vorteil, dass er für Anwenderprogramme transparent ist.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

undertuxy

Danke

#3 Post by undertuxy »

Danke Dir sehr ;-)

Post Reply