GNU/Linux >> Znalost Linux >  >> Linux

Co konkrétně swap umí a RAM ne?

Hibernace (nebo pozastavení na disk). Skutečná hibernace úplně vypne systém, takže dojde ke ztrátě obsahu paměti RAM a stav musíte uložit do nějakého trvalého úložiště. AKA Swap. Na rozdíl od Windows s hiberfil.sys a pagefile.sys , Linux používá odkládací prostor jak pro přetíženou paměť, tak pro hibernaci.

Na druhou stranu, hibernace se zdá být trochu vybíravá, aby dobře fungovala na Linuxu. To, zda skutečně „můžete“ hibernovat, je jiná věc. ¯\_(ツ)_/¯


Co lze provést swapem, který by se také neprovedl přidáním RAM?

Tato otázka by ve skutečnosti mohla být přeformulována na Co lze udělat s energeticky nezávislou RAM, což by nebylo možné provést přidáním více volatilní RAM? . Jen proto, že náhodou vyhradíte oddíl pro stránkování (vyhrazený způsob interakce s volatilní RAM), nic to nemění na skutečnosti, že je stále součástí trvalého sekundárního paměťového média. Odkládací oddíl také není povinný pro přepnutí systému do režimu spánku, lze také použít „odkládací soubor“ vytvořený na již existujícím oddílu.

Nakonec, ať už používáte odkládací oddíl nebo odkládací soubor, to, co budete ukládat, jsou věci, které se mají zapisovat do nebo z RAM. Pokud byste vytáhli napájecí kabel ze systému s povoleným odkládacím oddílem, tento odkládací oddíl by se magicky nevymazal.

I když by tato swapovací data nebyla načtena při příštím spuštění (protože stránkovací soubor by měl položky odpovídající procesům, které již neběží), a některá distribuce mohou podniknout záměrné kroky k jejich zničení buď během řádného vypnutí nebo řádného restartu , pokud by někdo vytáhl šňůru ze systému, byl by schopen forenzně prozkoumat ten odkládací oddíl.

Pokud jde o případ vestavěných zařízení, která jste zmínil, Flash, který je typem energeticky nezávislé paměti RAM (NVRAM nebo EEPROM), se opotřebovává, protože jeho schopnost přijímat I/O zásahy (Flash Cell Endurance reprezentovaná počtem programů /erase cycles) bledne ve srovnání s volatilní RAM. Doslova oholíte vrstvu oxidu pokaždé, když provedete zápis do tohoto místa, a nakonec prostě nezůstane žádný oxid, který by umožnil trvalé ukládání náboje a ten doslova vyteče před jeho dalším čtením.

Na druhou stranu životnost RAM volatile prakticky neexistuje (řádově minuty v ideálních experimentálních podmínkách) ve srovnání s flashem, pokud nebo když odpojíte jeho zdroj napájení. V případě volatilní RAM nic nebrání úniku náboje a tomu odpovídajícímu stavu klopného obvodu (vstupy, určující výstupy, které pak znovu určují vstupy), neboli zpětnovazebně řízených západek.


32 GB RAM a žádná swapv. 16 GB RAM s 16 GB swap.

Když se takto zeptáme, swap většinou šetří peníze, zvyšuje poměr výkonu na dolar, možná také na watt.

Ale swap je stále víc než jen „paměť pomalá jako disk“. Je to dočasné úložiště pro stránky paměti, které lze v případě potřeby přímo (nečisté, bez režie souborového systému) načíst do paměti RAM.

Samozřejmě hodně záleží na zátěži (druh zátěže) a myšlenka na výměnu se může dokonce obrátit proti. Proto je zde kromě swapon parametr "swappiness". / swapoff a diskuse o správné velikosti.

Z wikipedie jsem získal toto prohlášení o „swapu“ v linuxu (v článku „stránkování“)

Linuxové jádro podporuje prakticky neomezený počet swapovacích backendů (zařízení nebo souborů...

Pokud je více swapovacím backendům přiřazena stejná priorita, jsou používány způsobem round-robin (což je poněkud podobné rozložení úložiště RAID 0),...

To ukazuje, že swapování můžete proměnit v něco, co dává větší smysl na hardwarové úrovni:vyhrazená „odkládací jednotka“ by těmto vyměněným stránkám poskytla lepší domov. V ideálním případě by měl být škrábací disk (velmi) malý, ale rychlý a robustní.

Podle pravidla „nové“ velikosti (odmocnina of Giga), váš příklad by měl porovnat:

16 GB RAM + 0 GB Swap+1000 GB Disk

16 GB RAM + 4 GB Swap+ 996 GB Disk

Protože to, co opravdu nedává smysl, je:

16 GB RAM+0 GB Swap + 1000 GB Disk

12 GB RAM+4 GB Swap + 1000 GB Disk

To by byl swapovací oddíl na tmpfs („ramdisku“) – možná ani příliš škodlivý, ale nevidím zde vůbec žádný přínos. Nemůžete ani hibernovat.

(viz níže pro zram a zswap, když přidáte kompresi k tomu)

Abyste pochopili swap Musíte vzít v úvahu celý systém a průměrné zatížení. A protože vm/mm (správa virtuální paměti) je komplexní systém, je opravdu těžké pojmenovat jasnou výhodu. Líbí se mi myšlenka "hladkého" přechodu do přetíženého systému.

Mám 8 GB RAM a bez výměny. Ale přesto ten koncept hájím, AFA rozumím :-)

Našel jsem tuto citaci redhat v jednom z odkazů OP. Scénář je stále rostoucí požadavky na paměť, na 2 GB RAM + 2 GB swap, pokud si vzpomínám:

... V našem případě [právě ilustrováno] je k dispozici poměrně hodně swapu, takže doba slabého výkonu je dlouhá.

Ale alternativou je OOM ještě dříve!

"Doba slabého výkonu" je dlouhá, to ano, ale výkon klesá pouze úměrně zátěži. Neznám kontext, možná chtějí jen varovat před příliš velkým odkládací oddíl. Zní to anti-swap, ale na druhý pohled není.

Pak znovu, ze stejného důvodu, nemám swap. Chci vědět, kdy já a moje aplikace narazí na strop, a pak se rozhodnu, jestli musím snížit zátěž, dokoupit RAM nebo aktivovat oddíl pro swap (mám na to připravený jeden nebo dva malé oddíly).

Podíval jsem se na tento zram a poté zswap věc:velmi zajímavé...:

Pro srovnání, zswap funguje jako mezipaměť založená na RAM pro odkládací zařízení. To poskytuje zswap s mechanismem vyřazení pro méně používané swapované stránky, který zram postrádá.

Na druhou stranu zram funguje bez výměnného zařízení. Umožňuje to, co jsem řekl, že nedává smysl, ale nevzal jsem v úvahu kompresi.

Jde mi o toto vystěhování mechanismus vlastní „swapu“. Toto může být velmi užitečné při vysoké zátěži, ať už swapujete výměnou nebo kompresí.


Linux
  1. Jaká je správná velikost odkládacího prostoru pro moderní systém Linux?

  2. Co pro vás může udělat shell dotfile

  3. Jak mohu vědět, který proces používá swap?

  1. Jaký je maximální počet IP adres, které lze danému počítači přiřadit?

  2. Co dělat, když Ctrl + C nemůže zabít proces?

  3. Mohu otestovat svou vlastní síť?

  1. Jak poznám, co roztáčí můj disk?

  2. Linux OOM disk I/O. Také:swap, k čemu je to dobré?

  3. Mohu spustit server Oracle bez swapu?