Miroslav Lachman wrote on 6. 5. 2019 20:35:
Prihlasim se na stroj, kde podle monitoringu je obsazeno 445MB ve swapu, spustim top -S -w -o swap

Swap: 4096M Total, 445M Used, 3650M Free, 10% Inuse
Jenze tam sloupec SWAP u vsech procesu zobrazuje OK.

Je to problem topu, nebo swap obsahuje data od procesu, ktery uz nebezi?

Hadam ze ani jedno.


Ocekaval bych, ze system musi dost presne vedet, co do swapu presunul a komu to patri.

Jo, a ne. Management pameti je dost slozita vec.

Pamet presunuta do swapu muze patrit vic nez jednomu procesu, coz se tyka nejen explicitne sdilene pameti, ale taky implicitne sdileneho pametoveho prostoru u procesu ve vztahu parent-child (do te doby nez dojde ze strany childu k zapisu do dane stranky a k copy-on-write).

A neplati ani, ze linearni pamet uz pouzita, ktera je de-mapovana z fyzickeho prostoru se vzdy zapisuje do swapu - pokud lze data obnovit odjinud (napriklad slo o kod programu nebo knihovny) tak se obsah proste zahodi a v pripade potreby obnovi odjinud.

Swap ma ale svuj vlastni management - neni to tak jednoduche jako linearni seznam bloku velikosti stranky a bitmapa jestli blok je nebo neni pouzity. Kvuli vykonu je swap rozdelen na zony obsahujici bloky ruzne velikosti a aktualni pozadavek na zapis do swapu se uspokojuje ze zony s nejmensim dostacujicim blokem (ktery muze byt ve skutecnosti daleko vetsi, nez aktualne strankovany kus). A pozdeji se mohou do pameti nacist jen nektere stranky z takoveho bloku. Takze v "blbym pripade" muze byt ve swapu spousta jednotlivych stranek ulozenych ve velkych zonach - a tim je spotrebovano hodne mista ve swapu, ackoliv prakticky nikdo neswapuje.

System samozrejme vi kde ma kazdy proces kterou stranku a stejne je mozne se dobrat i informace komu vsemu patri ten-ktery kus swapu, ale prave tyhle "pohledy" system ke svemu fungovani bezne nepotrebuje a tak je nedrzi. Takze udelat prave tuhle statistiku je pomerne hodne narocna operace - proto prislusne funkce vraceji jen odhady.

Ale samozrejme o internim fungovani techto veci vim kulovy...

I ja, a obavam se, ze lidi, ktery drzi v hlave kompletni povedomost o memory/swap managementu je hodne malo ...

Dan
--
FreeBSD mailing list (users-l@freebsd.cz)
http://www.freebsd.cz/listserv/listinfo/users-l

Odpovedet emailem