У мене eeePC 900a: він має 8 Гб спалаху як диск і лише 1 Гб оперативної пам’яті. Встановлений на ньому дистрибутив Linux - це ArchLinux.
Коли в системі не вистачає пам'яті, вона стає вкрай невідповідною: потрібно кілька секунд / хвилин, щоб виконати такі дії, як перехід на TTY1 або навіть переміщення покажчика миші. Іноді схоже на те, що система просто замерзає: три наших тому назад я її відпустив і взагалі нічого не змінилося.
Я вважаю за краще уникати створення swap-розділу / файлу на цьому eeePC, оскільки диск вже такий малий, а також тому, що багато записів на свопі просторі значно скоротить життя флеш-карти. Крім того, я думаю, що файл / розділ підкачки просто перемістить проблему, а не обов'язково виправить її.
Хіба ядро не повинно вбивати деякі випадкові програми, коли у нього не вистачає пам'яті? Чому це не вдається (або займає віки) при цьому?
Кілька місяців / років тому я вже намагався розібратися далі в цьому, але не зміг знайти нічого, що насправді спрацювало б ...
while(true){ if( $FREE_MEMORY<10MB ){ kill -9 $RANDOM_PID; } }
. Це, безумовно, виправить мою проблему. Але зачекайте, чи не повинно це зробити ядро (і куди кращим чином, ніж мій сценарій)? Чому він не робить свою роботу?