Adresář /tmp v tmpfs a ještě jinde

beer

  • *****
  • 729
    • Zobrazit profil
Adresář /tmp v tmpfs a ještě jinde
« kdy: 19. 09. 2012, 15:47:02 »
Ahoj, chtěl bych si ujasnit pár věcí.

Četl jsem článek http://www.linuxexpres.cz/praxe/vyuzitie-tmp-adresara-v-ram, kde je popsána možnost umístit /tmp do tmpfs.

Píše se tam:

Citace
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):
Kód: [Vybrat]
mount --bind /home/juro/tmp /tmp chmod 777 /tmp
Já jsem si vytvořil adresář /tmp2 na samostatném ext2 oddílu a chtěl jsem, aby při dosažení limitu tmpfs byla data sypána do /tmp2.

Do /etc/fstab jsem si přidal:

Kód: [Vybrat]
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
UUID=XXXXXXXX /tmp2 ext2 noatime,defaults 0 0
/tmp2 /tmp none bind 0 0
Bylo mi ale řečeno, že toto nefunguje, protože bind problém nevyřeší, že dojde k tomu, že se nebude používat tmp v rámci tmpfs, ale jen ten oddíl ext2.

Mohu poprosit o informaci, jak tedy to vyřešit, aby při dosažení limitu tmpfs (defaultně polovina ram, mám 4 GB, to znamená v mém případě 2 GB) byla data ukládána do /tmp2? Například pokud bych si do /tmp nakopíroval celé dvouvrstvé dvd, aby se uložilo fyzicky na disku, ale menší soubory do limitu 2 GB aby se ukládaly do /tmp v rámci tmpfs?

Děkuji
« Poslední změna: 19. 09. 2012, 22:43:08 od Petr Krčmář »


anonym

Re:/tmp v tmpfs
« Odpověď #1 kdy: 19. 09. 2012, 15:54:58 »
kouknul bych na aufs, podle webu by to melo umet

AlYoSHA

Re:/tmp v tmpfs
« Odpověď #2 kdy: 19. 09. 2012, 16:15:48 »
Hello,

Radsej by som sa postaral o to aby sa /tmp nezaplnilo a vykaslal by som sa na taketo krkolomne riesenia.  Pokial mas aplikaciu ktora ti vygeneruje v /tmp gigabajty dat tak:
a) aplikacia je nejaka chora pretoze /tmp je urcene na ukladanie docasnych dat preto /tmp (aka temporary)
b) ak z nejakeho dovodu musi generovat tony dat v /tmp, potom je lepsie dat /tmp na klasicky disk a nie do tmpfs

beer

  • *****
  • 729
    • Zobrazit profil
Re:/tmp v tmpfs
« Odpověď #3 kdy: 19. 09. 2012, 16:27:56 »
Hello,

Radsej by som sa postaral o to aby sa /tmp nezaplnilo a vykaslal by som sa na taketo krkolomne riesenia.  Pokial mas aplikaciu ktora ti vygeneruje v /tmp gigabajty dat tak:
a) aplikacia je nejaka chora pretoze /tmp je urcene na ukladanie docasnych dat preto /tmp (aka temporary)
b) ak z nejakeho dovodu musi generovat tony dat v /tmp, potom je lepsie dat /tmp na klasicky disk a nie do tmpfs

tmpfs je rychlejší, proto bych nějaké řešení preferoval. Pokud vypaluješ iso soubory, tak se obsah ukládá do RAM, možná ne vždy, ale mne vypalovací programy při nedostatku místa v /tmp prostě nejedou. A řešit jednourázovým mountováním přes bind se mi nechce, protože sice při vypalování by to pomohlo, ale instaluji linux i lidem, u kterých jsem radši, když do systému nevrtají.

beer

  • *****
  • 729
    • Zobrazit profil
Re:/tmp v tmpfs
« Odpověď #4 kdy: 19. 09. 2012, 16:30:15 »
oprava, při vypalování se ukládá obsah do /tmp...

kouknul bych na aufs, podle webu by to melo umet

AuFS je spíše pro dočasné mountování, jestli se nepletu. Není mi jasné, jak by to fungovalo.

Mohu poprosit o nějaký příklad?


JardaP .

  • *****
  • 11 064
    • Zobrazit profil
    • E-mail
Re:/tmp v tmpfs
« Odpověď #5 kdy: 19. 09. 2012, 23:50:58 »
tmpfs je rychlejší, proto bych nějaké řešení preferoval.

Pozor, na nekterych strojich to naopak vede ke zpomaleni uplne vseho. Odezva GUI je pak uplne strasna. Nerikam, ze je to typicke chovani, ale mam takove stroje dva. Takze doporucuji vyzkouset obe varianty a pak se rozhodnout.

beer

  • *****
  • 729
    • Zobrazit profil
Re:Adresář /tmp v tmpfs a ještě jinde
« Odpověď #6 kdy: 20. 09. 2012, 09:22:28 »
OK, díky. Předpokládám, že ty stroje mají málo ram a pak swapují o 106.

JardaP .

  • *****
  • 11 064
    • Zobrazit profil
    • E-mail
Re:Adresář /tmp v tmpfs a ještě jinde
« Odpověď #7 kdy: 20. 09. 2012, 10:06:28 »
OK, díky. Předpokládám, že ty stroje mají málo ram a pak swapují o 106.

Prave, ze ne. Nemaji sice 32 GB (ten silnejsi ma tusim 3 GB), ale jak zpomaleny zaber se chovaji hned po spusteni, kdy je jeste hafo RAM volne.

AlYoSHA

Re:/tmp v tmpfs
« Odpověď #8 kdy: 20. 09. 2012, 11:17:27 »
Hello,

Radsej by som sa postaral o to aby sa /tmp nezaplnilo a vykaslal by som sa na taketo krkolomne riesenia.  Pokial mas aplikaciu ktora ti vygeneruje v /tmp gigabajty dat tak:
a) aplikacia je nejaka chora pretoze /tmp je urcene na ukladanie docasnych dat preto /tmp (aka temporary)
b) ak z nejakeho dovodu musi generovat tony dat v /tmp, potom je lepsie dat /tmp na klasicky disk a nie do tmpfs

tmpfs je rychlejší, proto bych nějaké řešení preferoval. Pokud vypaluješ iso soubory, tak se obsah ukládá do RAM, možná ne vždy, ale mne vypalovací programy při nedostatku místa v /tmp prostě nejedou. A řešit jednourázovým mountováním přes bind se mi nechce, protože sice při vypalování by to pomohlo, ale instaluji linux i lidem, u kterých jsem radši, když do systému nevrtají.

Nie tak celkom.  Par krat som sa presvedcil ze nie vzdy je rychlejsi.  Naposledy to bolo ked som mal v tmpfs AFS disk cache a viedlo to ku skaredemu spomaleniu celeho OS.   Pri napalovani vam iso image ulozeny na klasickom disku urcite napalovaci proces nespomali.

Juraj

Re:Adresář /tmp v tmpfs a ještě jinde
« Odpověď #9 kdy: 20. 09. 2012, 11:46:20 »
Skus pred vypalovanim nastavit TMPDIR premennu prostredia(environment variable), napriklad v bashi:

export TMPDIR=/var/tmp

ak nie je vo /var miesto tak kdekolvek inde kde je dostatok miesta.

Ak tie vypalovacie programy co pouzivas neumoznuju nastavit iny adresar na pracovne subory, bud pomocu tejto premennej alebo inac tak nahlas bug a pouzi nieco ine. To je ovela lepsie riesenie nez sa babrat s aufs.

beer

  • *****
  • 729
    • Zobrazit profil
Re:Adresář /tmp v tmpfs a ještě jinde
« Odpověď #10 kdy: 21. 09. 2012, 11:29:46 »
Díky, mrknu na ty promněné.