Portál AbcLinuxu, 5. května 2025 10:37

Dotaz: swap vs ram

20.12.2016 22:56 marcelius | skóre: 19
swap vs ram
Přečteno: 1188×
Odpovědět | Admin
Zdravim,

mam otazku ohledne vyuziti swapu a ram v linuxu (Centos7)

total used free shared buff/cache available

Mem: 7823 3464 2549 108 1809 3886

Swap: 2047 1078 969

Proc system swapuje, kdyz jeste ma 2.5 GB volnou pamet? Vzdy jsem si myslel ze swap zacne pouzivat pokud mu dojde ram...

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

20.12.2016 23:03 DarkKnight | skóre: 26
Rozbalit Rozbalit vše Re: swap vs ram
Odpovědět | | Sbalit | Link | Blokovat | Admin
Urcuje to sysctl hodnota vm.swappiness
Jendа avatar 21.12.2016 03:20 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: swap vs ram
Odpovědět | | Sbalit | Link | Blokovat | Admin
Systém usoudil, že některá data jsou tak moc nepoužívaná, že bude lepší je odswapovat a získanou RAM použít jako cache disku.
21.12.2016 07:12 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: swap vs ram

Teoreticky to může to být i obráceně: systém původně potřeboval něco odswapovat, ale potom se paměť uvolnila. Systém nezačne sám od sebe načítat stránky ze swapu, dokud je nepotřebuje.

Pro tazatele: není vůbec důležité "kolik je toho ve swapu" nebo "kolik mám volné paměti" (ve smyslu hodnoty free). Spíš je důležité, kolik paměti je "k dispozici", to je ta orientační hodnota available na novějších systémech, do které se počítá i např. reclaimable page cache. A také to, jestli se příliš často nestává, že potřebuje-li systém alokovat paměť, musí kvůli tomu čekat na zápis na disk (ať už kvůli uvolnění page cache nebo kvůli odswapování nepoužívaných stránek), případně jestli nemusí příliš často načítat stránky zpátky ze swapu. V tom prvním ohledu může právě "zbytečné" odswapování nepoužívaných stránek pomoci.

21.12.2016 13:40 manasekp | skóre: 29 | blog: manasekp | Brno
Rozbalit Rozbalit vše Re: swap vs ram
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nastav si zmineny swappiness. Mam hodnotu 1 a funguje to ok.
BIOKOMP | Cas od casu se pokousim nekoho srazit k zemi abych se tam nevalel sam.
21.12.2016 17:16 Michal
Rozbalit Rozbalit vše Re: swap vs ram
Odpovědět | | Sbalit | Link | Blokovat | Admin
Mam doma PC s 256GB RAM ( http://www.abclinuxu.cz/poradna/linux/show/413987 ) a take si obcas uswapne ;-) Hlvnim spoustecem jtohoto chovani e kopirovani velkeho baliku dat (200 GB+) z lokalniho disku na NAS.
22.12.2016 13:55 lertimir | skóre: 64 | blog: Par_slov
Rozbalit Rozbalit vše Re: swap vs ram
Mám 24GB operační paměti a také systém chodí do swapu. Nicméně na všech systémech mám swap na SSD a pak swap časově moc nezatěžuje. S NVMe to je ještě lepší.
Newpac avatar 26.12.2016 20:40 Newpac | skóre: 8
Rozbalit Rozbalit vše Re: swap vs ram
Máte velmi slabé počítače,ja mám v PC 1TB RAM a ani si neupšoukne.
Ňupáč je mrtev,ať žije Newpac.
23.12.2016 11:26 Xerces
Rozbalit Rozbalit vše Re: swap vs ram
Odpovědět | | Sbalit | Link | Blokovat | Admin
SWAP vůbec nepoužívám. Mám 4GB RAM a zatím v poho.
23.12.2016 15:19 Love_Dali | skóre: 24
Rozbalit Rozbalit vše Re: swap vs ram
taky nepoužívám. Potřeboval jsem jenom jednou, když jsem kompiloval nějakou součást z KDEFrameworks pod Gentoo. Nakonec jsem trochu upravil make.conf a zase to jelo :) 6GB RAM
23.12.2016 15:40 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: swap vs ram
Stačilo na starším větším filesystému pustit xfs_check a 8GB bylo fuč. Pravda swap na HDD tomu stejně nijak nepomohl. Stačilo dočasně připojit swap na SSD, xfs_check si vzal pár desítek giga a spolehlivě dojel.
23.12.2016 21:01 R
Rozbalit Rozbalit vše Re: swap vs ram
Na desktope pouzivam, ale na serveroch nie. Niektore maju len 1 GB RAM - ale pre dane pouzitie to staci.
23.12.2016 16:58 Andrej | skóre: 51 | blog: Republic of Mordor
Rozbalit Rozbalit vše Re: swap vs ram
Odpovědět | | Sbalit | Link | Blokovat | Admin

Swap se může použít i dřív, než dojde RAM, jak už tu někteří psali.

Ale ještě bych rád upozornil na další možný scénář, při kterém popsaná situace vzniká. Ano, swap se (obecně a zjednodušeně řešeno) začne používat, když systém usoudí, že má nedostatek volných fyzických stránek. Důležitějším faktem ale je, že se swap (obecně) nepřestane používat poté, co se fyzická RAM uvolní. Jediný způsob, jak dostat odswapované stránky zpět do fyzické paměti, je přístup k nim, tedy zápis/čtení na virtuálních adresách, které jsou v té době namapované do swapu. To vyvolá výjimku (protože záznamy o těchto stránkách má pouze kernel ve svých datových strukturách, ale v TLB nebo (v případě Intelu) ve stránkovacích tabulkách o nich záznam není, pochopitelně, protože neexistuje v té chvíli fyzická stránka, na kterou by ukazoval) a přinutí kernel přesunout příslušné stránky zpět do RAM a aktualizovat TLB nebo stránkovací tabulky (aniž by si toho příslušný proces všiml). To se ovšem obecně nebude dít příliš často, protože ve swapu skončí (přednostně, na základě různých hardwarem podporovaných heuristik) málo používané stránky.

Sečteno a podtrženo, je možné, že systém měl v minulosti (během téhož uptime) nedostatek paměti, začal swapovat, ale pak se paměť znovu uvolnila. Data, která skončila ve swapu, ale žádný proces (ani kernel) k nim nepotřeboval znova přistupovat, zůstávají dál ve swapu. (A v podstatě to ničemu nevadí, dlužno dodat.)

Pro Linux existovalo několik generací patch setů pro „unswap“, které by po uvolnění fyzické paměti začaly automaticky (a relativně pomalu) přesouvat + mapovat odswapované stránky zpět do fyzické paměti, aniž by takové stránky musely být nutně potřebné. Ale pokud vím, žádný z těch patch setů se nakonec nedostal do hlavní řady kernelu a většinou debata skončila závěrem typu „než řešit tohle, raději víc RAM“.

Unswap pomáhá, když je dočasný nedostatek paměti ojedinělá a vzácná událost. Unswap naopak škodí, když se dočasný nedostatek paměti dostavuje častěji nebo periodicky. Vše tedy závisí a účelu a způsobu použití příslušného systému a neexistuje žádné one size fits all řešení. Zatím je tedy „řešením“ nedělat nic a docela to funguje.

Tak proto se může stát, že se používá swap, i když (už) v danou chvíli není potřebný.

23.12.2016 17:37 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: swap vs ram
Test pozornosti: jak se popsaný scénář liší od toho, který jsem nastínil ve středu ráno? :-)
23.12.2016 20:43 Andrej | skóre: 51 | blog: Republic of Mordor
Rozbalit Rozbalit vše Re: swap vs ram

Nijak.

Pozorností jsem nikdy příliš neoplýval.

23.12.2016 20:06 lertimir | skóre: 64 | blog: Par_slov
Rozbalit Rozbalit vše Re: swap vs ram
Právě, že ve swapu většinou skončí málo používané stránky, tak mít swap (na SSD) považuji za výhodu při jakémkoliv množství paměti. Těch scénářů proč se systém rozhodne swapovat může být hodně, zvláště v současnosti, kdy jednak dávám do tmpfs všechno co je možné a jednak při rozsáhlých přenosech s diskem může být pro systém výhodnější, když zvedne objem bufferů a cache tím, že nepoužívané stránky odswapuje. samozřejmě vše pojede i bez swapu, ale menší cache se projeví jinak. Nicméně od cca 4GB operační paměti začíná být otázka, kolik swapu mít. Názory z doby systémů o 64MB, kdy jsem na SunOS měl swap o 2x větší velikosti než paměť jsou nepoužitelné. Ted používám swap ve velikost cca 4G pro 4G systém s hibernací do 8G pro systémy s 12G paměti a více.
k3dAR avatar 23.12.2016 22:20 k3dAR | skóre: 63
Rozbalit Rozbalit vše Re: swap vs ram
nebo unswap "pro chude" ;)
swapoff -a && swapon -a
porad nemam telo, ale uz mam hlavu... nobody
24.12.2016 12:38 Love_Dali | skóre: 24
Rozbalit Rozbalit vše Re: swap vs ram
+1 :) Taky jsem dělával :)
24.12.2016 16:00 Peter Golis | skóre: 64 | blog: Bežné záležitosti | Bratislava
Rozbalit Rozbalit vše Re: swap vs ram
Keď som zbohatol, tak som prešiel na zram. Je to rýchlejšie ako SSD, ale aj drahšie.
26.12.2016 19:43 cronin | skóre: 49
Rozbalit Rozbalit vše Re: swap vs ram
Odpovědět | | Sbalit | Link | Blokovat | Admin
Swap vcelku radi používame na serveroch prenajímaných v cloude, kde znásobenie pamäte je zvyčajne veľmi ľahké, ale zvyčajne vedie aj rovakému znásobeniu ceny prenájmu.

Servery sú na testovacie účely. Zvyčajne na nich beží niekoľko inštacií rôznych serverových služieb -- databázy, cache, ťažkotonážne aplikačné servery, rôzne "podporné systémy". Zo služieb je zvyčajne zopár prioritných, ktoré sú používanné denne, ostatné sú používané iba zriedkavo. V takom prípade je vcelku vítané hostovať to na jednej rel. lacnej/malej/slabej inštancii a v prípade potreby nechať systém doslova swapnúť procesy a'la VAX. Pokojne v takej chvíli nastavujeme vm.swappiness na 100.

Samozrejme, aj tu platí pravidlo "Všetko s mierou!" a admin musí byť príčetný.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.