GNU/Linux >> Znalost Linux >  >> Linux

Linux – Jak používat swapovací prostor pouze v případě nouze?

Mám notebook Debian (Buster) s 8 GB RAM a 16GB swap. Spouštím velmi dlouho běžící úkol. To znamená, že můj notebook zůstal zapnutý posledních šest dní, zatímco se protáčí.

Při tom musím pravidelně používat svůj notebook jako notebook. To by neměl být problém; dlouhotrvající úloha je vázána na vstup/výstup, pracuje s věcmi na pevném disku USB a nezabírá mnoho paměti RAM (<200 MB) ani CPU (<4 %).

Problém je když se po několika hodinách vrátím k notebooku, bude velmi pomalý a může trvat 30 minut, než se vrátím do normálu. To je tak špatné, že monitory pádu označují své příslušné aplikace jako zamrzlé (zejména okna prohlížeče) a věci začnou nesprávně padat.

Při pohledu na monitor systému se z 2,5 GB použitých přibližně polovina přesune do swapu. Potvrdil jsem, že se jedná o problém odstraněním odkládacího prostoru (swapoff /dev/sda8 ). Pokud jej nechám bez odkládacího prostoru, vrátí se k životu téměř okamžitě i po 24 hodinách. Se swapem je to na prvních pět minut prakticky cihla, která zbývá jen šest hodin. Potvrzuji, že využití paměti nikdy nepřekročí 3 GB i když jsem pryč.

Zkusil jsem snížit swappiness (viz také:Wikipedia) na hodnoty 10 a , ale problém stále přetrvává. Zdá se, že po dni nečinnosti jádro věří, že celé GUI již není potřeba, a vymaže ho z RAM (vymění ho na disk). Dlouho běžící úlohou je čtení rozsáhlého stromu souborů a čtení každého souboru. Může se tedy stát, že jádro je zmatené a myslí si, že by pomohlo ukládání do mezipaměti. Ale při jediném přetažení 2 TB USB HD s přibližně 1 miliardou názvů souborů extra GB RAM výkonu příliš nepomůže. Jedná se o levný notebook s pomalým pevným diskem. Jednoduše nedokáže dostatečně rychle načíst data zpět do paměti RAM.

Jak mohu říct Linuxu, aby používal odkládací prostor pouze v případě nouze? Nechci běžet bez swapu. Pokud se stane něco neočekávaného a OS najednou potřebuje pár GB navíc, pak nechci, aby se úkoly zabily, a raději bych začal používat swap. Ale v tuto chvíli, když nechám swap povolený, můj notebook prostě nebude možné používat, když ho potřebuji.

Přesná definice „nouzové situace“ by mohla být předmětem diskuse. Abychom ale objasnili, co tím myslím:Nouzová situace by byla tam, kde by systém neměl jinou možnost než vyměnit nebo zabít procesy.

Co je stav nouze?Opravdu se musíte ptát?... Doufám, že se nikdy neocitnete v hořící budově!

Není pro mě možné definovat vše, co by v této otázce mohlo představovat nouzovou situaci. Ale například nouzová situace může nastat, když je jádro tak zatlačeno na paměť, že začalo zabíjet procesy pomocí OOM Killer. Nouzový stav NENÍ, když si jádro myslí, že může zlepšit výkon použitím swapu.

Související:Ubuntu – Jak zkontrolovat připojení SMB a dialekt, který se používá na linuxu?

Konečná úprava: Přijal jsem odpověď, která dělá přesně to, o co jsem žádal na úrovni operačního systému. Budoucí čtenáři by si také měli vzít na vědomí odpovědi nabízející řešení na úrovni aplikací.

Přijatá odpověď:

Mít v dnešní době tak obrovský swap je často špatný nápad. V době, kdy operační systém vyměnil jen pár GB paměti k výměně, se váš systém již prolezl k smrti (jako to, co jste viděli)

Je lepší použít zram s malým záložním odkládacím oddílem . Mnoho operačních systémů, jako je ChromeOS, Android a různé linuxové distribuce (Lubuntu, Fedora), ve výchozím nastavení povolilo zram již roky, zejména pro systémy s menší RAM. Je to mnohem rychlejší než vyměnit na HDD a v tomto případě jasně cítíte odezvu systému. Na SSD méně, ale podle výsledků benchmarku zde stále vypadá rychlejší i s výchozím algoritmem lzo. Můžete změnit na lz4 pro ještě lepší výkon s trochu menším kompresním poměrem. Jeho rychlost dekódování je téměř 5krát rychlejší než lzo na základě oficiálního benchmarku

Ve skutečnosti Windows 10 a macOS ve výchozím nastavení také používají podobné techniky komprese stránkovacích souborů

K dispozici je také zswap i když jsem to nikdy nepoužil. Pravděpodobně stojí za to vyzkoušet a porovnat, který z nich je lepší pro vaše případy použití

Poté je dalším návrhem snížit prioritu těchto procesů vázaných na IO a případně ponechat terminál spuštěný s vyšší prioritou, abyste na něm mohli okamžitě spouštět příkazy, i když je systém vytížen

Další čtení

  • Arch Linux – Zlepšení výkonu – Zram nebo zswap
  • Povolte ZSwap ke zvýšení výkonu
  • Povolte paměť zRAM pro lepší práci s pamětí a méně odkládání
  • Dochází vám RAM v Ubuntu? Povolit ZRAM
  • Rozdíl mezi ZRAM a ZSWAP
  • zram vs zswap vs zcache Ultimate průvodce:kdy použít který z nich
  • Linux, SSD a swap
  • https://wiki.debian.org/ZRam
  • https://www.kernel.org/doc/Documentation/blockdev/zram.txt
  • https://wiki.gentoo.org/wiki/Zram

Linux
  1. Jak používat příkaz sed pro Linux

  2. Jak si vybrat cenově dostupný linuxový notebook pro videokonference

  3. Jak používat Su Command v Linuxu

  1. Jak používám cron v Linuxu

  2. Jak vytvořit nebo zvětšit swapový prostor v Linuxu

  3. Linux – Jak používat tři monitory na notebooku?

  1. Jak používat pokročilý rsync pro velké zálohy Linuxu

  2. Jak používat systemd-nspawn pro obnovu systému Linux

  3. Jak zvětšit odkládací prostor v Linuxu