Мой ноутбук имеет много оперативной памяти и SSD. Чтобы не изнашиваться SSD, я не хочу, чтобы своп использовался когда-либо. Если процесс когда-либо использует так много оперативной памяти, что ему приходится начинать использовать swap, то он явно работает неправильно и должен быть убит ядром. Но я также хочу быть в состоянии гибернации или гибридного сна моего ноутбука. В настоящее время, кажется, очень трудно заставить работать такую настройку. Вот несколько предостережений:
- даже установка
swappiness
на 0 позволит использовать swap, если приложение запрашивает слишком много памяти. Кажется, нет никакого способа включить swap, но помешать ядру использовать его в качестве пространства подкачки (и, таким образом, уменьшить его полезность до места для образа гибернации) - Отключение свопинга (временно) приведет к таким командам, как
systemctl hibernate
ошибка гибернации из-Failed to hibernate system via logind: Sleep verb not supported
- Я хочу, чтобы upower смог перевести мою систему в режим гибернации / гибридного сна (поэтому недостаточно написать сценарий-обертку, который включает подкачку и затем запускает
systemctl hibernate
)
Сейчас я ищу правильный путь для достижения этой цели. Один из способов сделать это, вероятно , будет вообще отключить мой раздел подкачки , а затем swapon
в нужный момент через Systemd (и swapoff
после того , как система просыпался). Но я не знаю, как этого добиться.
Другой способ - использовать файл подкачки, но это, по-видимому, добавляет дополнительных сложностей по сравнению с использованием раздела подкачки. Не в последнюю очередь потому, что я использую полное шифрование диска, а uswsusp
похоже, является еще одним слоем поверх того, что я уже могу иметь с моим существующим разделом подкачки. Но, может быть, я что-то упустил, и использование файла подкачки в целом проще для этой цели.