- A hozzászóláshoz be kell jelentkezni
- 1274 megtekintés
Hozzászólások
Biztos csak mert lusta vagyok, de nem sikerult megertenem hogy miert tettek ki az OOM killert. Valaki tud egy rovid osszefoglalora egy linket?
Koszi,
Laci
- A hozzászóláshoz be kell jelentkezni
A link be van linkelve ennek a cikkenek az elso soraba...
- A hozzászóláshoz be kell jelentkezni
Ezzel nem értek egyet, a OOM nem *csak* a memóriafoglalás alapján határozza el hogy mit öljön meg.
Sok egyéb számítás eredménye:
ez azt jelenti hogy a foglalt memória mérete minél nagyobb annál kisebb(!) a valószinűsége hogy megöli, ugyanez igaz futási időre minél több ideje fut annál kisebb....
Ha a folyamatot root futtatja, az szintén csökkenti az esélyt (szemben a mezei userek processeivel)
Még sok egyéb tényező szerepel, de ennyit tudok fejből.
- A hozzászóláshoz be kell jelentkezni
>a OOM nem *csak* a memóriafoglalás alapján
ki allitotta ennek az ellenkezojet?
Ebben az esetben a ``less''-t kellett volna elobb kinyirnia, mint mondjuk a gpm-et. Hogy miert?
1.) mert nem az init (pid 1)
2.) mert nem letfontossagu processz (mint mondjuk a k-val kezdodo processzer pl. kswapd, kblockd, ksoftirqd, stb.)
3.) mert ez volt a felsoroltak kozul a legnagyobb memoria fogyaszto
- A hozzászóláshoz be kell jelentkezni
>3.) mert ez volt a felsoroltak kozul a legnagyobb memoria fogyaszto
Egyedül ezzel nem értek egyet.
Ugyanis a következő elmélet szerint müködik az OOM:
minél kevésbé zavarja a munkát.
Azaz (ez a hozzáállás):
Ha egy program több memóriát fogyaszt akkor kevésbé öljük meg!!!!!!!!!!!!
Ha egy program több processzor időt használt eddig mint a többi szintén békén hagyjuk.
Miért is??
A program valószinűleg azért használ sok memóriát, mert szüksége van rá. Gondolhatunk a Postgresql adatbázis kezelőre. Van pl 1 Mb szabad memória és sz@r lenne ha az OOM a Postgrest ölné meg ahelyett a perl script helyett amit most indítottam test céljából.
Nade normál esetben (egészséges OOM-mel) mégis a less hal meg!
Igen ez így is van mivel sokkal kevesebb ideje futott és
így sokkal kevesebb a veszteség (kevesebb munka veszik el adott esetben)
De ellenkező esetben ha régóta fut már a less és most indul útjára az adatbáziskezelő akkor a postgres lesz nagyobb veszélyben.
PS: Kár hogy nincs Alan már rendberakta volna az embereket a LKML-en. ;-)))
- A hozzászóláshoz be kell jelentkezni
bocs én tévedtem csak a processzor időre igaz...
sorry
- A hozzászóláshoz be kell jelentkezni
Ajanlom fugyelmedbe ezt:
Tosatti Arcangelinek:
"There is no memory. Right. Some task has to be killed. But not small programs like sendmail/named/etc. What should be killed is "less". That is clear, right?"
- A hozzászóláshoz be kell jelentkezni
>Ha egy program több memóriát fogyaszt akkor kevésbé öljük meg!!!!!!!!!!!!
ez bullshit
Reszlet Riel doksijabol:
"Az OOM killer működésének céljai:
* ne öljük meg a fontos rendszer szervizeket,....
* minimalizáljuk az elveszett munkát
* szabadítsunk fel annyi memóriát amennyi csak lehetséges
* legyen előrelátható, hogy ne okozzon meglepetéseket
* legyen egyszerű és kicsi"
- A hozzászóláshoz be kell jelentkezni
Tudom, elolvastam az elozo cikket, de nem ertem hogy meg is minek kellene tortennie ha kifogy a gep a memoriabol? A kill meg mindig jobb mint a deadlock, persze vagom hogy nem jo, de mit kellene helyette csinalni?
Laci
- A hozzászóláshoz be kell jelentkezni
Nálam az Operával míveli ezt a 2.4.20 . Ha egyszerre több oldalt akarok megnyitni, mellette meg megy egyx fordítás, akkor a kernel halál nyugiban kilövi az Operámat:) Most váltottam Mozillára, ezzel nem csinálja. Kernelt meg csak ha lessz 2.6.0-stable, akkor forgatok.
- A hozzászóláshoz be kell jelentkezni