Иногда я работаю с огромными дампами данных, которые хочу сохранить в памяти для обработки. Иногда я неправильно рассчитываю объем памяти, который будет создавать моя программа, или отладчик умножает использование памяти на коэффициент, который превышает мою доступную память.
Всякий раз, когда я запускаю процесс, требующий памяти, это то, что я ожидаю от нормальной операционной системы: попробуйте съесть всю свободную память, затем попросите некоторые другие несущественные процессы, чтобы они освободили память, которая им не нужна, затем пиши поменяться.
Вот что делает для меня Ubuntu: съесть всю свободную память, затем попросить операционную систему поменять местами все необходимые службы (сеанс gnome, терминал, клавиатуру), затем заморозить и подождать, пока я отключу шнур питания.
Два вопроса:
- Как операционная система может предположить, что что-то может быть настолько важным, что можно перестать слушать вводимые пользователем данные?
- Как я могу сказать Ubuntu никогда не менять местами основные службы и всегда реагировать на ввод пользователя, даже если какой-то глупый процесс пытается съесть больше ресурсов, чем предоставляет система.
swappiness
настройку на 10, то есть: vm.swappiness = 10
в /etc/sysctl.conf. Поиск здесь для подкачки для получения дополнительной информации об этом. 2) Если замена не помогает ... Даже если вы не хотите ... увеличить размер файла подкачки до 1.5x16G и посмотрите, поможет ли это. Держи меня в курсе. Cheers, Al
vm.swappiness=10
нужно добавить в sysctl.conf. Опытный человек может даже использовать команду sysctl на лету, чтобы установить vm.swappiness = 10, не редактируя файл sysctl.conf. Приветствую, Ал пс: жду ответа ОП.
swapon
чтобы узнать)? Cheers, Al