Történt vala pedig, hogy figyelmetlenségből ráindítottam egy virtuális gépre, mielőtt még az előző teljesen leállt volna.
Ettől persze elhasalt a rendszer, mert azért nincs végtelen mennyiségű memória beépítve.
Nyilván belépett az OOM killer, de fertály óra alatt sem tudott rendet tenni, miközben a reboot max. 30 mp.
Elkezdtem ezen agyalni, hogy OK, alapvetően stabil a rendszer, de tulajdonképpen alaposan fejbe lehet vágni egy ügyetlen felhasználói mozdulattal, még root-nak sem kell lenni.
Van ebben valami, ami nem túl esztétikus számomra.
Elkezdtem tehát kísérletezni, utánaolvasni, miközben jópárszor elhasaltattam a rendszert.
Az első számú bűnbakom az overcommit.
A sysctl.conf-ban módosítottam egy kicsit, többedik iteráció után egy stabil, agyonüthetetlen beállítás:
vm.overcommit_memory=2
vm.oom_kill_allocating_task=1
vm.admin_reserve_kbytes = 8192
vm.min_free_kbytes=16384
vm.overcommit_ratio=99
És bamm! Össze-összeomlik a memóriára éhes processz, ha túl lépné korlátait, meg akár el sem tud indulni, ha már eleve kevesebb a szabad memória, mint kéne neki, de a rendszer egésze töretlenül megy tovább, és reszponzív marad.
Megyek tovább, mert viszont azt vettem észre, hogy bizonyos dolgok, pl. a Davinci Resolve nem igazán szereti a szigorúbb memória kezelést. Ráadásul úgy tűnik, nem is mindig tudom kimaxolni a gép terhelését.
Találtam egy olyat, hogy "earlyoom".
Visszaállítottam sysctl.conf-ot, és beindítottam az earlyoom ( https://packages.debian.org/stable/admin/earlyoom ) démont.
Azt hiszem, ezt tartom meg. Az első tapasztalataim elég jók.
Az alapértelmezett beállításain még semmit sem változtattam, de a rendszert nem tudom kiakasztani túlzott memóriahasználattal, bár most a vm.overcommit_memory az alap 0 értéken van.