System plików pamięci wirtualnej TMPFS w systemie Linux

System Plikow Pamieci Wirtualnej Tmpfs W Systemie Linux



Tmpfs, dawniej znany jako shmfs, jest tymczasowym systemem plików i odnosi się do systemu plików, który znajduje się w pamięci i/lub partycjach wymiany. Tmpfs nie przechowuje danych pliku w normalnym, nieulotnym magazynie. Zamiast tego jądro systemu UNIX zarządza pamięcią wirtualną, w której znajdują się pliki Tmpfs. Głównym powodem utworzenia Tmpfs była poprawa wydajności poprzez umożliwienie zapisywania i odczytywania plików tymczasowych bez użycia dysku lub sieciowego wejścia/wyjścia.

O czym będziemy rozmawiać?

W tym artykule zobaczymy przegląd systemu plików Tmpfs w systemie Linux.

Zalety korzystania z systemu Tmpfs

Dawny system plików pamięci o dostępie swobodnym (ramfs) w systemie Linux został zastąpiony nowym systemem plików tymczasowych (Tmpfs). Dzieje się tak dlatego, że stare RAMFS nie odnosiło się właściwie do sytuacji, gdy w systemie zabrakło pamięci RAM.







Montowanie katalogów jako Tmpfs ma kilka zalet, takich jak:



1. Aby przyspieszyć dostęp do plików w nich zawartych.



2. Aby upewnić się, że przy każdym ponownym uruchomieniu systemu zawartość katalogów jest automatycznie usuwana.





3. Tmpfs zwiększa szybkość manipulowania plikami przy jednoczesnym zachowaniu semantyki pliku UNIX.

4. Tmpfs nie potrzebuje stałego lub dedykowanego miejsca na dysku na pliki i nie ma negatywnego wpływu na wydajność.



Zamiast wykorzystywać dedykowaną pamięć fizyczną, taką jak „dysk RAM”, Tmpfs przechowuje dane pliku w pamięci podręcznej stron systemu operacyjnego. Ułatwia odczytywanie i zapisywanie plików, pozwala systemowi plików rosnąć i kurczyć się w locie bez zużywania miejsca na dysku i nie szkodzi ogólnej wydajności systemu.

Montowanie Tmpfs

Użyj polecenia mount i wybierz „tmp” jako typ systemu plików, aby utworzyć system plików typu Tmpfs. Ponieważ Tmpfs zawsze wykorzystuje pamięć jako zasób systemu plików, parametr zasobu do zamontowania (np. surowe urządzenie) jest pomijany. Ponieważ Tmpfs zawsze używa pamięci jako zasobu systemu plików, parametr zasobu do montowania (taki jak surowe urządzenie) nie jest brany pod uwagę.

Obecnie Tmpfs nie ma opcji montowania. Wiele zwykłych opcji montowania nie ma zastosowania w kontekście Tmpfs. Na przykład uczynienie montowania Tmpfs „tylko do odczytu” nie ma sensu, ponieważ nie przechowuje żadnych danych, gdy jest montowane po raz pierwszy. Tmpfs obsługuje wszystkie typy plików, w tym również dowiązania symboliczne, bloki i specjalne pliki urządzeń znakowych — semantyka plików systemu UNIX. Chociaż może istnieć wiele systemów plików opartych na Tmpfs, które są zamontowane w jednym systemie, wszystkie z nich muszą współużytkować tę samą pulę zasobów.

Ponieważ zawartość systemu plików opartego na pamięci jest czyszczona po ponownym uruchomieniu systemu lub operacji odmontowania, a pliki te mają bardzo krótki okres istnienia, /tmp i jest dla nich najbardziej odpowiednią lokalizacją (znaną jako Tmpfs). To na to wskazuje /usr/tmp nie jest odpowiednią lokalizacją do montowania systemu plików Tmpfs, ponieważ jego zawartość jest zachowywana między ponownymi uruchomieniami.

Rozmiar Tmpfs

Ilość wolnego miejsca, które może być wykorzystane przez Tmpfs, jest wprost proporcjonalna do ilości niewykorzystanego obszaru wymiany. Rozmiar systemu plików Tmpfs rozszerza się, aby zmieścić dodawane do niego pliki, ale użytkownicy regularnie korzystający z Tmpfs muszą mieć świadomość, że ten wzrost wiąże się z pewnymi nieodłącznymi kosztami. Tmpfs współdzieli swoje zasoby z segmentami danych i stosu programów, które są wykonywane.

Jeśli systemy plików Tmpfs zbliżają się do swojej maksymalnej dopuszczalnej pojemności, możliwe, że ma to wpływ na wykonywanie bardzo dużych programów. Tmpfs może przypisać całą przestrzeń wymiany systemu, z wyjątkiem 4 MB. To wystarczy, aby upewnić się, że większość programów może działać. Niemniej jednak możliwe jest, że niektórych programów nie można uruchomić, jeśli systemy plików Tmpfs są bliskie pełnej pojemności. Użytkownicy, którzy planują uruchamiać duże programy i intensywnie korzystają z Tmpfs, powinni szukać sposobów na zwiększenie dostępnej przestrzeni wymiany w systemie.

Zastosowania Tmpfs

Zastosowania Tmpfs obejmują:

1. W jądrze zawsze znajduje się wewnętrzne montowanie, którego nie można zobaczyć. Zarówno pamięć współdzielona SYSV, jak i współdzielone anonimowe mapowania wykorzystują Tmpfs. Montowanie Tmpfs jest niezależne od CONFIG_TMPFS. Widoczna dla użytkownika część Tmpfs nie zostanie utworzona, jeśli CONFIG_TMPFS nie zostanie ustawione. Jednak wewnętrzne mechanizmy istnieją przez cały czas.

2. Pamięć współdzielona POSIX (shm_open, shm_unlink) wymaga zamontowania tmpfs w /dev/shm dla wersji glibc 2.2 i wyższych. Można to rozwiązać, umieszczając następujący wiersz w pliku /etc/fstab:

tmpfs / deweloper / Domyślne ustawienia shm tmpfs 0 0

W razie potrzeby utwórz katalog, w którym chcesz zamontować plik Tmpfs.

Pamięć współużytkowana używana przez SYSV nie wymaga podłączenia Tmpfs. Odbywa się to za pomocą wewnętrznego mocowania. Aby korzystać z pamięci współdzielonej SYSV w wersjach jądra 2.3, należało zamontować shm fs (poprzednik Tmpfs).

3. Dla niektórych użytkowników naprawdę przydatne jest zamontowanie go w miejscach takich jak /tmp oraz /var/tmp i mieć spory dysk wymiany. Ponadto działają teraz montowania pętli plików Tmpfs. Dlatego mkinitrd większości dystrybucji powinno działać z Tmpfs.

4. Jest ich zbyt wiele, by je wymienić.

Opcje montowania dla Tmpfs

Przyjrzyjmy się niektórym opcjom montowania za pomocą Tmpfs:

rozmiar: Określa maksymalną liczbę bajtów, których można użyć dla instancji Tmpfs. Domyślnie tylko połowa fizycznej pamięci RAM może być używana bez przestrzeni wymiany.

Jeśli instancje Tmpfs są większe niż powinny, maszyna utknie w martwym punkcie, ponieważ moduł obsługi OOM nie będzie w stanie zwolnić tej pamięci.

liczba bloków: To jest to samo, co opcja rozmiaru. Jednak jest w blokach PAGE_CACHE_SIZE.

brak i-węzłów : Jest to górna granica i-węzłów dla tej instancji. Wartość domyślna to połowa liczby stron fizycznej pamięci RAM lub liczba stron pamięci RAM o małej pamięci (w systemie z pamięcią o dużej pamięci), w zależności od tego, która z tych wartości jest mniejsza.

Wniosek

Zwykle pliki Tmpfs są usuwane podczas ponownego uruchamiania systemu. Ale jeśli chcesz je zachować, możesz użyć plików systemd-tmp. Zalecamy przeczytanie stron podręcznika, jeśli chcesz dowiedzieć się więcej o Tmpfs.