Организуем пространство подкачки в Debian sid
prolinux
Опубликован: | 2023-07-19T04:26:45.392487Z |
Отредактирован: | 2023-07-19T04:26:45.392487Z |
Статус: | публичный |
Современный компьютер вряд ли кто-то может себе представить без яркой, красочной графики и практичного рабочего стола с приятным оформлением и множеством полезных возможностей на нём. А раз так, вашему компьютеру понадобится много-много оперативной памяти, где-то же должны храниться изображения меню, флажков и кнопочек в процессе работы. На случай, если вдруг оперативной памяти не хватает, в операционных системах с ядром 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
Вот как это выглядит в окне моего редактора.
Сохраняю изменения в файл и покидаю текстовый редактор. Теперь подкачка включится автоматически после перезагрузки операционной системы. И вот как выглядит мой терминал после всех трудов.
Тестируем
Перезагружаю компьютер и повторяю после полной загрузки операционной системы команду в терминале.
Как видно на крайнем снимке экрана, теперь у операционной системы есть пространство подкачки заданного администратором компьютера размера. Цель демонстрации полностью достигнута.
Как изменить размер файла подкачки
Swap-файл - довольно удобное решение, просто потому, что изменить размер пространства подкачки в этом случае достаточно просто. Для этого необходимо на время отключить подкачку вот такой командой.
$ sudo swapoff /swapfile
После этого swapfile можно удалить с помощью программы rm, а на его месте создать новый необходимого размера и с тем же именем. В этом случае не понадобится править fstab, и после перезагрузки компьютера подкачка опять заработает.
Выводы и умозаключения
Размещать подкачку в файл гораздо удобней, чем размещать её на отдельном разделе жесткого диска, потому что размер файла подкачки несложно изменить в любой момент.
Не стоит создавать файл подкачки сразу слишком большого размера. Если у компьютера есть больше чем 4ГБ RAM, вполне возможно, что операционная система будет неплохо работать и без подкачки. Утверждение верно только для лёгких рабочих столов.