У меня есть eeePC 900a: он имеет 8 ГБ флэш-памяти и только 1 ГБ оперативной памяти. Установленный дистрибутив Linux - это ArchLinux.
Когда система исчерпывает память, она становится крайне не отвечающей: для таких вещей, как переключение на TTY1 или даже перемещение указателя мыши, уходит несколько секунд / минут. Иногда кажется, что система просто зависает: три года назад я оставил ее в покое, и пока ничего не изменилось.
Я бы предпочел избегать создания раздела / файла подкачки на этом eeePC, поскольку диск уже настолько мал, а также потому, что большое количество записей в пространстве подкачки значительно сократило бы срок службы флэш-карты. Более того, я думаю, что файл / раздел подкачки просто переместит проблему, а не решит ее.
Разве ядро не должно убивать некоторые случайные приложения, когда ему не хватает памяти? Почему это не удается (или занимает много времени) при этом?
Несколько месяцев / лет назад я уже пытался разобраться в этом, но не смог найти ничего, что действительно сработало бы ...
while(true){ if( $FREE_MEMORY<10MB ){ kill -9 $RANDOM_PID; } }
. Это определенно решило бы мою проблему. Но подождите, разве ядро не должно делать это (и гораздо лучше, чем мой скрипт)? Почему он не делает свою работу?