GNU/Linux >> Znalost Linux >  >> Linux

Swap na tmpfs (Samozřejmě špatný nápad, ale je to možné?)

Nemělo by to být možné. swapon systémové volání vyžaduje readpage a bmap (nepřímo) volání implementovaná souborovým systémem:

http://lxr.free-electrons.com/source/mm/swapfile.c?v=4.0#L2412

if (!mapping->a_ops->readpage) {
    error = -EINVAL;
    goto bad_swap;
}   

Žádný z nich však není implementován pomocí tmpfs , taková položka chybí v odpovídajícím address_space_operations :http://lxr.free-electrons.com/source/mm/shmem.c?v=4.0#L3104

Ze stejného důvodu tmpfs nemůže držet připojení smyčky a nebude fungovat ani ramfs (nemá bmap zavolat)


Z této otázky a odpovědi https://superuser.com/questions/539287/swapon-failed-invalid-argument-on-a-linux-system-with-btrfs-filesystem (původní odkazovaný web nereaguje):

Takže "Neplatný argument" by měl být chápán jako "Váš souborový systém nepodporuje odkládací soubor"

Domnívám se, že důvodem nekompatibility je "kruhová závislost". Z tohoto článku:http://www.jamescoyle.net/knowledge/951-the-difference-between-a-tmpfs-and-ramfs-ram-disk:

Tyto dva rozdíly mezi ramfs a tmpfs dělají tmpfs mnohem lépe řiditelnými, nicméně toto je jedna velká nevýhoda; tmpfs může používat prostor SWAP. Pokud vašemu systému dojde fyzická RAM, soubory ve vašich tmpfspartitions mohou být zapsány na diskové oddíly SWAP a budou muset být načteny z disku při příštím přístupu k souboru.

Což by ve vašem scénáři bylo téměř nemožné.

Mohlo by pracovat s ramfs , tho - který tento problém nemá.


Linux
  1. Použití mod_cluster v Apache

  2. Přesměrování HTTP na HTTPS v NginX

  3. Linux – Je možné spustit Oom-killer při vynucené výměně?

  1. Výměna místa na cloudových serverech

  2. Je možné přerušit vypnutí na Linuxu?

  3. V Linuxu je možné použít .dll

  1. Je možné pingnout adresu:port?

  2. Je špatný nápad provést upgrade apt-get v kontejneru OpenVZ?

  3. Stahování HTTP se po nějaké době zastaví, obnovení není možné