table of contents
tmpfs(5) | File Formats Manual | tmpfs(5) |
NAZWA¶
tmpfs - system plików w pamięci wirtualnej
OPIS¶
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).
Opcje montowania¶
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:
- default
- Używa zasad alokacji procesu (zob. set_mempolicy(2)).
- prefer:węzeł
- Preferuje przydzielenie pamięci od danego węzła.
- bind:lista-węzłów
- Przydziela pamięć wyłącznie z węzłów w liście-węzłów.
- interleave
- Przydziela kolejno z każdego węzła.
- interleave:lista-węzłów
- Przydziela kolejno z każdego węzła z listy-węzłów.
- local
- Preferuje przydzielanie pamięci z lokalnego węzła.
- 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.
WERSJE¶
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.
UWAGI¶
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.
ZOBACZ TAKŻE¶
df(1), du(1), memfd_create(2), mmap(2), set_mempolicy(2), shm_open(3), mount(8)
Pliki źródeł jądra Documentation/filesystems/tmpfs.txt i Documentation/admin-guide/mm/transhuge.rst.
TŁUMACZENIE¶
Autorami polskiego tłumaczenia niniejszej strony podręcznika są: 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.
2 maja 2024 r. | Linux man-pages (niewydane) |