Velikost automaticky vytvářeného tmpfs v Debianu

Linuxové distribuce automaticky vytvářejí ramdisk (a to jak skutečný pouze v paměti, tak i tmpfs ve virtuální paměti, tedy i swapu — Díky Luke, že se shm může odswapovat jsem netušil). Mají různá použití, Debian tam má nasměrovaný i systémový temp, další (/run/shm) je pak pro obecné použití libovolnou aplikací. Větší velikost se hodí třeba pro Minecraft server.

Výchozí velikost se zdá být o něco méně než polovina systémové paměti. Tohle platí až do určité velikosti RAM, potom se velikost tmpfs zastaví na 3.2 GiB a přidání RAM (v tomto případě 16 GiB)  nezaručuje automatické navýšení velikosti na očekávaných 8GiB:

tmpfs  3.2G  2.3G  837M  74% /run/shm

Velikost připojovaného tmpfs (/run/shm) se v Debianu Wheeze nastavuje v souboru /etc/default/tmpfs, a je to položka SHM_SIZE (v B). Následující nastavení zajistí automatické vytvoření s velikostí 8GiB:

SHM_SIZE=8G

Po rebootu to potom vypadá takto (2.3 GiB zabírají datové soubory Minecraft serveru):

tmpfs 8.0G 2.3G 5.8G 29% /run/shm

Díky z0nymu za info a díky Lukovi za upřesnění. :-)

Příspěvek byl publikován v rubrice Debian, Linux, Systémy souborů. Můžete si uložit jeho odkaz mezi své oblíbené záložky.

7 komentářů: Velikost automaticky vytvářeného tmpfs v Debianu

  1. Luk napsal:

    Označení „ramdisk“ není správné. V Linuxu existuje i skutečný ramdisk, který ukládá data pouze do RAM. Ale tmpfs ukládá data obecně do virtuálního paměťového prostoru, který se může nacházet jak v RAM, tak i případně ve swapu.

    • Heron napsal:

      Díky, článek jsem upravil. Netušíš odkud se bere výchozí maximální hodnota 3.2GiB? V sysctl jsem nic moc kloudného nenašel, je to vlastnost toho modulu?

      • Luk napsal:

        Je to divné. V dokumentaci, ale i přímo ve zdrojáku vanilly 3.5, je default půlka fyzické paměti a pro explicitní nastavení žádný limit není. Jestli není nějaká chytristika v distribučním jádru Debianu, to fakt nevím.

  2. Michal Hrusecky napsal:

    Co se tmpfs tyce, tak pri mountu ma parametr size, kterej se da nastavit podle potreby. Ja mam do jednoho adresare primountovany tmpfs se size=175% a funguje to dle ocekavani (a holt kdyz je zpulky plnej, tak se zacina swapovat, ale obcas tam mam bordel kterej sem potreboval kdysi rychle, ale pak uz nevadi, kdyz se odswapuje). Da se to normalne napsat do fstabu ;-)

    • Luk napsal:

      Ale pozor na to, že nastavením příliš velké velikosti se dá systém shodit. Pokud nastane situace, že se to zaplní natolik, že už nelze uvolnit paměť potřebnou pro běh systému (není už kam swapovat ani nelze dál uvolňovat cache), je konec.

      • Michal Hrusecky napsal:

        Neni konec, je na rade oom killer ;-)

        • Luk napsal:

          Ale to nemusí stačit – dokumentace přímo říká:

          „If you oversize your tmpfs instances the machine will deadlock since the OOM handler will not be able to free that memory.“

Komentáře nejsou povoleny.