Проблема с нехваткой памяти во время работы ядра Linux насчитывает уже не один год. Однако на этой неделе к ней снова привлекли внимание. Исчерпание свободной памяти в ядре приводит к тому, что система начинает тормозить и может даже перестать откликаться на команды. Этот баг есть в том числе в свежем ядре 5.2.6.
Суть в следующем — при отключённом swap, если пользователь начинает открывать много вкладок в браузере, в какой-то момент веб-обозреватель может потребовать больше ОЗУ, чем есть. После этого система почти полностью зависает, идёт постоянное обращение к диску, текущие приложения нельзя будет закрыть, как и запустить новые.
На данный момент решения пока нет. Частично проблему устраняет активация swap, а также появившаяся в ядре 4.20 и улучшенная в ядре 5.2 подсистема PSI (Pressure Stall Information). PSI может быть решением, но лишь в будущем, поскольку она предназначена для сбора данных о времени ожидания получения различных ресурсов — процессора, памяти и так далее. Подсистема позволяет отслеживать «прожорливость» тех или иных программ и заблаговременно уведомлять пользователя.
На данный момент пока нет готового и общедоступного решения такого поведения ОС. Разве что открывать поменьше вкладок. Но это, разумеется, лишь не слишком приятная альтернатива.