přejít na obsah přejít na navigaci

Linux E X P R E S, Využitie /tmp adresára v RAM

Využitie /tmp adresára v RAM

memory.jpg

Keďže Linux relatívne ľahko umožňuje pre pracovné účely využívať pamäť podobne ako disk, tu si povieme o výhodách i nevýhody takéhoto riešenia so zameraním na adresár /tmp.


reklama

Adresár /tmp je pracovný a ukladajú sa sem mnohé súbory. Ak napríklad v internetovom prehliadači otvoríte nejaký PDF dokument, tak aby ste ho mohli prečítať, ten sa dočasne uloží do /tmp a odtiaľ ho potom čítajú programy ako Acroreader. Slovko TMP je odvodené od anglického slova "temporary" (dočasný) a z názvu vyplýva, že /tmp adresár slúži iba pre dočasnú prácu. Keďže Linux dáta zapisuje na pevný disk, je úplne zrejmé, že ak je /tmp adresár v pamäti, otváranie súborov a teda i celková práca s počítačom je o niečo, ak nie oveľa, rýchlejšia.

Ako sa to robí?

Urobíte to príkazom:

mount -t tmpfs -o size=20m tmpfs /tmp
chmod 777 /tmp

Alebo i editáciou súboru /etc/fstab:

tmpfs /tmp tmpfs size=750M,mode=2777 0 0

Pokiaľ pre tmpfs disk neuvediete veľkosť, systém adresáru spravidla pridelí polovicu RAM.

Aké sú výhody?

  • Zapisovanie i čítanie dát v operačnej pamäti je rýchle, zvyšuje sa teda výkonnosť.
  • Bezpečnosť - citlivé dáta prestanú po reštarte systému existovať v /tmp adresári; pokiaľ si šifrujete i swap, po reštarte sú dáta bezpečné i tam.

Ramfs a tmpfs - aký je rozdiel?

V Linuxe je možné použiť až dve riešenia pre vytvorenie disku (diskov) v pamäti - tmpfs a ramfs. Táto informácia je dôležitá, pretože priestor v pamäti, ktorý pridelíte adresáru /tmp, a pravdaže aj RAM sa bude v oboch prípadoch inak správať.

Tmpfs používa aj swap. Pokiaľ nebudete chcieť, aby pamäť v /tmp adresári stránkovala procesy do swapu, použite ramfs:

mount -t ramfs -o size=20m ramfs /tmp
chmod /tmp 777

Ramfs však, i pri stanovení fixnej veľkosti (ako 20 MB), sa bude nekontrolovateľne zväčšovať podľa objemu dát, ktoré sa ukladajú do /tmp, čo sa ukáže ako nevýhoda, keď sa /tmp nafúkne do veľkosti celej RAM, až napokon celý systém spadne.

Konkrétne príklady v praxi

Otvárame príliš veľký súborOtvárame príliš veľký súbor

Tmpfs nemá možnosť sa dynamicky (podľa potreby) zväčšovať. Pri pokuse otvoriť (nie uložiť) 50 MB PDF súbor cez Firefox s /tmp adresárom vytvoreným pomocou tmpfs o veľkosti 20 MB systém vyhlásil, že v /tmp adresári nie je dostatok miesta.

Možno niektorí užívatelia budú neoprávnene sklamaní, ale tmpfs vás ochráni pred zaplnením operačnej pamäti a tým pádom aj pred haváriami.

Chýba miestoChýba miesto

Tmpfs sa teda nerozťahuje dynamicky a nepovolí väčší objem dát, ako ste mu určili. Ale možno sa niekto spýta, že ako je to možné, keď tmpfs používa aj swap?

Swapovanie je kopírovanie pamäťových stránok (v RAM) do swapovacieho súboru na pevnom disku s cieľom, aby sa uvoľnila pamäť a aby práve zbehnuté procesy vždy dostali priestor v pamäti. Keď sa užívateľ k starším procesom vráti, systém ich skopíruje späť zo swapu do operačnej pamäti. Tmpfs spolupracuje so swapom rovnakým spôsobom, ale disky vytvorené v rámci tmpfs sú ohraničené a pri nízkej kapacite /tmp adresára čakajte, že sa často môžu objaviť chybové hlásenia, že na zariadení nie je dostatok voľného miesta.

Tento problém obídete všelijako, i pomocou voľby bind, ktorú podporuje príkaz mount. Bind aplikujete nasledovne, a to na už existujúci tmpfs adresár /tmp (ktorý ste vytvorili, ako je uvedené vyššie):

mount --bind /home/juro/tmp /tmp
chmod 777 /tmp

Týmto sme dosiahli, že jasne vymedzený priestor v pamäti - napríklad 20 MB (tmpfs), ktorý sme zobrali z RAM a priradili /tmp adresáru, bude zdieľaný spolu s pevným diskom, resp. s adresárom /home/juro/tmp. Keď sa teda /tmp adresár o veľkosti 20 MB vytvorený v rámci tmpfs zaplní, nedostanete žiadne chybové hlásenie o nedostatku miesta a ani nebudete podstupovať žiadne riziko, ako v prípade ramfs, že sa vám v jednej chvíli nekontrolovateľne zaplní RAM a že vám celý systém spadne.

Jednoduchou rečou povedané, na tmpfs a RAM sa treba pozerať skôr ako na jeden celok - procesy v RAM sa kopírujú do swapu.

Na druhej strane, ak adresár /tmp vytvoríte v rámci ramfs, ten sa podľa potreby bude zväčšovať. Vzniká situácia, že do swapu prichádza všetko okrem toho, čo je v ramfs, a keď sa disk ramfs nafúkne až tak, že obsadí celú operačnú pamäť (čo sa vám s tmpfs nikdy nestane), podobá sa to nie na jeden, ale na dva kusy, kedy ten jeden (ramfs) môže ten druhý (RAM) celkom zabiť, až celý systém spadne.

Kedy sa /tmp v RAM najviac vyplatí?

Pokiaľ robíte úlohy, počas ktorých operačný systém musí často používať /tmp adresár - napríklad pri konverzii tisícok audio súborov či iných podobných úloh - tak sa vám vytvorenie /tmp adresára v RAM oplatí.

Určite v rámci tmpfs pre /tmp adresár nezadávajte veľkosť iba 20 MB, ktorú sme tu zvolili len ilustratívne. Ak však vykonávate iba bežnú prácu s internetom či s dokumentmi, väčšiu rýchlosť, hoci ju môžete mať, nepocítite podobne ako v prípade závodného auta, ktoré pre svoju rýchlu jazdu potrebuje podmienky rovnako ako aj tmpfs.

Na rozdiel od /tmp adresára sa neodporúča priradiť do RAM adresár /var/tmp, pretože podľa štandardov FHS (Filesystem Hierarchy Standard) tento adresár slúži pre "dočasné súbory, ktoré vznikajú medzi reštartom systému" - t. j tesne pred a hneď po reštarte. A keďže obsah tmpfs (a samozrejme aj ramfs) po reštarte PC neprežije, umiestnenie /var/tmp do RAM by nebolo kompatibilné s odporúčaniami FHS.

Nahoru

(Jako ve škole)
Průměr: 1,00 | Hodnotilo: 4
 

Top články z OpenOffice.cz

Příspěvky

Využitie /tmp adresára v RAM
Tester 20. 11. 2009, 08:10:11
Odpovědět  Odkaz 
Upgradoval som Ubuntu na verziu 9.10 a tmpfs mi prestal fungovat. Ak mam montovanie cez tmpfs definovane v fstab tak sa v tomto kroku start systemu zastavi a vyhodi to chybu. Nasiel som cez Google nejaku zmienku o tom, ze je to reportovany bug. Viete niekto o tom nieco blizsie? Ak si napr. adresar /tmp namountujem cez tmpfs uz v beziacom systeme tak to spravy bez problemov. Myslite, ze to nesposobi nejaky problem ak by som takto za behu mapoval aj napr. /var/log kedze pri starte to momentalne nejde?
Inak tmpfs vyuzivam takto na mojom netbooku s SSD diskom aby som pracu s uvedenymi adresarmi zrychlil a obmedzil pristupovanie na SSD disk koli predlzeniu zivotnosti.
Využitie /tmp adresára v RAM
Josef 22. 11. 2009, 11:52:46
Odpovědět  Odkaz 
Snad jen doplnim, ze vyse uvedena syntaxe pro fstab mi nejela v Ubuntu 9.10 x86-64. Na netu jsem nasel nasledujici nasledujici, zatimplne funkcni (pridat na konec /etc/fstab):

tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
none /var/tmp aufs noatime,br:/tmp=rw:/var/tmp=ro 0 0
none /var/log aufs noatime,br:/tmp=rw:/var/log=ro 0 0
none /var/cache aufs noatime,br:/tmp=rw:/var/cache=ro 0 0
Využitie /tmp adresára v RAM
LC 23. 11. 2009, 08:40:22
Odpovědět  Odkaz 
tmpfs je dobra vec, zvlaste ve spojeni s vmware workstation. Narust vykonu je pak brutalni :)
Využitie /tmp adresára v RAM
qk 4. 12. 2009, 14:54:33
Odpovědět  Odkaz 
/tmp by mel mit nastavenej stickybit aby si uzivatele nemohli prepsat tmp soubory a tudiz by to melo byt chmod 1777 /tmp

Nebo je tu nejakej duvod proc chmod 777???
Využitie /tmp adresára v RAM
ivandudy 2. 03. 2010, 09:35:55
Odpovědět  Odkaz 
dobry den tymto vas prosim o radu ako sa instaluju cez var adresar a temp do
ipbox 200s cccamy news mgcamdy a tak dalej som natvrdly a nechapem cez co sa davaju tie veco do satelitu mam navod ale tam sa to nepise viem ze trba otvorit totall comander a otvorit var a ist do temp adalej? tak vas prosom pekne pomozte chudakovy co nevie nic a uz pritom ked uz budete tak by som prosil aj navod toho isteho pre dreambox 7020s maja adresa ivandudy@atlas.sk
vopred dik dik dik
Využitie /tmp adresára v RAM
beer 13. 09. 2012, 11:36:28
Odpovědět  Odkaz 
Mohu takto v /etc/fstab spojit ex2 10 GB oddíl s ramfs? Co se stane po zaplnění 2G ramfs? Bude dále pokračovat v užírání prostoru ram, nebo bude odkládat do ext2?

none /tmp ramfs defaults,noatime,mode=1777,size=2048M 0 0
UUID=XXXXXXXX /tmp ext2 noatime,default,bind 0 0

Pokud takto propojím, hrozí stále riziko spadnutí systému?

Přidat názor

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích a pravidlech najdete v nápovědě.
Diskuzi můžete sledovat pomocí RSS kanálu rss



 
 

Juraj Šípoš

Juraj Šípoš (*1959) žije v Bratislave, pracuje v psychologickom ústave so zameraním na detskú psychológiu ako rešeršér, dokumentarista a IT pracovník, venuje sa prekladom a aj literárne činnosti. Vydal niekoľko kníh básní i prekladov, i linuxovské HOWTO pre Xmodmap.


  • Hodnocení autora: *



Public Relations

QNAP uvedl novou modelovou řadu NAS TVS-x82T

Společnost QNAP uvedla na trh novou modelovou řadu NAS TVS-x82T, kterou tvoří tři různé modely (TVS-1282T, TVS-882T a TVS-682T). Nová řada je založena na vícejádrových procesorech Intel Core aktuální generace se 14nm výrobním procesem. Díky nim mohou nové NASy nabídnout dostatek výkonu i pro aplikace náročné na CPU.

Pokračování ...


CIO Agenda 2016