вторник, 21 июля 2015 г.

О своп (swap) разделе в Linux

При установке системы Linux всегда возникает вопрос: сколько отводить места на жёстком диске для раздела подкачки. Мнения на этот счёт Вы найдёте подчас диаметрально противоположными. Самыми разумными, на мой взгляд, являются следующие:

"Если используешь suspend-to-disk, то размер свопа должен быть достаточен для хранения образа занятой памяти. Если не используешь – своп не нужен".

"Если нужно hibefatoingrnate, то лучше (1,5 - 2) x RAM".

По умолчанию (скорее по традиции, чем по необходимости), установщик системы предлагает под раздел своп выделить на жёстком диске 1-2 объёма оперативной памяти. Лично по моему мнению, зачастую это не оправдано и приводит к тому, что большое количество дискового пространства у Вас будет простаивать. Хотя данное высказывание является ИМХО и не претендует на истину в последней инстанции.


На заметку
При принятии решения на использование раздела подкачки Вам необходимо учитывать цель использования своей ОС и аппаратные возможности Вашего компьютера.

При установке системы можно вообще отказаться от создания раздела "своп" (swap) и далее создать его вручную в виде файла (файлов) на диске.


Например, решим задачку с начальными условиями:

1. На компьютере не используются режимы suspend-to-disk или hibefatoingrnate.
2. Целевое назначение ОС – desktop.
3. Объём оперативной памяти (RAM) – 8 Гб.

В данном случае можно было бы вообще забыть о необходимости подкачки, но (в моём случае) иногда в ней может возникнуть необходимость (если будет запущено сразу 3-4 экземпляра виртуальных машин). Было решено, что отдельно раздел подкачки создаваться не будет, а подкачка будет реализована в виде файла (файлов), размещаемого в корневом разделе. Поэтому при создании корневого раздела имелось в виду, что в нём должно быть предусмотрено место под файл(ы) подкачки (swap).

Изучив имеющуюся в сети информацию по использованию файла вместо раздела подкачки, предлагаю Вам опробованный способ на примере создания файла подкачки для ОС Ubuntu Linux и Linux Mint.

1. Создать файл подкачки выбранного размера. Выбранный размер – 1 Гб.
Вы, со своей стороны, для начала можете выбрать меньшее значение. Так как файлов подкачки может быть несколько, то создать дополнительные файлы и подключить их к системе не составит трудностей.

Запускаем терминал и вводим команду:    sudo dd if=/dev/zero of=/swapfile bs=1M count=1024 

Альтернативно можно было сделать и так:   sudo dd if=/dev/zero of=/swapfile bs=1G count=1 

Пояснения.
swapfile – это имя файла. Оно может быть не обязательно таким, как указано в примере. Вы можете вообще назвать его privat или support, главное – запомнить, что это Ваш файл подкачки.
bs= – это единица указания объёма. К – килобайт (Кб), М – мегабайт (Мб), G – гигабайт (Гб).
count= – это количество единиц. т.е. мной создаётся файл swapfile в 1024 единиц объёма в Мб (1 Гб).


2. Указать системе, что это файл swap – ввести в терминале команду:    sudo mkswap /swapfile 


Обратите внимание, что файл подкачки у Вас создаётся с UUID.

Каждый раздел получает свой уникальный постоянный идентификатор UUID (Universally Unique Identifier), и именно он, а не имя раздела используется в конфигурационных файлах и в случаи каких-либо изменений нужный раздел буден найден по его UUID.

Если Вы подкачку создаёте разделом и желаете сделать как настоящий "гуру", то скопируйте строчку c UUID, например,

UUID=a5262ad8-1291-4113-83f4-ef2a76b57a6a

и вставьте его в текстовый файлик. Далее Вы поймёте, зачем он Вам понадобится.

3. Подключить файл swap – ввести в терминале команду:    sudo swapon /swapfile 


4. Автоматически подключать файл swap при старте системы

а) ввести в терминале команду:   sudo gedit /etc/fstab  – запуск в gedit файла fstab с правами root.

Для оболочки MATE необходимо в терминале вводить:   sudo pluma /etc/fstab 

Для Linux Mint 17.2 и выше использовать команду sudo xed /etc/fstab

б) вписать строку:     /swapfile none swap sw 0 0    Смотрите поясняющий рисунок ниже:


После перезагрузки системы пространство подкачки (swap) в виде файла автоматически монтируется:


Помните, что в п.2 (см. выше) Вы могли сохранить строку с UUID в отдельный файлик? Если у Вас будет не файл, а раздел подкачки, то вместо строки

  /swapfile none swap sw 0 0

Вы можете вписать

UUID=a5262ad8-1291-4113-83f4-ef2a76b57a6a none swap sw 0 0

и всё будет прекрасно работать.

Итак, был создан файл подкачки с именем swapfile, который автоматически монтируется при старте системы. Можно создать ещё один файл (например, с именем swapfile1 или swapfile2 – имя м.б. любым) и таким же образом монтировать его при старте системы. Для прекращения монтирования файла подкачки при старте системы запустите в терминале  sudo gedit /etc/fstab или  sudo pluma /etc/fstab  (для оболочки MATE) и удалите строчку, указывающую на этот файл. Сохраните отредактированный файл fstab и перезагрузите систему.

Командой  swapoff -a , запущенной от имени суперпользователя (root), можно отключить использование всех разделов и файлов подкачки. После ввода команды содержимое swap за несколько минут загружается обратно в оперативную память, а сам раздел подкачки отключается. Для включения swap обратно введите команду  swapon -a .

В ходе написания заметки был использован этот источник.

1 комментарий: