TMPFS Virtual Memory File System i Linux

TMPFS Virtual Memory File System i Linux
TMPFS, tidligere kjent som SHMFS, er et midlertidig filsystem og refererer til et filsystem som er lokalisert i minne og/eller byttepartisjonen (e). TMPFS lagrer ikke fildataene om normal, ikke-flyktig lagring. I stedet administrerer UNIX -kjernen det virtuelle minnet, og det er her TMPFS -filer lever.Hovedårsaken til at TMPFS ble opprettet var å forbedre ytelsen ved å la de midlertidige filene skrives til og lese fra uten å bruke disken eller nettverket I/O.

Hva vil vi snakke om?

I denne artikkelen vil vi se en oversikt over TMPFS -filsystemet i Linux.

Fordeler ved å bruke TMPFS -systemet

Det tidligere Random Access Memory File System (RAMFS) i Linux er erstattet med det nye midlertidige filsystemet (TMPFS). Dette er fordi de gamle Ramfs ikke tok opp situasjonene ordentlig når systemet gikk tom for RAM.

Monteringskataloger som TMPFS har flere fordeler som:

1. For å fremskynde tilgangen til filene inni dem.

2. For å sikre at hver gang systemet starter på nytt, blir innholdet i katalogene automatisk slettet.

3. TMPFS øker filmanipulasjonshastigheten mens de bevarer semantikken i en UNIX -fil.

4. TMPFS trenger ikke den faste eller dedikerte diskplassen for filer og har ikke uheldige effekter på ytelsen.

I stedet for å bruke det dedikerte fysiske minnet som en "RAM -disk", lagrer TMPFS fildataene i sidebufferen til et OS. Det gjør det lettere å lese og skrive filene, lar filsystemet vokse og krympe på farten uten å bruke noe diskplass, og skader ikke den generelle ytelsen til systemet.

Montering av TMPF -er

Bruk Mount -kommandoen og velg “TMP” som filsystemtype for å opprette et TMPFS -typesystem. Siden TMPFS alltid bruker minnet som filsystemressurs, er ressursparameteren montert (e.g. rå enhet) blir ignorert. Siden TMPFS alltid bruker minnet som filsystemressurs, tas ikke ressursparameteren for montering (for eksempel RAW -enhet) i betraktning.

Foreløpig har TMPFS ingen monteringsalternativer. Mange vanlige monteringsalternativer er ikke relevante for konteksten til TMPFS. For eksempel er det ingen mening å lage en TMPFS -montering "Read Only" gir for eksempel ingen mening, siden de ikke har noen data når de er montert for første gang. TMPFS støtter alle typer filer, som også inkluderer Symlinks, Block og Character Special Device Files - Unix File Semantics. Selv om det kan være mange TMPFS -baserte filsystemer som er montert på ett system, må alle dele den samme ressursbassenget.

Siden innholdet i et minnebasert filsystem blir tørket etter en systemstart eller avmontering, og fordi disse filene har veldig korte liv, /tmp is det mest passende stedet for dem (dermed kjent som TMPFS). Dette indikerer det /usr/tmp er ikke et passende sted for montering av et TMPFS -filsystem fordi innholdet blir beholdt mellom omstart.

Størrelse på TMPFS

Mengden ledig plass som kan brukes av TMPFS er direkte proporsjonal med mengden ubrukt bytteplass. Størrelsen på et TMPFS -filsystem utvides for å passe til filene som blir lagt til det, men brukerne som regelmessig bruker TMPF -er, må være klar over at denne veksten kommer med noen iboende kostnader. TMPFS deler ressursene sine med data- og stakkegmentene med programmer som blir utført.

Hvis TMPFS -filsystemer er i nærheten av sin maksimale tillatte kapasitet, er det mulig at utførelsen av veldig store programmer blir påvirket. TMPF -er kan tilordne alt systemets bytteplass, med unntak av 4 MB. Dette er tilstrekkelig for å sikre at de fleste av programmene kan utføre. Ikke desto mindre er det mulig at visse programmer ikke er i stand til å utføre hvis TMPFS -filsystemene er i nærheten av full kapasitet. Brukere som planlegger å kjøre de store programmene og omfattende bruker TMPF -er, bør se etter måter å øke den tilgjengelige bytteplassen i systemet.

Bruk av TMPF -er

Bruken av TMPF -er inkluderer:

1. Det er alltid et internt montering i kjernen som ikke kan sees. SYSV delt minne og delte anonyme kartlegginger bruker begge TMPF -ene. TMPFS -montering er uavhengig av config_tmpfs. Den brukerens synlige delen av TMPFS vil ikke opprettes hvis Config_TMPFS ikke er angitt. Imidlertid eksisterer interne mekanismer til enhver tid.

2. POSIX Delt minne (SHM_OPEN, SHM_UNLINK) krever at TMPF -er blir montert AT /Dev /SHM for GLIBC -versjoner 2.2 og over. Dette kan løses ved å inkludere følgende linje i /etc /fstab -filen:

TMPFS /DEV /SHM TMPFS Standards 0 0

Lag om nødvendig katalogen der du vil montere TMPFS.

Det delte minnet som brukes av SYSV trenger ikke TMPFS -monteringen. Dette gjøres med det interne monteringen. For å bruke det delte minnet i SYSV i 2.3 kjerneversjoner, SHM FS (forgjengeren til TMPFS) måtte monteres.

3. Det er virkelig nyttig for noen brukere å montere det på steder som /tmp og /var/tmp og ha en betydelig bytte disk. I tillegg er sløyfemonteringer av TMPFS -filer nå funksjonelle. Dermed bør flertallet av distribusjonenes Mkinitrd operere med en TMPFS.

4. Og det er for mange til å liste opp.

Monteringsalternativer for TMPFS

La oss utforske noen av monteringsmulighetene med TMPF -er:

størrelse: Dette spesifiserer maksimalt antall byte som kan brukes til en TMPFS -forekomst. Som standard kan bare halvparten av den fysiske RAM brukes uten bytteplass.

Hvis TMPFS -forekomster blir gjort større enn de trenger å være, blir maskinen sittende fast i en dødvakt fordi OOM -behandleren ikke vil kunne frigjøre det minnet.

NR -blokker: Det er det samme som størrelsesalternativet. Imidlertid er det i blokker av Page_Cache_Size.

NR -inoder: Det er den øvre grensen for inodes for denne forekomsten. Standardverdien er halvparten av antall fysiske RAM -sider eller antall Lowmem RAM -sider (på et system med Highmem), avhengig av hva som er mindre.

Konklusjon

Normalt blir TMPFS -filer slettet på tvers av systemets omstart. Men hvis du vil bevare dem, kan du bruke SystemD-TMPfiles. Vi anbefaler at du leser mannssidene hvis du vil lære mer om TMPFS.