Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Názory k článku
Porovnání systémů Linux a FreeBSD (10)

Jerry III
Jerry III (neregistrovaný)
29. 1. 2004 7:02 Nový

Backing store

celé vlákno

Presne to je duvod proc NT kernel nebude pouzivat celou fyzickou pamet pokud mu nedate dostatek swap souboru (protoze odmita pouzivat stranky ktery by v pripade potreby nemel kam odlozit). Rika ten clanek ze to samy plati pro FreeBSD (a ne pro Linux)? Co udela Linux kernel kdyz potrebuje odswapovat stranku a nema kam? Zpanikari?

freza
freza (neregistrovaný)
29. 1. 2004 8:12 Nový

Re: Backing store

celé vlákno

Hmm, ne. Linux ani BSD k zivotu swap nepotrebuji. Pokud se nepletu, v situaci kdy dojde pamet je snaha nejakou sehnat (treba nekoho zabit).

Michal Kara
Michal Kara (neregistrovaný)
29. 1. 2004 9:44 Nový

Re: Backing store

celé vlákno

Presne tak. Zacne odstrelovat procesy.

Lubos
Lubos (neregistrovaný)
29. 1. 2004 16:32 Nový

Re: Backing store

celé vlákno

Uff, pri prvnim precteni jsem se lekl :-)))

Ivona Prenosilova
Ivona Prenosilova (neregistrovaný)
29. 1. 2004 17:09 Nový

Re: Backing store

celé vlákno

ani NT kernel nepotrebuje ke svemu zivotu swap. viz moznost bootovani Windows PE z CD.

Jerry III
Jerry III (neregistrovaný)
29. 1. 2004 20:52 Nový

Re: Backing store

celé vlákno

Jenze Windows PE neni to samy jako nainstalovany Windows, tim bych vubec neargumentoval... Rozhodne tam nepobezi multi-cpu ACPI kernel...

Ivona Prenosilova
Ivona Prenosilova (neregistrovaný)
30. 1. 2004 0:20 Nový

Re: Backing store

celé vlákno

a co to tedy podle Vas je? a ano, klidne Vam tam multi-cpu ACPI kernel pobezi. Windows PE si sestavujete sam z aktualni instalace. pokud mate nainstalovan ntoskrnl ve verzi MP a acpi hal, tak Vam to bude bezet v dane konfiguraci.

Ivona Prenosilova
Ivona Prenosilova (neregistrovaný)
30. 1. 2004 0:57 Nový

Re: Backing store

celé vlákno

btw, co ma co delat multi-cpu acpi kernel s pritomnosti/nepritomnosti swap filu? tim bych vubec neargumentovala ...

Ivan
Ivan (neregistrovaný)
29. 1. 2004 10:18 Nový

Re: Backing store

celé vlákno

Pokud se nepletu, tak je mozne oboji. Ted ale netusim kde se to da prepnout. Bud se misto pro odswapovani hleda uz pri namapovani, nebo az kdyz je potreba odswapovavat. To prvni je rychlejsi, to druhe je bezpecnejsi. Na linuxu existuje OOM killer, kterej je dost slusne konfigurovatelnej a ten se snazi zabit nejvetsiho zrouta. Bohuzel tohle reseni nema vyznam,
kdyz pouzivate multithreadovou aplikaci nebo JAVU.
U openldapu se stava, ze OOM killne vlakno, ktery se zblaznilo. Pamet se uvolni, ale protoze to vlakno neco zamknulo, tak se to cely zastavi a linuxovej kernel je stastnej ze ma pamet.

U multiprocesovejch demonu jako je treba apache to funguje vyborne, listener nic nealokuje a kdyz nejakej jeho syn(worker) naalokuje moc pameti tak ho
OOM zabije, listener dostane signal SIGCHLD a vsechno jede dal.

Mikuláš Patočka
Mikuláš Patočka (neregistrovaný)
30. 1. 2004 14:26 Nový

Re: Backing store

celé vlákno

Takhle to fungovalo do jádra 2.4.22. V 2.4.23 byl OOM killer odstraněn, a bylo to uděláno tak, že se kilne aktuální proces, který se právě snaží alokovat paměť (což může být bohužel úplně náhodný proces, neboť paměť se alokuje i při prostém běhu programu a load-on-demand). To řešení v 2.4.22 a nižších umožňovalo deadlocky (např. --- proces, co sežral nejvíc paměti čeká na semafor, jiný proces semafor drží a snaží se alokovat paměť, paměť není, jádro zabuje ten proces, co čeká na semaforu, ale on pořád žije, protože se nemůže dostat z jádra).

Mikuláš Patočka
Mikuláš Patočka (neregistrovaný)
30. 1. 2004 14:18 Nový

Re: Backing store

celé vlákno

Linux ani FreeBSD swap nepotřebují. Když swap zaplní nebo žádný nemají, tak prostě anonymní stránky swapovat nebudou a uvolňují pouze cache. Takhle to potřebovalo VMS, tam bylo skutečně třeba mít swapu aspoň tolik, co paměti. Jak je to na NT nevím.

Jakub Drnec
Jakub Drnec (neregistrovaný)
31. 1. 2004 12:08 Nový

Re: Backing store

celé vlákno

Da se overit experimentalne. Pokud NTesam zrusis swap, tak te servou a vytvoreji si radove 20MB nouzovej swap. Cili trochu ho potrebujou, ale nejspis ne proporcionalne k pameti.

peto
peto (neregistrovaný)
29. 1. 2004 9:10 Nový

a co tak podpora SUMO

celé vlákno

Ked uz je podpora SMP v memory managent-e ako na klasickom jedno CPU stroji a NUMA tak preco nie SUMO, cize hybrid SMP a NUMA vid architektura AMD64.
fyzicka oragnaizacia NUMA ale chova sa to aj ako SMP, ako velmi sa to chova ako NUMA sa da nasatvit v Bios-e a zavysok je chovanie sa ako SMP... Neda sa vyuzit nejake dynamicke prepinanie v ramci SUMO na optimalizaciu kodu?

Yenya
Yenya (neregistrovaný)
29. 1. 2004 17:02 Nový

Re: a co tak podpora SUMO

celé vlákno

Mam tady dual opteron s deskou Tyan Thunder K8SPro, a Linux se k tomu chova normalne jako k NUMA stroji. V cem se lisi SUMO od NUMA?

Tahle vec se da nastavit budto tak, ze pamet u CPU0 je na nizsich adresach a pamet u CPU1 (je-li nejaka) za nimi, nebo prokladane (zrejme po cache-line). Tohle je vyhodnejsi pokud nemate NUMA-aware OS, protoze se pamet zatizi vicemene stejne. Na druhou stranu kernel Linuxu je NUMA-aware, takze tam neni duvod to nepouzit.

-Yenya

Jaroslav Rohel
Jaroslav Rohel (neregistrovaný)
29. 1. 2004 11:31 Nový

Bez titulku

celé vlákno

Hezky clanek. Ale nektere kousky jsou matouci, napr:
- Každá stránka má počítadlo použití ? toto počítadlo určuje, z kolika míst někdo na stránku ukazuje. Funkce pro uvolnění stránky free_pages toto počítadlo zmenší o jedna a stránku uvolní pouze v případě, že počítadlo dosáhne nuly.
A pak na jinem miste clanku:
- Na druhou stranu absence seznamu mapování stránky může výrazně zpomalit prohledávání na uvolnitelné stránky (na FreeBSD se ke stránce ihned najde seznam všech mapování; je vidět, zda je stránka nepoužitá, a taková se pak uvolní; na Linuxu se musí procházet všechny tabulky stránek a stránka se uvolní, až když je odmapovaná ve všech tabulkách).
Takze se kontroluje pocitadlo nebo se prochazeji vsechny tabulky stranek, jestli nahodou nekdo na stranku neukazuje?

Mikuláš Patočka
Mikuláš Patočka (neregistrovaný)
30. 1. 2004 14:09 Nový

Re:

celé vlákno

Kontroluje se počítadlo i se procházejí tabulky stránek. Každé mapování zvětší počítadlo o jedna. Takže se procházejí tabulky stránek, při tom se stránky odmapovávají, pokud nějaké stránce klesne počítadlo na nula, tak je uvolněna.

Zdenek
Zdenek (neregistrovaný)
29. 1. 2004 15:58 Nový

free + dirty pages

celé vlákno

Ahoj,

Zajímalo by mne, jakým způsobem se na Linuxu nebo BSD řeší stav, kdy proces 1) alokuje anonymním mmap()em hodně adresového prostoru (řekněme 1GB) 2) z velké míry >50% ho využije, čímž vznikne >512MB dirty stránek 3) program naráz (třeba po GC) zjistí že 90% stránek, které používal je nyní FREE.

Existuje nějaká efektivní metoda, jak OSu oznámit že tyto stránky není nutno swapovat, ale že je lze prostě zahodit?

Celou arenu odalokovat nemohu, protože stále obsahuje nějaké živé stránky, zkopírovat je do nové areny také nechci, protože by se hnulo s adresama.

Když na jednotlivé free stránky zavolám unmap(), odmapuje se pouze ta jedna stránka v rámci původního segmentu, nebo se tím ten segment splituje?

pc
pc (neregistrovaný)
29. 1. 2004 18:39 Nový

Re: free + dirty pages

celé vlákno

A co volani madvise s MADV_FREE?
http://netbsd.gw.com/cgi-bin/man-cgi?madvise+2
pro FreeBSD si to najdete na http://www.freebsd.org/cgi/man.cgi

Zdenek
Zdenek (neregistrovaný)
30. 1. 2004 11:25 Nový

Re: free + dirty pages

celé vlákno

Diky, to je presne ono. Na Linuxu je to taky. Ale lepsi bude MADV_DONTNEED, protoze chci aby prvni pristup udelal zero-fill-on-demand, nikoliv segfault.

Ted jeste jak zjistit nejlepsi okamzik pro spusteni GC cyklu v aplikaci. Jak zjistim (s jistym predstihem), ze kernelu dochazi pamet, a chysta se swapovat?

Mikuláš Patočka
Mikuláš Patočka (neregistrovaný)
30. 1. 2004 14:16 Nový

Re: free + dirty pages

celé vlákno

MADV_DONTNEED způsobí jen, že stránky budou přenostně odswapovány, ale nebude zahozen jejich obsah. Pokud chcete zahodit obsah stránek, udělejte MADV_FREE. MADV_FREE nezpůsobí segfault při přístupu na stránky, způsobí jen, že stránka bude mít náhodný obsah.

Ivona Prenosilova
Ivona Prenosilova (neregistrovaný)
30. 1. 2004 16:23 Nový

Re: free + dirty pages

celé vlákno

mozna trochu ignorantska otazka> nahodny obsah znamena? nahodny se mi zda z bezpecnostniho hlediska pomerne nebezpecny :-)

Mikuláš Patočka
Mikuláš Patočka (neregistrovaný)
30. 1. 2004 16:57 Nový

Re: free + dirty pages

celé vlákno

Bezpečnost je zaručena, stránka nebude obsahovat data jiného procesu nebo jádra.

Stránka po provedení MADV_FREE může obsahovat původní data nebo může být zrušena a pak se při dalším přístupu vezme jiná stránka a ta se vynuluje.

Ivona Prenosilova
Ivona Prenosilova (neregistrovaný)
30. 1. 2004 17:48 Nový

Re: free + dirty pages

celé vlákno

k, to jsem si myslela, diky

Zdenek
Zdenek (neregistrovaný)
2. 2. 2004 14:33 Nový

Re: free + dirty pages

celé vlákno

MADV_DONTNEED: Do not expect access in the near future. (...) the kernel can free resources (...) accesses (...) will succeed, but (...) zero-fill-on-demand for mappings without an underlying file.

MADV_FREE: Na Linuxu v mman.h vubec neni, pri takovemto chovani MADV_DONTNEED zrejme ani neni potreba.

Mikuláš Patočka
Mikuláš Patočka (neregistrovaný)
2. 2. 2004 17:04 Nový

Re: free + dirty pages

celé vlákno

Aha, já jsem četl stránku k FreeBSD. Na FreeBSD je to tak, že MADV_DONTNEED pouze sníží swapovací prioritu stránek a stránky zachová a MADV_FREE udělá to, co MADV_DONTNEED na Linuxu.

...
... (neregistrovaný)
22. 7. 2004 10:28 Nový

Re: free + dirty pages

celé vlákno

test

Zasílat nově přidané příspěvky e-mailem