Mam eeePC 900a: ma 8 GB pamięci flash jako dysk i tylko 1 GB pamięci RAM. Zainstalowana na nim dystrybucja Linuksa to ArchLinux.
Kiedy systemowi zabraknie pamięci, staje się on wyjątkowo niereagujący: zajmuje kilka sekund / minut, aby wykonać takie czynności, jak przejście do TTY1 lub nawet przesunięcie wskaźnika myszy. Czasami wygląda na to, że system się zawiesza: trzy nasze dawno temu zostawiłem go w spokoju i jak dotąd nic się nie zmieniło.
Wolałbym unikać tworzenia partycji / pliku wymiany na tym eeePC, ponieważ dysk jest już tak mały, a także dlatego, że wiele zapisów na przestrzeni wymiany znacznie skróciłoby żywotność karty flash. Co więcej, myślę, że plik / partycja wymiany po prostu przeniósłby problem, zamiast zdecydowanie go naprawić.
Czy jądro nie powinno zabijać losowych aplikacji, gdy zabraknie pamięci? Dlaczego to się nie udaje (lub zajmuje wieki)?
Kilka miesięcy / lat temu próbowałem już przyjrzeć się temu, ale nie mogłem znaleźć niczego, co faktycznie działałoby ...
while(true){ if( $FREE_MEMORY<10MB ){ kill -9 $RANDOM_PID; } }
. To zdecydowanie rozwiązałoby mój problem. Ale czekaj, czy jądro nie powinno tego robić (i to w znacznie lepszy sposób niż mój skrypt)? Dlaczego nie spełnia swojej roli?