Добавлена статья о подкачке (не путать с zram.md)
6.2 KiB
Выбор размера подкачки
Если оперативной памяти Вашего компьютера недостаточно (3 Гб и менее), то наиболее простым и быстрым решением проблемы является использование файла/раздела подкачки. В данной инструкции речь пойдёт о файле, так как это наиболее хорошее решение для сборки системы: размер файла очень быстро регулируется, быстро удаляется.
На компьютере с ОЗУ объёмом 8 Гб, в целом, при компиляции базовой системы было занято 3,5-4 Гб памяти, поэтому подкачка мне не понадобилась.
Из этого и рассчитывайте размер swap.
Чтобы узнать, существует ли уже подкачка или нет, выполните:
swapon --show
А чтобы просмотреть использование ОЗУ и Swap:
free -m
Рассчёт размера подкачки (swap)
Обычно объём подкачки равен половине объёма ОЗУ/объёму ОЗУ умноженного на 2, но не всегда этого может хватить, особенно на слабых ПК. Поэтому рассчитайте размер файла или раздела так, чтобы обеспечить минимум 4 Гб в общей сложности (ОЗУ+Swap). Для сборки базовой системы этого хватит, а для сборки таких программ, как, например, Pale Moon, этого не хватит - нужно мощное железо. Не проще ли, в таком случае, не компилировать такое "тяжёлое" ПО, а найти бинарные пакеты?
Создание файла подкачки
Чтобы создать файл подкачки, выполнить:
sudo fallocate -l 1G /swapfile &&
sudo chmod 600 /swapfile &&
sudo mkswap /swapfile &&
sudo swapon /swapfile
Объяснение новых команд
- sudo fallocate -l 1G /swapfile - создать файл
/swapfile
, размером 1 Гб. Чтобы выбрать другой размер, заменить "1G" на нужное значение. - sudo chmod 600 /swapfile - в целях безопасности, выставить нужные права на файл. О правах на файлы читать в интернете.
- sudo mkswap /swapfile - создать файловую систему swap.
- sudo swapon /swapfile - включение подкачки.
Настройка vm.swappiness
Теперь настройка свопа. Есть параметр, сообщающий ядру, как часто использовать подкачку. Параметр имеет значения от 0 до 100, чем выше значение, тем чаще будет использоваться swap. Для того, чтобы проверить, какой параметр используется, выполнить:
cat /proc/sys/vm/swappiness
Например, в Rosa R11 значение равно шестидесяти. Если хотите изменить это значение, выполните:
sudo sysctl vm.swappiness=X
Где X - нужное значение.
Сохранение изменений после перезагрузки
Как только система перезагрузится, придётся опять включать подкачку и выставлять vm.swappiness, что, конечно, неудобно. Чтобы этого избежать, нужно сделать соответствующую запись в /etc/fstab
:
echo '/swapfile none swap sw 0 0' |sudo tee -a /etc/fstab
И записать в /etc/sysctl.conf
нужное значение swappiness:
echo 'vm.swappiness=X' |sudo tee -a /etc/sysctl.conf
Удаление файла подкачки
После сборки и настройки системы, вероятно, swap вам больше не понадобится. Поэтому лучше его удалить. Напоминаю, что все действия из этой инструкции выполняются ТОЛЬКО на хост-системе.
Выполнить:
sudo swapoff /swapfile
sudo rm /swapfile
И удалить записи в /etc/fstab
и /etc/sysctl.conf
.
Объяснение новых команд
- sudo swapoff... - отключить подкачку
- sudo rm /swapfile - удалить подкачку
ВАЖНО!!!
Когда полностью отключить подкачку, то ОС будет использовать только ОЗУ и в случае его нехватки система может просто зависнуть. Ну и пару нужных вещей:
- Подкачка нужна для ровного и эффективного высвобождения оперативной памяти и использовать swap в качестве "экстренной памяти" не рекомендуется в принципе.
- Отключение swap не спасает от проблемы дискового ввода/вывода при конкуренции за память - дисковый I/O перемещается с анонимных страниц на файловые, что не только может быть менее эффективным, поскольку остаётся меньший пул страниц, доступных для высвобождения, но и само по себе может способствовать появлению этой высокой конкуренции.
Больше о подкачке смотреть (здесь) [https://habr.com/ru/company/flant/blog/348324/]