Tmpfs

From EIK wiki
Tmpfs.jpg

Sissejuhatus

Tmpfs on ajutine failivaramu paljudes UNIXi-laadsetes operatsioonisüsteemides, mis hoiab faile virtuaalmälus. Ajutiselt tähendab seda, et reaalselt mitte ükski fail ei salvestu kõvakettale. tmpfs-i lahtiühendamisel (umount käsu abil) või peale süsteemi taaskäivitamist kõik, mis oli sinna salvestatud - kaob ära [1].

Tmpfs süsteemi kasud:

Dünaamiliselt muutuv failisüsteemi suurus, ehk kui kopeeritakse Tmpfs failisüsteemi täiendavaid faile, siis süsteem automaatselt suurendab Tmpfs failisüsteemi mälumahtu ning vastupidi, kui kustutada faile, siis süsteem vabastab ressursi virtuaalmälule. Tingimustes kus Virtuaalmälu hakkab väheks jääma ja saaleala on seadistatud, suudab süsteem suunata Tmpfs failiandmeid saalealale, vabastades virtuaalmälu teisteks vajadusteks. Metaandmeid ja kataloogi sisukirjeldust üldjuhul ei suunata saaleala vahendusel, tõstetakse ringi ainult failide sisu.

Kiirus. Kuna Tmpfs süsteem hoiab failide metaandmed ja ja faile virtuaalmälus, siis failide kirjutamine ja lugemine toimub praktiliselt silmapilkselt.

Failide kustustamine toimub automaatselt, peale süsteemi taaskäivitamist või tmpfs-i lahtiühendamisel (umount käsu abil).


Kuidas tmpfs töötab

Tmpfs’i abil on võimalik eraldada osa füüsilisest mälust, mida saab kasutada kettajaona. Kettajagu saate külge ühendada (mount käsuga) ning hakata kirjutama ja lugema faile sama moodi, nagu kõvaketta kettajao puhul. Kuid kuna kirjutamine ja lugemine toimub muutmälus (RAM), muutub see oluliselt kiiremaks[2].

Kõigepealt on vaja luua kaust käsuga:

mkdir -p /mnt/tmp

Seejärel ühendame külge tmpfs:

mount -t tmpfs tmpfs /tmp
mount -t tmpfs -o size=20m tmpfs /mnt/tmp

size=bytes määratakse maksimaalne võimalik kasutatav mälu maht. Maht on etteantud bittides. on võimalik kasutada täpsustavaid parameetreid nagu k, m, g, ki, mi, bi ja %.(size=50%)

df -k käsu abil näeme, et viimane rida näitab eespool paigaldatud /mnt/tmp tmpfs faili süsteemi:

df -k
Filesystem      1K-blocks  Used     Available Use%  Mounted on
/dev/sda2       32705400   5002488  26041576  17%   /
/dev/sda1       194442     18567    165836    11%   /boot
tmpfs           517320     0        517320    0%    /dev/shm
tmpfs           20480      0        20480     0%    /mnt/tmp

Kasutusalad

Mõningad kataloogid mille puhul üldjuhul Tmpfs süsteemi kasutatakse on /tmp, /var/lock ja /var/run[3].

Kuid ei ole soovitatav kasutada /var/tmp kataloogi puhul kuna antud kataloogi failid on mõeldud säilima ka peale süsteemi taaskäivitust.


Tmpfs vs ramfs

Üldiselt nii tmpfs kui ka ramfs teevad sama asja väikeste erinevustega[4].

Tmpfs ja ramfs võrdlustabel
Võimalused Tmpfs Ramfs
Kasutab ära maksimum kettaruumi ning jätkab kirjutamist Kuvab veateade Jätkab kirjutamist
Piiratud maht Jah Ei
Kasutab saaleala Jah Ei
Lühiajaline andmesalvestus Jah Jah

Kokkuvõte

Tmpfs’i on mõistlik kasutada kiiremaks juurdepääsuks andmetele, mis ei ole kriitilised.

Autor

Aleksandra Sepp AK21
veebruar 2018 a.

Kasutatud materjalid

  1. https://www.kernel.org/doc/Documentation/filesystems/tmpfs.txt
  2. https://wiki.centos.org/TipsAndTricks/TmpOnTmpfs
  3. https://www.thegeekstuff.com/2008/11/overview-of-ramfs-and-tmpfs-on-linux
  4. https://www.freebsd.org/cgi/man.cgi?query=tmpfs#end
  5. https://wiki.archlinux.org/index.php/tmpfs
  6. http://citforum.ru/operating_systems/linux/robbins/fs03.shtml