Как создать swap диск

Как создать swap диск

SWAP – один из механизмов виртуальной памяти, при котором отдельные фрагменты памяти (обычно неактивные) перемещаются из ОЗУ во вторичное хранилище (отдельный раздел или файл), освобождая ОЗУ для загрузки других активных фрагментов памяти.

Более подробно о механизме своппинга можно прочитать в Википедии.

Дополнительно SWAP используется при организации режима сна (hibernation или suspend to disk). При этом в SWAP сохраняется образ оперативной памяти.

Размещение

SWAP может быть размещен на разделе диска, в файле или в RAM. Исторически в Linux SWAP размещался на разделе, но в современных дистрибутивах производительность SWAP-файла не уступает SWAP-разделу. Однако стандартный установщик Ubuntu (до версии 17.04) не умеет создавать SWAP-файл при установке и выдает предупреждение, если SWAP-раздел не определен при разметке диска. Начиная с версии 17.04, Ubuntu предлагает по умолчанию создавать SWAP в файле (объем определяется как 5% от свободного на диске места, но не более 2 Гб). Использование SWAP-файла имеет некоторые преимущества: он не занимает отдельный раздел, его легко создать, изменить его размер или удалить.

Дополнительно при выборе размещения SWAP нужно учитывать, что не все файловые системы позволяют использовать прямую адресацию блоков SWAP-файла. Так, к примеру, нельзя использовать SWAP в файле на разделе с файловой системой btrfs(по состоянию на середину 2017).

Безопасность

При работе с секретными/зашифрованными данными часть этих данных в процессе работы либо при гибернации может оказаться в SWAP в расшифрованном виде. В таких случаях рекомендуется шифровать не только данные, но и сам SWAP. Однако нужно учитывать, что у режима сна при шифровании SWAP могут возникнуть сложности.

Размер

В Интернете можно найти множество рекомендаций по определению размера SWAP, однако универсального ответа не существует.

При определении размера SWAP следует учесть следующие аспекты:

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

Для машин с незначительным объемом памяти (меньше 2 Гб) рекомендуется создавать SWAP размером от 1,5 до 2-х размеров оперативной памяти. И стоит попробовать изменять vm.swappiness, но лучше поискать возможность увеличить объем оперативной памяти.
Для машин с объемом памяти 3-4 Гб нужно решить, будет ли использоваться suspend to disk. Если да, то нужно создавать SWAP размером на 10-15% больше размера оперативной памяти. Если же suspend to disk использоваться не будет, то можно создать SWAP небольшого размера (размером от половины до 1 объема оперативной памяти). Можно не создавать SWAP при установке системы, а при необходимости добавить его позже как файл.
На компьютерах с объемами оперативной памяти более 6Gb имеет смысл создать SWAP размером в половину от объема оперативной памяти. При этом, если вы хотите использовать гибернацию, следует оценить загрузку оперативной памяти в процессе работы и задать величину SWAP, исходя из этого. К примеру, если объем оперативной памяти составляет 16 ГБ, а рабочая загрузка не превышает в среднем 5-6 ГБ, величины SWAP-раздела в 8 ГБ вам хватит для гибернации. При таком подходе следует помнить, что при использовании ресурсоёмких программ (рендеринг изображения, компиляция огромных проектов и т.п.) оперативная память может заполняться полностью, а SWAP — использоваться в качестве подкачки. В таких ситуациях размер SWAP нужно выбирать индивидуально.

Читайте также:  Киа рио на литых дисках 15 радиус

При работе с секретными (зашифрованными) данными стоит либо шифровать SWAP, либо рассмотреть вариант с отказом от SWAP вовсе (зависит от размера оперативной памяти). Стоит также рассмотреть вариант с шифрованием всего диска.

Создание SWAP на разделе диска

Разобравшись с требованиями к SWAP, можно приступить к его созданию или изменению.
Ядро Linux может работать с несколькими частями SWAP. Поэтому если вы решили, что созданного при установке системы SWAP-раздела недостаточно, то стоит создать дополнительный SWAP (выделить место под раздел или файл). Однако нужно учитывать, что для гибернации нужен непрерывный блок SWAP, который должен иметь размер больший, чем оперативная память.
К примеру, у нас есть раздел /dev/sdc2 (ваше имя раздела может отличаться). Создадим на нем необходимую структуру данных для работы SWAP:

Подключим раздел как SWAP:

Проверить результат можно, посмотрев на вывод команды

Сделаем автомонтирование SWAP-раздела при запуске системы. Узнаем UUID раздела:

Теперь пропишем строку в /etc/fstab

SWAP с динамически изменяемым размером

Если вы не хотите думать об объеме SWAP, имеет смысл воспользоваться утилитой swapspace (динамический менеджер подкачки). Эта утилита работает в фоновом режиме и динамически управляет подкачкой. При необходимости swapspace автоматически создаёт дополнительные файлы подкачки требуемого размера. Неиспользуемые файлы подкачки удаляются и не занимают место.
Однако, если вы работаете с секретными документами, не забудьте указать swapspace создавать SWAP-файлы на зашифрованном диске или внутри шифрованного контейнера 1) .

Hibernate (suspend to disk, гибернация)

О настройке режима гибернации можно прочитать здесь.

Параметр vm.swappiness

Основной параметр, влияющий на работу системы со swap, — это vm.swappiness. Очень приблизительно этот параметр можно определить так: он задает процент свободной оперативной памяти, при котором начинается использование подкачки. Более точное определение смысла этой переменной можно уяснить из описания которое было дано в рассылке kernel.org — статья на английском.
Без особой необходимости трогать его не рекомендуется.

Скорректировать значение, применяемое при загрузке системы, можно, указав в файле /etc/sysctl.conf значение vm.swappiness. Пример:

Мгновенно применить эту настройку можно с помощью следующей команды:

Актуальное значение, используемое ядром в настоящее время, можно просмотреть или изменить в /proc/sys/vm/swappiness.

Изменения в /proc/sys/vm/swappiness будут сброшены при следующей перезагрузке.

Значение vm.swappiness по умолчанию — 60.

Какое значение выбрать?

Маленькое значение vm.swappiness (минимальное значение: 0) будет заставлять ядро использовать больше оперативной памяти под память процессов (в ущерб буферам и кэшам), тогда как большое значение (максимальное значение: 100) будет выделять больше памяти под кэши и буфера (в ущерб памяти для процессов).

Нужно понимать: ни одно значение vm.swappiness не увеличит волшебным образом производительность компьютера многократно. Урезаете кеши — понижаете отзывчивость системы при работе с файлами, урезаете память процессов — снижаете отзывчивость системы при переключении задач.

Нужное вам значение, скорее всего, стоит подбирать экспериментально.

Источник

Как создать раздел подкачки не на системном диске. Как переместить раздел подкачки на другой диск

Если в Linux не хватает оперативной памяти, то для её увеличения есть два варианта: файл подкачки и раздел подкачки. Если вы не понимаете разницу между ними, то настоятельно рекомендуется прочитать теорию здесь. Там подробно описаны плюсы и минусы каждого из вариантов.

Обычно удобнее использовать файл подкачки. И если вы выбрали именно такой вариант, то для вас уже написаны статьи:

Когда невозможно использовать файл подкачки

Но бывают ситуации, когда не получится увеличить оперативную память за счёт файла подкачки и нужно прибегнуть к созданию раздела подкачки.

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

Читайте также:  Стрейч резина с дисками

Далее показана подробная инструкция, как создать раздел подкачки на другом диске системы. Все действия будут выполняться в командной строке, чтобы сделать инструкцию универсальной — она подойдёт для тех, у кого установлено графическое окружение рабочего стола (домашние компьютеры), а также для системных администраторов, которые управляют компьютерами без графического интерфейса (серверы).

Выбор диска для раздела подкачки

Начнём с выбора диска. Чтобы просмотреть список дисков выполните команду:

На моём компьютере диск /dev/sda1 является системным. Поскольку мы исходим из предположения, что на системном диске недостаточно места (иначе было бы лучше просто создать файл подкачки), то создавать раздел подкачки я буду на втором диске /dev/sdb.

ВНИМАНИЕ: по всем последующих командах заменяйте /dev/sdb на имя диска в вашей системе! Не копируйте бездумно команды!

Разметка диска для создания раздела подкачки

Поскольку выбранный диск имеет размер 50 гигабайт, а раздел подкачки я хочу сделать размером 10 гигабайт, то мне нужно на этом диске создать раздел в 10 гигабайт, который затем будет использоваться для раздела подкачки (оставшееся место на диске можно использовать, например, для хранения файлов).

Если вы предпочитаете графический интерфейс, то установите и запустите Gparted:

Если вы предпочитаете командную строку, то выполните команду вида:

В моём случае это:

Выбираем gpt:

Нажимаем кнопку Новый:

Указываемый желаемый размер раздела:

Нажимаем кнопку Тип:

В качестве типа выбираем Linux своп (Linux swap):

Нажимаем кнопку Запись:

Выходим из программы — нажимаем кнопку Выход.

Форматирование раздела подкачки

Вновь проверяем наши диски:

Обратите внимание на строки:

Они означают, что раздел подкачки успешно создан.

Теперь нужно отформатировать и инициализировать раздел подкачки (SWAP):

Обратите внимание, что диск, на котором создан раздел, называется /dev/sdb, а сам раздел называется /dev/sdb1. В зависимости от вашей системы (типа диска, количества дисков, номера раздела) этот путь может быть другим!

ВНИМАНИЕ: в последующих командах указывайте имя вашего раздела — не копируйте бездумно команды!

В моём случае для раздела /dev/sdb1:

Добавление раздела подкачки в /etc/fstab

Файл /etc/fstab содержит информацию о дисках, который должны быть смонтированы при загрузке системы. Чтобы созданный раздел подкачки автоматически подключался при каждой загрузке Linux, необходимо информацию о нём добавить в файл /etc/fstab.

Нужно начать с определения уникального номера (UUID) раздела, для этого выполните команду вида:

У меня раздел называется /dev/sdb1, тогда моя команда следующая:

Будет выведено примерно следующее:

Нас интересует значение UUID, в моём случае оно 790e298a-aac8-46a8-96ed-ece7a23f0386. Кстати, вы могли обратить внимание, что команда mkswap при создании свопа также показала этот идентификатор.

Теперь открываем файл /etc/fstab. Если у вас графический интерфейс, это можно сделать командами:

Для редактирования в консоли откройте его командами:

И добавьте туда строку вида:

Где вместо xxxxxxxxxxxx впишите идентификатор вашего раздела. Например, в моём случае получилась следующая запись:

После перезагрузки файл подкачки автоматически будет использоваться системой. Для его проверки выполните:

Или посмотрите с помощью этой команды:

Включение гибернации

Созданный раздел подкачки может использоваться не только для хранения части информации из оперативной памяти во время работы компьютера, его также можно использовать в режиме гибернация (сон). При добавлении этого режима в меню выключения появится дополнительная опция — Сон. Если выбрать её, то текущее состояние оперативной памяти будет записано в раздел подкачки. При следующем включении компьютера, он считает информацию из раздела подкачки и восстановит состояние компьютера. То есть те программы, которые были открыты, вновь будут открыты и будет сохранён их результат работы.

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

Читайте также:  Диск пильный это инструмент или материал

Источник

Создание SWAP раздела

Раздел подкачки Linux или swap позволяет использовать жесткий диск для сохранения информации, которая должна сохраняться в оперативной памяти.

Данные, которые должны сохранятся в RAM при ее нехватке будут занимать пространство выделенное под swap. Время обращения к данным, которые размещены в нем, и время получения ответа увеличится, но раздел сможет использоваться операционной системой.

Операционная система распознает, что скорость работы с данными в разделе подкачки ниже и будет использовать его для старых данных, храня те, к которым обращения происходят чаще всего непосредственно в RAM.

Раздел подкачки Linux — частое решение в ситуациях, когда на сервере скриптам периодически не хватает оперативной памяти.

Создание swap, раздел подкачки Linux

Обычно для раздела, который будет использоваться в качестве «быстрой памяти» в дополнение к системной RAM выделяется столько же оперативной памяти, сколько имеется RAM или вдвое больше. Однако никаких правил нет и это просто условность.

В Linux чаще используется понятие именно раздела под swap, хотя swap файлы — с которыми обычно работают в Windows также используются. Рассмотрим только создание партиции.

Под swap будем использовать партицию, для которой при помощи fdisk создадим соответствующий тип раздела

Находим в выводе устройство, размер которого совпадает с диском или партицией, который/ую хотим использовать, в примере это /dev/vdc

Command (m for help): p

Disk /dev/vdc: 5368 MB, 5368709120 bytes
16 heads, 63 sectors/track, 10402 cylinders, total 10485760 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x27e517f5

Device Boot Start End Blocks Id System

Отдаем команду на создание нового раздела

Command (m for help): n

Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended

Select (default p): p

Номер партиции, а также начало и конец секторов оставляем по-умолчанию

Partition number (1-4, default 1): 1
First sector (2048-10485759, default 2048):
Using default value 2048
Last sector, +sectors or +size (2048-10485759, default 10485759):
Using default value 10485759

Самое важное — выбираем тип раздела

Command (m for help): t
Selected partition 1

Большая буква L выведет все варианты, из них потребуется 82 Linux swap / So c1

Сейчас выделена партиция /dev/vdc1 объемом 5 Гб, что довольно много для среднего сервера, но такое количество памяти также можно использовать.

Command (m for help): p

Disk /dev/vdc: 5368 MB, 5368709120 bytes
9 heads, 40 sectors/track, 29127 cylinders, total 10485760 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x27e517f5

Device Boot Start End Blocks Id System
/dev/vdc1 2048 10485759 5241856 82 Linux swap / Solaris

Раздел подкачки и mkswap

mkswap утилита, непосредственно создающая раздел подкачки, используем ее передавая имя раздела

Setting up swapspace version 1, size = 5241852 KiB
no label, UUID=2f7a89e2-4bc3-4fa2-a442-b0e587d752d1

В последней строке выводится идентификатор UUID.

Монтировать раздел swap не нужно, достаточно его активировать. После ключа -U указываем идентификатор

swapon -U 2f7a89e2-4bc3-4fa2-a442-b0e587d752d1

Посмотреть все разделы, выделенные под swap можно командой swapon с ключом -s, таких разделов при желании можно сделать неограниченно много.

Filename Type Size Used Priority
/dev/vdc1 partition 5241852 0 -1

Добавление swap в автозагрузку

Чтобы раздел подкачки монтировался автоматически после каждой перезагрузки системы необходимо добавить правило в /etc/fstab

Последней строкой в файл дописываем

UUID=2f7a89e2-4bc3-4fa2-a442-b0e587d752d1 none swap sw 0 0

Идентификатор относится только к тому устройству, которое было создано ранее и размечено как swap. Вместо него можно использовать имя партиции — в примере это /dev/vdc1

Источник

Поделиться с друзьями
Шинбург