TMPFS Wirtualny system plików pamięci w Linux

TMPFS Wirtualny system plików pamięci w Linux
TMPFS, wcześniej znany jako SHMFS, jest tymczasowym systemem plików i odnosi się do systemu plików, który znajduje się w pamięci i/lub partycji swapowej. TMPFS nie przechowuje danych plików na temat normalnej, nieulotnej pamięci. Zamiast tego jądro Unix zarządza pamięcią wirtualną, w której żyją pliki TMPFS.Głównym powodem, dla którego utworzono TMPFS, było poprawa wydajności poprzez umożliwienie zapisywania i czytania plików tymczasowych bez użycia dysku lub sieci we/wy sieciowej.

O czym będziemy porozmawiać?

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

Zalety korzystania z systemu TMPFS

Dawny system plików pamięci Random Access (RAMFS) w Linux został zastąpiony nowym tymczasowym systemem plików (TMPFS). Wynika to z faktu, że stare Ramfs nie zajęły się poprawnie sytuacjami, gdy w systemie zabrakło pamięci RAM.

Montażowe katalogi jako TMPFS mają kilka korzyści, takich jak:

1. W celu przyspieszenia dostępu do plików w nich.

2. Aby upewnić się, że za każdym razem, gdy system uruchamia się, zawartość katalogów jest automatycznie usuwana.

3. TMPFS zwiększa szybkość manipulacji plikami, zachowując semantykę pliku UNIX.

4. TMPFS nie potrzebuje stałej lub dedykowanej przestrzeni dysku dla plików i nie ma negatywnych skutków na wydajność.

Zamiast korzystać z dedykowanej pamięci fizycznej, takiej jak „dysk RAM”, TMPFS przechowuje dane pliku w pamięci podręcznej strony systemu operacyjnego. Ułatwia to czytanie i zapisanie plików, pozwala systemowi plików rosnąć i kurczyć się w locie bez użycia miejsca na dysku i nie szkodzi ogólnej wydajności systemu.

Montaż 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 (E.G. surowe urządzenie) jest lekceważone. Ponieważ TMPFS zawsze używa pamięci jako zasobu systemu plików, parametr zasobu do montażu (takiego jak RAW Urządzenie) nie jest brany pod uwagę.

Obecnie TMPFS nie ma opcji montowania. Wiele regularnych opcji montowania nie ma znaczenia dla kontekstu TMPFS. Na przykład wykonanie montażu TMPFS „tylko odczyt” nie ma żadnego sensu, ponieważ nie przechowują żadnych danych, gdy są zamontowane po raz pierwszy. TMPFS obsługuje wszystkie typy plików, które zawierają również specjalne pliki urządzeń symbolicznych, blokowych i. Chociaż może być wiele systemów plików opartych na TMPF, które są zamontowane na jednym systemie, wszystkie muszą udostępniać tę samą pulę zasobów.

Ponieważ zawartość systemu plików opartych na pamięci jest wycierana po ponownym uruchomieniu systemu lub odrobinie, a ponieważ pliki te mają bardzo krótkie życie, /tmp is najbardziej odpowiednia lokalizacja dla nich (w ten sposób znana jako TMPFS). To wskazuje /usr/tmp nie jest odpowiednim miejscem do montażu systemu plików TMPFS, ponieważ jego zawartość jest przechowywana między ponownym uruchomieniem.

Rozmiar TMPFS

Ilość wolnej przestrzeni, która może być używana przez TMPFS, jest wprost proporcjonalna do ilości nieużywanej przestrzeni wymiany. Rozmiar systemu plików TMPFS rozszerza się, aby pasować do plików, które są do niego dodane, ale użytkownicy, którzy regularnie używają TMPFS, muszą zdawać sobie sprawę, że wzrost ten ma pewne nieodłączne koszty. TMPFS udostępnia swoje zasoby z danych i stosów, które są wykonywane.

Jeśli systemy plików TMPFS są blisko ich maksymalnej dopuszczalnej pojemności, możliwe jest, że wpłynie na wykonanie bardzo dużych programów. TMPF mogą przypisać całą przestrzeń wymiany systemu, z wyjątkiem 4 MB. Jest to wystarczające, aby upewnić się, że większość programów może wykonać. Niemniej jednak możliwe jest, że niektóre programy nie są w stanie wykonać, jeśli systemy plików TMPFS są bliskie pełnej pojemności. Użytkownicy, którzy planują uruchomić duże programy i szeroko korzystać z TMPFS, powinni szukać sposobów na zwiększenie dostępnej przestrzeni wymiany w systemie.

Zastosowania TMPFS

Zastosowania TMPF obejmują:

1. W jądrze zawsze jest wewnętrzny wierzchowca, którego nie można zobaczyć. SYSV udostępniona pamięć i wspólne mapowania anonimowe korzystają z TMPFS. Mocowanie TMPFS jest niezależne od config_tmpfs. Część TMPFS z widzibą użytkownika nie zostanie utworzona, jeśli config_tmpfs nie zostanie ustawiony. Jednak istnieją jednak wewnętrzne mechanizmy.

2. Postix udostępniona pamięć (SHM_OPEN, SHM_UNLINK) wymaga zamontowania TMPF AT /Dev /SHM dla wersji Glibc 2.2 i powyżej. Można to rozwiązać, włączając następujący wiersz w pliku /etc /fstab:

tmpfs /dev /sHM TMPFS domyślnie 0 0

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

Wspólna pamięć używana przez SYSV nie potrzebuje montażu TMPFS. Odbywa się to z wewnętrznym mocowaniem. Aby użyć pamięci współdzielonej SYSV w 2.3 wersje jądra, SHM FS (poprzednik TMPFS) musiał zostać zamontowany.

3. Jest to naprawdę przydatne dla niektórych użytkowników, aby zamontować go w lokalizacjach /TMP I /var/tmp i miej spory dysk wymiany. Dodatkowo mocowania pętli plików TMPFS są teraz funkcjonalne. Zatem większość mkinitrd rozkładów powinna działać z TMPFS.

4. I jest ich zbyt wiele, aby wymienić.

Zamontować opcje TMPFS

Zbadajmy niektóre opcje mocowania za pomocą TMPFS:

rozmiar: Określa to maksymalną liczbę bajtów, które można użyć do instancji TMPFS. Domyślnie tylko połowa fizycznego pamięci RAM może być używana bez przestrzeni swapowej.

Jeśli instancje TMPFS są większe niż muszą być, maszyna utknie w impasku, ponieważ moduł obsługi OOM nie będzie w stanie zwolnić tej pamięci.

Bloki NR: Jest to samo, co opcja rozmiaru. Jest jednak w blokach page_cache_size.

NR INODES: To górna granica INODS dla tego przypadku. Wartość domyślna to połowa liczby fizycznych stron RAM lub liczba stron Lowmem RAM (w systemie z wysokimMem), w zależności od tego, w zależności.

Wniosek

Zwykle pliki TMPFS są usuwane w całym systemie. Ale jeśli chcesz je zachować, możesz użyć systemów SystemD-TMPFiles. Zalecamy przeczytanie stron Man, jeśli chcesz dowiedzieć się więcej o TMPFS.