Fórum Root.cz
Hlavní témata => Software => Téma založeno: beer 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 (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:
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
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:
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
UUID=XXXXXXXX /tmp2 ext2 noatime,defaults 0 0
/tmp2 /tmp none bind 0 0Bylo 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
-
kouknul bych na aufs, podle webu by to melo umet
-
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
-
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í.
-
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?
-
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.
-
OK, díky. Předpokládám, že ty stroje mají málo ram a pak swapují o 106.
-
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.
-
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.
-
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.
-
Díky, mrknu na ty promněné.