tmpfs - system plików w pamięci wirtualnej
Funkcja tmpfs umożliwia utworzenie systemu
plików, którego zawartość jest przechowywana w
pamięci wirtualnej. Jako że jest to zwykle
pamięć RAM, dostęp do plików w systemach
plików tego typu jest ekstremalnie szybki.
System plików jest tworzony automatycznie przy montowaniu
systemu plików typu tmpfs za pomocą polecenia takiego
jak:
$ sudo mount -t tmpfs -o size=10M tmpfs /mnt/moj-tmpfs
System plików tmpfs ma następujące
właściwości:
- •
- System plików może wykorzystać przestrzeń
wymiany, gdy wymaga tego zapotrzebowanie na pamięć
fizyczną.
- •
- System plików zajmuje wyłącznie tyle pamięci
fizycznej i przestrzeni wymiany ile jest potrzebne do przechowania jego
aktualnej zawartości.
- •
- Podczas operacji ponownego montowania
(mount -o remount), można zmienić
rozmiar systemu plików (bez utraty jego aktualnej
zawartości).
Przy odmontowywaniu systemu plików tmpfs jest
zawartość jest odrzucana (tracona).
System plików tmpfs obsługuje
następujące opcje montowania:
- size=bajty
- Określa górny limit rozmiaru systemu plików. Rozmiar
jest podany w bajtach i zaokrąglany w górę do
całych stron. Limit jest usuwany, gdy podano rozmiar 0.
- Rozmiar może posiadać przyrostek k, m lub
g aby wskazać Ki, Mi, Gi (binarne kilo (kibi), binarne mega
(mebi) i binarne giga (gibi)).
- Rozmiar może posiadać również przyrostek
% aby ograniczyć tę instancję do
określonego procenta fizycznej pamięci RAM.
- Domyślnie, jeśli nie poda się ani size, ani
nr_blocks przyjmuje się size=50%.
- nr_blocks=bloki
- Jak size, lecz w blokach PAGE_CACHE_SIZE.
- Bloki można podać z przyrostkiem k, m lub
g, jak size, lecz niedopuszczalny jest przyrostek
%.
- nr_inodes=i-węzły
- Maksymalna liczba i-węzłów w tej instancji.
Domyślnie jest to połowa liczby stron pamięci
fizycznej RAM lub (w komputerach z highmem) liczba pamięci RAM
lowmem, w zależności od tego, która jest mniejsza.
Limit jest usuwany, gdy podano rozmiar 0.
- I-węzły można podać z przyrostkiem k,
m lub g, jak size, lecz niedopuszczalny jest
przyrostek %.
- noswap (od Linuksa
6.4)
- Wyłącza przestrzeń wymiany. Przemontowanie musi
respektować oryginalne ustawienia. Domyślnie
przestrzeń wymiany jest włączona.
- mode=tryb
- Ustawia początkowe uprawnienia głównego
katalogu.
- gid=id-grupy (od
Linuksa 2.5.7)
- Ustawia początkowy identyfikator grupy głównego
katalogu.
- uid=id-użytkownika
(od Linuksa 2.5.7)
- Ustawia początkowy identyfikator użytkownika
głównego katalogu
- huge=opcja-dużych-stron
(od Linuksa 4.7.0)
- Ustawia zasady przydzielania tabeli dużej pamięci do
wszystkich plików w tej instancji (jeśli
włączono CONFIG_TRANSPARENT_HUGEPAGE).
- Wartością opcji-dużych-stron jest jedna z
poniższych:
- never
- Nie przydziela dużych stron. Zachowanie domyślne.
- always
- Spróbuje przydzielić duże strony w każdym
przypadku, gdy potrzebna jest nowa strona.
- within_size
- Przydziela dużą stronę, jeśli mieści
się w pełni w i_size. Honoruje wskazówki
fadvise(2) i madvise(2).
- advise
- Przydziela duże strony, jeśli są żądane
przez fadvise(2) lub madvise(2).
- deny
- Do sytuacji awaryjnych, służy do wymuszenia
wyłączenia opcji dużych stron ze wszystkich
montowań.
- force
- Wymusza włączenie opcji dużych stron we wszystkich
montowaniach; przydatne w testach.
- mpol=opcja-mpol
(od Linuksa 2.6.15)
- Ustawia zasady przydzielania pamięci NUMA do wszystkich
plików w tej instancji (jeśli włączono
CONFIG_NUMA).
- Wartością opcji-mpol jest jedna z
poniższych:
- W powyższych opisach lista-węzłów jest
listą liczby dziesiętych i zakresów
określających węzły NUMA, a separatorem jest
przecinek (,). Zakres jest parą liczb dziesiętnych
rozdzielonych dywizem (-) będących najmniejszym i
największym numerem węzła w zakresie.
Przykład: mpol=bind:0-3,5,7,9-15.
Funkcję tmpfs dodano w Linuksie 2.4, jako
następcę starszej funkcji ramfs, która nie
udostępniała sprawdzania limitów, ani nie
pozwalała korzystać z przestrzeni wymiany.
Aby umożliwić tworzenie systemów
plików tmpfs narzędziom i programom w przestrzeni
użytkownika, jądro musi być skonfigurowane z
opcją CONFIG_TMPFS.
System plików tmpfs obsługuje atrybuty
rozszerzone (zob. xattr(7)), lecz niedozwolone są atrybuty
rozszerzone użytkownika.
Do pamięci współdzielonej Systemu V
(shmget(2)) i anonimowych przypisań
współdzielonych (mmap(2) z flagami MAP_SHARED i
MAP_ANONYMOUS) używany jest wewnętrzny system
plików pamięci współdzielonej. Jest on
dostępny niezależnie od tego, czy jądro skonfigurowano
z opcją CONFIG_TMPFS.
System plików tmpfs zamontowany jako /dev/shm
jest używany w implementacji pamięci
współdzielonej POSIX (shm_overview(7)) i semaforach
POSIX (sem_overview(7)).
Rozmiar pamięci zajętej przez wszystkie systemy
plików tmpfs jest pokazany w polu Shmem w pliku
/proc/meminfo oraz w polu shared wyświetlanym przez
free(1).
Funkcja tmpfs nazywała się wcześniej
shmfs.
Tłumaczenie niniejszej strony podręcznika:
Michał Kułach <michal.kulach@gmail.com>
Niniejsze tłumaczenie jest wolną
dokumentacją. Bliższe informacje o warunkach licencji
można uzyskać zapoznając się z
GNU General
Public License w wersji 3 lub nowszej. Nie przyjmuje się
ŻADNEJ ODPOWIEDZIALNOŚCI.
Błędy w tłumaczeniu strony podręcznika
prosimy zgłaszać na adres listy dyskusyjnej
manpages-pl-list@lists.sourceforge.net.