Организуем пространство подкачки в Debian sid

prolinux

Опубликован:  2023-07-19T04:26:45.392487Z
Отредактирован:  2023-07-19T04:26:45.392487Z
Статус:  публичный
50
0
0

Современный компьютер вряд ли кто-то может себе представить без яркой, красочной графики и практичного рабочего стола с приятным оформлением и множеством полезных возможностей на нём. А раз так, вашему компьютеру понадобится много-много оперативной памяти, где-то же должны храниться изображения меню, флажков и кнопочек в процессе работы. На случай, если вдруг оперативной памяти не хватает, в операционных системах с ядром Linux предусмотрен механизм обмена данными с так называемым swap-пространством, его обычно называют подкачкой. В этой демонстрации рассмотрим процесс создания и подключения swap-файла в Debian sid.

Диагностика

Итак, в моём распоряжении есть довольно устаревший лэптоп Acer с 4ГБ оперативной памяти, и на нём установлен Debian sid. Стационарный диск компьютера размечен на два раздела, раздела для подкачки в этой схеме не предусмотрено.

Всего лишь 4 ГБ RAM - слишком мало по сегодняшним меркам, а учитывая, что Debian sid является перспективной разработкой сообщества, можно ожидать, что доступного объёма оперативной памяти машине будет недостаточно, зависит, конечно же, от решаемых с помощью этой системы задач.

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

$ free -h

В результате выполнения этой команды в моём терминале образовался следующий выхлоп.

               total        used        free      shared  buff/cache   available
Mem:           3,3Gi       990Mi       1,9Gi        33Mi       667Mi       2,3Gi
Swap:             0B          0B          0B

Как видно, операционной системе доступно 3.3 ГиБ, из которых 1.9 ГиБ всё ещё свободно. На текущий момент операционная система не испытывает дефицита RAM, но памяти явно маловато. В третьей строчке выхлопа показано распределение Swap-памяти, и в ней присутствуют только лишь монументальные нули - подкачка отсутствует. Сейчас будем это исправлять.

Кроме программы free, в системе есть программа swapon, она умеет отображать состояние подкачки, если подкачка включена, в противном случае следующий вызов не будет иметь выхлопа в терминале.

$ sudo swapon --show

Делаю простой вывод, подкачка в данном экземпляре операционной системы отсутствует.

Создаём swap-файл

Файл, который чуть позже станет файлом подкачки, должен иметь определённый, заданный администратором компьютера размер. Создать файл заданного размера вполне по силам программе dd, с её помощью можно создать файл и записать в него данные в необходимом количестве, и такими данными будут обычные нули.

$ sudo dd if=/dev/zero of=/swapfile bs=1M count=1024

Здесь я указал следующие опции:

  • if=/dev/zero - источник данных;

  • of=/swapfile - адрес и имя файла, куда будут записаны данные;

  • bs=1M - размер записываемого блока, в данном случае это 1МиБ;

  • count=1024 - количество записываемых в файл блоков.

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

1024+0 records in
1024+0 records out
1073741824 bytes (1,1 GB, 1,0 GiB) copied, 7,30282 s, 147 MB/s

Можно проверить, программа создала файл /swapfile размером 1024 МиБ.

Форматируем swapfile

Чтобы использовать только что созданный файл в качестве файла подкачки, в нём необходимо создать соответствующую задаче файловую систему. Выполняю следующую команду.

$ sudo mkswap -L sw /swapfile

В результате в моём терминале программа выдала следующий текст.

mkswap: /swapfile: insecure permissions 0644, fix with: chmod 0600 /swapfile
Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
LABEL=sw, UUID=30f93335-fd7d-4967-9204-1c1e4dbbc44c

Обращаю внимание на первую строчку этого выхлопа, изменить параметры доступа созданного файла нам поможет программа chmod.

$ sudo chmod 600 /swapfile

Отлично, файл создан и готов к возложенной на него миссии.

Редактируем fstab

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

$ sudo nvim /etc/fstab

Вписываю в этот файл одну единственную строчку.

/swapfile none swap sw 0 0

Вот как это выглядит в окне моего редактора.

5lgsdixGLI.png

Сохраняю изменения в файл и покидаю текстовый редактор. Теперь подкачка включится автоматически после перезагрузки операционной системы. И вот как выглядит мой терминал после всех трудов.

ELIE3MFrxm.png

Тестируем

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

5HdihrBscX.png

Как видно на крайнем снимке экрана, теперь у операционной системы есть пространство подкачки заданного администратором компьютера размера. Цель демонстрации полностью достигнута.

Как изменить размер файла подкачки

Swap-файл - довольно удобное решение, просто потому, что изменить размер пространства подкачки в этом случае достаточно просто. Для этого необходимо на время отключить подкачку вот такой командой.

$ sudo swapoff /swapfile

После этого swapfile можно удалить с помощью программы rm, а на его месте создать новый необходимого размера и с тем же именем. В этом случае не понадобится править fstab, и после перезагрузки компьютера подкачка опять заработает.

Выводы и умозаключения

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

Не стоит создавать файл подкачки сразу слишком большого размера. Если у компьютера есть больше чем 4ГБ RAM, вполне возможно, что операционная система будет неплохо работать и без подкачки. Утверждение верно только для лёгких рабочих столов.

Метки:  debian, sid, dd, debian-install, fstab, swap, swapfile