Создание и настройка swap в Ubuntu

SwapВ статье об очистке файла подкачки в Windows мы затронули достаточно важный элемент работы компьютера, а именно, управление виртуальной памятью. Безусловно, механизм виртуальной памяти присутствует не только в системах Windows. Данная статья будет посвящена так называемой технологии swap (англ. менять), широко используемой в системах Linux в качестве области виртуальной памяти для временной загрузки туда данных, что не умещаются в оперативной памяти.

Swap, конечно, нельзя назвать панацеей, так как жесткие диски заведомо медленнее оперативной памяти. Что же касается более быстрых SSD-дисков, то создавать на них swap-разделы или swap-файлы не рекомендуется по причине меньшего по сравнению с жесткими дисками количества допустимых циклов перезаписи секторов. Сам смысл технологии swap заключается в возможности запуска приложений, которым требуется больше оперативной памяти, чем есть у ПК, а не в постоянном использовании жесткого диска в качестве замены оперативной памяти. Логика swap-разделов в Linux немного отличается от файла pagefile.sys в Windows. В данном случае мы имеем дело не с файлом, а с системным разделом жесткого диска. Впрочем, Linux дозволяет и использование файлов подкачки.

Перейдем непосредственно к управлению swap в Ubuntu-подобных системах. В качестве тестового стенда выбрана виртуальная машина с Xubuntu, но вы сможете убедиться, что синтаксис команд общий для родственных систем.

Первым делом проверим в нашей системе наличие swap:

sudo swapon --show

Если в ответ Вы получите пустую строку, это будет означать, что swap-раздел или swap-файл не созданы.

Создание и настройка swap в Ubuntu
Система сообщает об отсутствии swap.
Создание и настройка swap в Ubuntu: Система сообщает о наличии swap-файла.
Система сообщает о наличии swap-файла.

Swap-раздел или swap-файл

Вопрос, создавать ли swap-раздел или swap-файл, является дискуссионным. Конечно же, в первую очередь очередь пользователя интересует скорость. Так вот, особой разницы в данном случае нет. Расхожие представления, что «прослойка» в виде файловой системы замедляет swap-файл, можно отнести скорее к надуманным. А вот о чем действительно следует задуматься, так это о фрагментации. Поэтому swap лучше создать заблаговременно, а не после нескольких месяцев активного пользования системой. С другой стороны, преимущество swap-файла в том, что при его создании не требуется менять разметку диска.

Создание swap-файла в Ubuntu

Перед созданием swap всегда полезно оценить объем свободного дискового пространства через терминал командой

df -h
Создание и настройка swap в Ubuntu
Проверка свободного дискового пространства через эмулятор терминала.

или просто графическим путем, открыв свойства файловой системы, если у Вас один раздел.

Создание и настройка swap в Ubuntu

Как видите, мы можем разместить небольшой swap-раздел или swap-файл на этом компьютере.

Сколько отвести места под swap? Если планируется использовать на компьютере гибернацию, то swap должен быть равен объему ОЗУ. Раньше, когда объемы оперативной памяти были не столь велики, в ходу была рекомендация выставлять размер swap превышающим в два раза размер ОЗУ. Сейчас в этом нет необходимости.

Для создание swap-файла в Ubuntu можно использовать утилиту fallocate. Создадим файл подкачки и назовем его swapfile.

sudo fallocate -l 1G /swapfile

Вы можете обозвать его по-другому и задать ему необходимое место размещения.

После проверим, зарезервировала ли система нужное нам количество пространства:

ls -lh /swapfile

Создание и настройка swap в Ubuntu

Если ОС выдала утвердительный ответ, превратим наш файл в swap-файл.

Заблокируем доступ к файлу всем, кроме учетной записи root:

sudo chmod 600 /swapfile

И снова проверим настройки файла:

ls -lh /swapfile

Создание и настройка swap в Ubuntu

Вы увидите, что читать и изменять данный файл теперь может только учетная запись root. Теперь нужно создать файловую систему swap.

sudo mkswap /swapfile

Создание и настройка swap в Ubuntu

Теперь файл промаркирован и размещен на жестком диске, а это значит, что можно включить его использование в качестве файла подкачки командой

sudo swapon /swapfile

И снова проверить его состояние командой

sudo swapon --show
Создание и настройка swap в Ubuntu
Создание swap-файла завершено.

Есть, однако, тот нюанс, что такой файл подкачки будет работать лишь до перезагрузки компьютера. Чтобы сделанные нами настройки swap остались и после перезагрузки, нужно отредактировать файл /etc/fstab. Это можно сделать и вручную от имени root, найдя файл на диске, открыв его и вписав нужную строку, или вписав то же самое через терминал командой

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Создание swap-раздела в Ubuntu

Процедура создания swap-раздела не сильно отличается от создания swap-файла. Для этого еще во время установки операционной системы будет разумно вручную создать нужную таблицу разделов, зарезервировав один раздел под файл подкачки. Кстати, современные графические установщики системы позволяют создать такой раздел буквально парой кликов мыши.

Создание и настройка swap в Ubuntu
Создание раздела подкачки при установке операционной системы.

Я действительно рекомендую этот способ создания раздела подкачки как самый простой. Если же раздел подкачки не был создан при установке системы, тогда Ваши действия зависят от того, нужно ли переделывать разметку диска или нет. Создание и редактирование разделов несколько выходит за рамки данной статьи. Скажу лишь, что в данном случае можно использовать как графические утилиты (например, GParted), так и консольные (fdisk).

Итак, допустим, у нас есть раздел /dev/sda2, который мы хотим превратить в раздел подкачки. Для этого сперва превращаем его в раздел swap:

sudo mkswap /dev/sda2

Затем включаем раздел подкачки:

sudo swapon /dev/sda2

Проверяем, что всё прошло успешно:

sudo swapon --show

И добавляем нужную нам строку в файл /etc/fstab:

echo '/dev/sda2 none swap sw 0 0' | sudo tee -a /etc/fstab

Настройка swap в Ubuntu

Рассмотрим два основных параметра, влияющих на работу swap. Первый из них — swappiness — отвечает за интенсивность использования файла или раздела подкачки. Значение этого параметра колеблется от 0 (не переносит данные на жесткий диск в swap) до 100 (всё данные переносятся в swap) и по умолчанию равно 60. Просмотреть его можно командой:

cat /proc/sys/vm/swappiness

Для выставления своих значений используйте команду

sudo sysctl vm.swappiness=20

Число в конце выбирайте исходя из своих предпочтений. Например, здесь мы снизили интенсивность использования swap и заставили систему размещать больше данных в ОЗУ. Если Вы работаете с небольшими объемами данных, которые чаще всего помещаются в ОЗУ Вашего компьютера, такая настройка может несколько увеличить производительность. Для того, чтобы настройка сохранилась после перезагрузки, выполните команду

sudo sysctl -w vm.swappiness=20
Создание и настройка swap в Ubuntu
Настраиваем интенсивность использования swap.

Второй интересующий нас параметр называется vfs_cache_pressure и отвечает за длительность хранения кэша в ОЗУ. Значение параметра также колеблется от 0 (долго) до 100 (недолго). Соответственно, чем ближе значение параметра к 100, тем чаще будет удаляться кэш из ОЗУ, а значит реже придется задействовать swap. По умолчанию система старается удалять кэш максимально быстро, но если вы хотите держать его в оперативной памяти дольше, значение параметра можно понизить.

cat /proc/sys/vm/vfs_cache_pressure
sudo sysctl -w vm.vfs_cache_pressure=70
Создание и настройка swap в Ubuntu
Заставим Ubuntu хранить кэш в ОЗУ дольше.

Удаление swap в Ubuntu

Удалить swap-файл довольно просто. Если Вы не знаете сколько в системе swap-файлов и/или swap-разделов, то воспользуйтесь командой

cat /proc/swaps

После того, как Вы нашли нужный swap-файл, отключим его использование в качестве файла подкачки командой

sudo swapoff /swapfile

Напомню, что в нашем примере файл подкачки так и назывался swapfile. Он может называться и по-другому, а также иметь другое расположение. Указывайте путь к файлу полностью. После этого можно удалить файл.

sudo rm /swapfile
Создание и настройка swap в Ubuntu
Удаление swap-файла.

Не забудьте отредактировать файл /etc/fstab, если Вы до этого вносили в него изменения. Например, простым редактором nano:

sudo nano /etc/fstab

С отключением раздела подкачки всё так же просто. Для этого снова используем swapoff. Допустим, раздел подкачки лежит в /dev/sda2, где мы его и создавали в примере выше.

sudo swapoff /dev/sda2

И редактируем /etc/fstab. А уж что дальше делать с этим разделом — решать Вам. 🙂

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *