GNU/Linux a swap

SWAP, používať alebo nie na moderných systémoch GNU/Linux a moderných počítačoch?

Problematika swapu má niekoľko úrovní, na úvod sa pozrieme čo swap je a na čo slúži.

Linux primárne využíva fyzickú pamäť (RAM – random access memory) a používa takzvaný systém stránkovania. Pri obsadenosti RAM má jadro dve možnosti ako RAM uvoľniť, presunutím na disk do SWAP priestoru alebo odstránením nepoužívaných procesov z pamäte.

Celý tento proces rieši hodnota swappiness.

Obr. swappiness na desktope, 8GB RAM a SSD disk

Tá je v unixových systémoch v základe nastavená na hodnotu 60. Číslo 60 značí, že pri 60% voľnej pamäte spustí využívanie disku ako vyrovnávacej pamäte, čo pri 2GB operačnej pamäte je niečo okolo 800MB.

Samozrejme že aj zvyšná časť okrem tých 800MB je využitá, ale systém sa kvôli I/O zápisom na disk spomalí.

A zároveň je to pri veľkosti RAM nad 2GB plytvanie.

Pokiaľ nastavíte swappiness na 0 (nula) tak deaktivujete swapovanie rovnako ako príkazom swapoff -a.

Obr. htop mem / swap info pri štandardnej činnosti (8GB ram) vypnutý swap

Obr. htop mem / swap info pri otvorení Nikon RAW snímky v Corel AfterShot Pro (8GB ram) vypnutý swap

Vypnutie SWAP alebo nízka hodnota swappiness, však pri malej veľkosti RAM môže výrazne počítač spomaliť, pri OS na GNU/Linux sa to stáva ale iba v prípadoch pri počítačoch s malou RAM a ťažkým grafickým prostredím. Ukážkovým prípadom je Linux Mint a Cinnamon.

Dôvodom spomalenia je, že SWAP funguje ako rozšírenie pre menej dôležité procesy, prejavuje sa hlavne pri pomalých 5400rpm diskoch.

Rovnako vysoká hodnota swappiness môže pôsobiť rovnako.

To je v stručnosti jedna funkcia SWAP, rozšírenie RAM.

Druhá je ako priestor na uloženie obsahu RAM pri hibernácií. Pokiaľ hibernujete počítač je nutné mať aktivovaný SWAP minimálne vo veľkosti 1.5 násobku veľkosť RAM, optimálne dvojnásobok.
Vo všeobecnosti je však skôr raritou hibernácia u bežných užívateľov.

Takže potrebujete SWAP ?

Odpoveď nie je až tak jednoduchá.
Dosť záleží od hardvéru, ktorý používate, od distribúcie GNU/Linux a spôsobu využívania počítača.

SWAP umožňuje systému plynulejšie pracovať s pamäťou, tým, že uvolňuje RAM a presúva bežiace procesy s nižšou prioritou na disk. Na druhej strane to však zároveň znižuje výkon, predsa len disk je oproti RAM pomalý. Najčastejšie používane 5400 alebo 5900 rpm disky sú rádovo pomalšie. Lepšie je navýšiť RAM.

Zároveň si obsadíte istú veľkosť disku, čo je problém hlavne pri nových laptopoch s eMMC flash pamäťami namiesto diskov. Taktiež je problém ak neodhadnete správnu veľkosť SWAP partície. Zmenu prevediete jedine z Live média.

Ak nehibernujete počítač, druhú funkciu nevyužijete. A pri výkone súčastného hárdvéru keď štart linuxu je do 35-40 sekúnd nemá zmysel hibernovať.

Používam najčastejšie na cestách ľahké laptopy Acer ES1-111M (11″ Baytrail CPU, 2GB ram a 32GB eMMC), Acer CB3-111 (11″ chromebook GNAWTY, Baytrail CPU, 2GB ram a 16GB eMMC) a Asus X101CH (10″ Atom n2600, 1GB ram, 16GB CF karta. Jediný, kde mám SWAP o veľkosti 1.3GB je je ACER ES-1-111M. Je to z dôvodu občasnej úpravy fotografií.

Obr. Acer ES1-111M Gparted a htop. Bez swap, EFI boot a jedna partícia na všetko.

Obr. Acer CB3-111 Gparted a htop. Bez swap, EFI boot a jedna partícia na všetko.

Obr. Asus X101C Gparted a htop. Bez swap, Legacy boot a jedna partícia na všetko.

Obr. Desktop Gparted a htop, dve partície sú preto, že ide o dualboot Xubuntu 18.04 a MX17.1. Bez swap, legacy boot a jedna partícia na všetko v oboch inštalačkách.

Ako vidieť ide o 2GB RAM, z toho v jednom prípade nie je možný upgrade (chromebook) a 1GB RAM na Asuse i napriek neexistencií SWAP sú notebooky plne použiteľné a nemajú problémy s načítaním ani spúšťaním procesov.

Prečo používam na cestovanie ASUS X101CH s 1GB RAM?

Nuž je to lepšie na písanie ako tablet a je príjemne malý. Čo ale s ním ak má len 1GB RAM, SWAP by mal pomôcť. Pracovné veci a súbory, ktoré potrebujem mám aj tak synchronizované v cloude (mega, gdrive a wölkli)

Nuž nie je to tak. Je tam CF karta a tá je síce rýchlejšia ako pevný disk ale i tak spomaluje počítač. Čiže aj tam pôsobí SWAP skôr negatívne.

Takže namiesto používania SWAP som na ASUS X101CH a na chromebooku SWAP vypol. Takže namiesto presúvania procesov a stránok v pamäti sa procesy pri nečinnosti vypínajú, čo síce spomaluje prepínanie medzi aplikáciami či ich spúšťanie, na strane druhej to notebooky udržuje svižnejšie ako pri použití SWAP.

Jedinou prekážkou v súčastnosti začínajú byť internetové prehliadače.

Štandardne si GNU/Linux vezme z RAM okolo 300MB. Prehliadač bez problémov zvyšok, do akejkoľvek veľkosti.

Našťastie sa to mení a Google Chrome prestal predčítavať a otvárať karty v prehliadači, čím sa podstatne znížila spotreba RAM. Teraz 5-6 otvorených kariet v Chrome, Clementine, Geary a obsadenosť RAM sa pohybuje okolo 1.2-1.5GB.

Takže finálne, potrebujete SWAP?

Ak máte 4GB RAM a nepoužívate GIMP, Darktable, Krita, Wine či Virtualbox, tak ani nie, ale upravte si swappiness na nižšiu hodnotu, optimalne 1.

Pokiaľ máte 8GB a viac, tak SWAP nepotrebujete.

Tento príspevok bol písaný a publikovaný na mojom blogu.

Štítky , , .Záložka pro permanentní odkaz.

23 reakcí na GNU/Linux a swap

  1. broukal říká:

    Kedze pouzivam cinnamon, tak to zahltenie 8 GB RAM, som zazil casto a ked sa spustil presun na do swapu tak ostal system skoro nefunkcny az do doby lez presunul par giga… Roky som na to nadaval az som sa nedavno rozhodol ze nahradim svoj predovleny prehliadac firefox za operu a vymenil som komunikator franz „1GB ram potrebuje na prevadzku“ za rambox a div sa svete odvtedy mam pokoj a ram sa este ani raz nezahltila ani po par hodinach prace a otvarani nespoctu programov.

    • xxx říká:

      no kombinacia LM 18.3 Cinnamon, FF, Thunderbird a Skype zabili komp s 32GB ram ( i7 7700k + 256GB SSD) swap nastaveny na 10 (cize swapovat mal zacat po naplneni 29GB ram)

      len to je problem LM, kedze ubuntu sa tak nesprava ani s narocnejsim KDE

    • broukal říká:

      Tak vcera som sa zas dostal na 95% zaplnenia ram, nastastie sa este nespustilo presuvanie do swapu tak som zapol monitor systemu a zacal hladat zruta a zistil ze sa nejako zacyklil program rambox ktory bezne na jeden komunikacny kanal bere okolo 100 – 200 MB ram, tak sa nejakym zazrakom dostal na 1,7 GB ram. Po jeho vypnuti a zapnuti zas vsetko v poriadku..

  2.  glutenfreediet říká:

    Děkuji za informaci. Pohlídám si to.

  3. Zann říká:

    Já tedy nevím co s těmi PC (laptopy) děláte, ale já mámn 16GB RAM, LM na Cinnamonu a vživotě se mi nepodařilo to zabít. 3/4 RAMky tam permanentně chrápe a to používám FF, TB, a mrtě jiných věcí (někdy i naráz) … to by mě fakt zajímalo a hlavně, jak to v reálněm čase vlastně měříte.

    • takyradějianonymně říká:

      … záleží vždy na subjektivních okolnostech a je to zřejmé i z dosavadních tady komentářů.
      Navíc v článku se hovoří řádově o RAM 2 GB a 1 GB a což je o řád méně než tvých 16 GB. Ty subjektivní okolnosti také asi znamenají použitou distribuci a navíc případně jak se dotyčný v čem a kde v systému hrabal a nastavoval. Jde také o uvolňování paměti a už se nepamatuji kde a v čem, ale také jsem kdysi dávno zaznamenal jak mně webový prohlížeč (verze) postupně(!) tu paměť doplna zaprasil.
      Tebou uvedené volné 3/4 RAM z 16 GB souhlasí s mým dosavadním poznáním, že 4 GB RAM pro běžné použití je dostatečných a bez nutnosti swapování. Teď co to píšu tak s náročnějším KDE5 a k tomu v Chrome mám obsazeno z paměti 1 GB.

      • Zann říká:

        Oh, sorry, to jsem úplně zazdil že té RAM je tam jen 2 nebo dokonce 1GB, vůbec mě nenapadlo že tohle ještě může dneska někdo používat, nebo z toho dokonce vyvodit závěr zda-li má SWAP smysl nebo ne. Tím se mnohé vysvětluje a víceméně se potvrdilo že ty mraky kverulantů, co na diskusích nadávají na Linux „bo moc žere“ jedou pravděpodobně na stejných plečkách.
        A ještě tedy můj druhý dotaz, jak zjistit využití RAM v reálném čase? Zkoušel jsem nějaké widgety ale to je spíše na parádu něž že by to mělo nějakou vypovídací hodnotu.

        • lombardo1981 říká:

          V termináli na toto slúži príkaz watch.

          Príklad:
          watch -n1 free -m

          -n1 je jednosekundová obnova

          • Míra, ok1ufc říká:

            Funguje. Díky. Naučil jsem se zase něco nového. Data odpovídají výstupům z grafických programů.

            Z jiného soudku – píšete někde o Archlinuxu?
            Nemám až tolik zkušeností s operačními systémy a to, co jsem se naučil, bylo z nouze. Nebyl jsem příznivcem rolling release, protože jsem nevěřil, že to může fungovat. Jenže jsem nedávno na jednom digipískovišti pustil všechny aktualizace a kupodivu to dopadalo překvapivě dobře a nainstalované aplikace neskončily. K tomu si kamarád nainstaloval voidlinux a také samé dobré zkušenosti …

            • lombardo1981 říká:

              Áno. Pre web pôvodného admina odtiaľto: https://arch-linux.cz/

              Rolling release je len iná filozofia prístupu ku aktualizáciám. A vôbec sa toho netreba báť.

              • Míra říká:

                Velice děkuji. Ano, rolling release je jiná filosofie přístupu k aktualizacím. Kvůli které (nejen) jsem opustil Windows …

        • xxx říká:

          no dokonca sa predavaju notebooky s 2GB ram. a to bez moznosti upgrade.
          Acer Aspire ES11 , VisionBook 10Wi-S, VisionBook 14Wi-S, Lenovo IdeaPad 120S-11IAP , ASUS VivoBook E12 atd. vsetko s os WinX.

          k druhej casti, ako pisala L, watch, popripade to vie conky
          conky

          • Zann říká:

            No, prodávají … ony je obchody mají v nabídce, ale jestli se prodávají, to zase tak určitě nevím. Upřímně, k čemu je dneska stroj s 2GB RAM, když tohle obvykle spotřebuje už sám OS? Tak možná ještě na XPčka 😀

            • xxx říká:

              no bezi na tom win 10, bohuzial je stale dost „odbornikov“ co to ponukaju….
              A potom sa ludia ozyvaju ze maju super nadupany multimedialny notebook, ktory im je na ….
              Inak rovnako som sa dostal k Acer ES1-111M. znamy to kupil v NAY elektro v BA ako supervykonny stroj vhodny na vsetko…. (2015) a nakoniec mi ho dal, lebo na pracu v autoservise to nemalo konektory (potrebuje rs-232) a doma to nezvladalo nic. az po otvoreni som zistil ze ram sa da pridat, ale to uz som ho mal cez pol roka.
              Na MX17, Xubuntu ci Deepin 15.5 beha ako dabel s 2GB ram. pokial clovek nechce robit s GIMP alebo DarkTable. inak aj SuperTux kart bezi na vysokych detailoch. Takze ako domaci notas v pohodke.

              Horsie je ze vsetky novsie maju ram na mb… a cpu preznacene Intel Atom bordel…

              • Zann říká:

                Ne, Win 10 na tom neběží (jak se záhy každý naletivší zákazník osobně přesvědčí), Win 10 jsou na tom nainstalovány a to je rozdíl 😉

    • Míra, ok1ufc říká:

      Tak na stejnou otázku jsem se také chtěl zeptat. Protože mám většinou jen 4GiB (v jednom jen 3) na notebooku, swap oddíl kolem 4G, LM Cinnamon a občas kouknu, jak je RAM obsazená a stále pohoda. Pak jsem si přečetl pozorně „broukala“, je fakt, že nepoužívám FF, ale Operu (zdá se mi dost rychlá) a nainstalované mám Chromium (používá manželka a děti). K měření – dřív jsem spustil Sledování systému – prostředky …, jindy jen juknu na PSensor – free memory, tím ale primárně hlídám teploty disků, pokud je náhodou měním. To jsem zrovna na jedné šunce (Lenovo Idea Q180 dělal), dal jsem Crucial SSD 500 GB a toto mini PC už se nebylo schopné v parném létě uchladit (disk měl přes 70 st. C), tak jsem ho otočil vzhůru nohama, aby disk byl nahoře, do deklu udělal pořádnou díru, ale nakonec jsem vykuchal CD mechaniku a dal tam 2 ventilátorky 40 mm (5V/200mA). Disk má nepatrně přes 40 st.C, a jádra 45 a 50 st.C.

      • xxx říká:

        pokial sa s 3,4 GB ram ntb neuspava, stacil by rezervny swap 2GB a swappiness 10, zalezi na co sa to pouziva,
        mam jeden ntb 3GB ram klasicky 60GB hdd 5400rpm na monitor siete + sa tam stahuji info z arduina a meteostanice.
        swap 1GB swappiness 10, ntb nevypinam, na zdroji nonstop, zakaz uspavania aj disku, iba monitor po 10min. ak by vypadol prud, baterka udrzi cca 2-2,5h a mal by ist uspat na disk nie hibernovat. takze swap nepotrebujem a za 14 mesiacov swap nebol pouzity.

        • Míra, ok1ufc říká:

          Určitě souhlasím. Ano, záleží, na co se používá. Mám podobný stroj, slouží jako ovládací skříňka několika měřicích přístrojů a přepínačů přes sériové porty (USB to RS232), napsáno v Gambasu. OS lze uspat na disk (to funguje), neběží mi to tak dlouho, spustil jsem to někdy v únoru, když jsem vedle Win XP přidal do druhého oddílu LM18.3. Linux-swap jsem sice vytvořil, ale rovněž nebyl použitý. Jenže to jsem nevěděl a na disku 120G s PATA rozhraním je a asi i stále bude místa víc než dost pro oba OS …Win jsem navíc už také nikdy nespustil, protože ty nové prográmky jsou z hezčích komponent a navíc mi LM běží s vyhovující časovou synchronizací ze sítě, ve Win jsem musel mít puštěný Dimension 4, taky nějaký antivirák …

  4. Mike říká:

    Ať dělám co dělám, nedaří se mi změnit defaultní hodnotu swappiness.
    A to v žádném distru. Provedeno v LM 19, 18.2, 17.3, Jessie, Stretch.
    Proveden vždy zápis v sysctl.conf na konci souboru wm.swappiness = 10 . Ale po rebootu je hodnota swappiness stále 60. Řešení se mi nepodařilo najít. Má někdo radu ? Díky.

    • xxx říká:

      v terminali?
      postup pre LM
      gksudo xed /etc/sysctl.conf
      doplnit na koniec
      # Zníženie použitia swap na použiteľnú úroveň
      vm.swappiness=10

      ulozit restartovat

    • lombardo1981 říká:

      Čo sa týka LM so systemd, tak ten od určitej verzie používa toto:

      /etc/sysctl.d/99-sysctl.conf

      OBSAHUJE: vm.swappiness=10

      ZNOVUNAČÍTANIE VŠETKÝCH KONF. SÚBOROV:
      sysctl –system (s dvoma pomlčkami)

      ZNOVUNAČÍTANIE KONKRÉTNEHO KONF. SÚBORU:
      sysctl -p /etc/sysctl.d/99-sysctl.conf

      • Mike říká:

        Díky za odpovědi ( zejména 2 lombardo1981 ) . Problém byl zřejmě v tom, že jsem sice udělal správně zápis o změně hodnoty swappiness v konfiguračním souboru , ale poté jsem hned rebootoval aniž bych před rebootem spustil znovunačtení sysctl -p /etc/sysctl.d/99-sysctl.conf.

    • theseuszn říká:

      V LM19 si už systém tvoří složku pro swap, takže bys swapový oddíl nemusel mít.

Napsat komentář

Vaše emailová adresa nebude zveřejněna.