Файл подкачки в Linux
Swap — это дисковое пространство, которое ядро Linux использует в качестве расширения оперативной памяти: редко используемые страницы памяти перемещаются туда, чтобы освободить RAM для активных задач. Это может быть выделенный раздел или файл подкачки; информация о нем отображается командами free -h и swapon --show.
1Почему swap все еще полезен
Даже при наличии большого объема RAM swap позволяет ядру выгружать неактивные страницы из памяти и создает буфер перед тем, как механизм out-of-memory killer начнет завершать процессы. Однако постоянное интенсивное использование подкачки означает, что системе не хватает RAM или запущено слишком много задач.
2Параметр swappiness
Настройка ядра vm.swappiness (от 0 до 200, по умолчанию 60) определяет, насколько активно ядро использует подкачку по сравнению с очисткой кэша файлов. Низкие значения позволяют дольше удерживать память приложений в RAM. Текущее значение можно узнать командой sysctl vm.swappiness, а постоянное значение задается в файле в директории /etc/sysctl.d/.
3Файлы подкачки
Файл подкачки создается, форматируется с помощью mkswap, активируется командой swapon и добавляется в /etc/fstab для автоматического монтирования после перезагрузки. Права доступа к нему должны быть установлены как 600.
Как добавить файл подкачки объемом 2 ГБ
- Создайте файл:
sudo dd if=/dev/zero of=/swapfile bs=1M count=2048 - Ограничьте доступ:
sudo chmod 600 /swapfile - Отформатируйте его:
sudo mkswap /swapfile - Активируйте его:
sudo swapon /swapfile - Сделайте настройку постоянной: добавьте строку '/swapfile none swap sw 0 0' в файл
/etc/fstab - Проверьте результат:
swapon --showиfree -h
Осторожно
- В файловой системе Btrfs файл подкачки требует специальной подготовки (отключение copy-on-write); следуйте руководству вашего дистрибутива.
- Ошибка в
/etc/fstabможет привести к невозможности загрузки системы: проверяйте строку перед перезагрузкой.
Связанные статьи
- df (disk free)Как читать вывод команды df, почему Use% может достичь 100%, когда Avail еще не равен нулю для обычных пользователей, и как проверить иноды с помощью df -i.
- Юниты systemd и systemctlЧто такое юнит systemd, основные типы юнитов, а также как запускать, останавливать, включать и проверять службы с помощью systemctl.
- Использование диска с помощью du и ncduКак найти, что заполняет диск в Linux с помощью du и интерактивной утилиты ncdu, используя параметры для ограничения поиска одной файловой системой.
Источники
- swapon(8) man7.org
- mkswap(8) man7.org
- free(1) man7.org
- Документация по /proc/sys/vm (kernel.org) kernel.org
Последняя проверка: