Как создать раздел подкачки в Linux
В этом уроке мы поговорим о разделе подкачки.
Если вы хотите создать стандартную файловую систему Linux для хранения данных в виде файлов и каталогов, используйте mkfs
команда для создания файловой системы на данном разделе.
Однако имейте в виду, что вы также можете отформатировать раздел таким образом, чтобы его можно было использовать для виртуальной памяти в вашей системе Linux.
В этом случае вам необходимо отформатировать раздел как swap
раздел, и это делается с помощью mkswap
команда в приглашении оболочки.
Что такое своп-память в Linux
Поймите, что ваша система Linux может использовать виртуальную память, чтобы позволить ей запускать больше программ, поддерживаемых физической памятью.

Например, предположим, что у нас есть эта система Linux, и это зеленое поле представляет общий объем оперативной памяти, установленной в системе.
Что ж, сама операционная система будет использовать большой кусок этой доступной оперативной памяти только для обеспечения функций операционной системы, а затем каждое приложение, работающее в системе, также будет использовать кусок памяти.
Это просто базовое представление о том, что в системе работает еще много процессов, помимо четырех, которые мы здесь нарисовали.
Итак, в этой ситуации вы можете видеть, что большая часть нашей физической памяти была израсходована.
У нас есть только крошечный кусочек наверху, который все еще можно использовать для программ.
Предположим, мне нужно запустить другую программу, и это довольно большая программа, которая потребляет столько памяти.
Итак, если я попытаюсь запустить этот процесс в доступной памяти, он не сработает, он слишком большой.
Эта программа потребляет много памяти, и, как вы можете видеть на диаграмме, у нас не так много свободной памяти.

Как работает своп-память?
Теперь, чтобы заставить эту работу работать, то, что делает Linux и большинство других операционных систем для этого примера, – это взглянуть на различные процессы, которые уже выполняются в памяти, и ядро решит, какой из этих процессов на самом деле делает не так много. момент.
Потому что, если подумать, в вашей системе Linux могут быть запущены сотни процессов, многие из которых просто сидят и ждут, чтобы что-то произошло.
В этом случае им фактически не нужно использовать нашу физическую оперативную память.
Итак, что мы делаем, так это берем эти процессы, перемещаем их из физической ОЗУ и помещаем на жесткий диск.
Допустим, мы переезжаем process-1
из физической памяти на жесткий диск.

По сути, мы сопоставляем участки памяти, которые существуют не в физической памяти, а на одном из наших жестких дисков в разделе на жестком диске.
Теперь сами процессы, которые они меняют местами, не понимают, что они больше не работают в памяти, они просто думают, что их перемещают в другое место в памяти.
Сам процесс не знает, что эта ячейка памяти на самом деле находится на жестком диске.
Теперь жесткий диск намного медленнее, чем физическая память.
Итак, мы не хотим ничего помещать в swap
область жесткого диска, которая активно используется.
Потому что он будет работать мучительно медленно, но для процесса, который просто сидит и ждет, чтобы что-то произошло, работает нормально.
Таким образом мы освобождаем место, и дополнительное приложение, которое мы хотим запустить, может быть вставлено в физическую память и запущено.
А потом, если process-1
приложение нужно использовать снова по какой-то причине может быть, и произошло определенное событие, которое заставило его снова начать делать что-то, тогда мы вернем его из swap
область и поместите ее обратно в физическую память.
И мы будем искать какое-нибудь другое приложение, которое в настоящее время ничего не делает. Может быть, это приложение, которое мы только что загрузили, выполнило эту работу, оно просто сидит и ждет, чтобы что-то произошло.
Итак, мы можем вынуть его и положить в swap
площадь.
Вот почему мы называем это swap
потому что мы постоянно перемещаем процессы в эту область и из нее, и, делая это, система может запускать больше процессов, чем у нее физически есть ОЗУ для поддержки.
Создание раздела подкачки в Linux
Теперь в системе Linux вы можете использовать либо раздел, либо весь жесткий диск для этой виртуальной памяти в качестве области подкачки.
Хотя мой опыт показывает, что вы редко используете весь жесткий диск, это просто слишком много места, вместо этого мы определяем раздел на жестком диске и используем его для виртуальной памяти.
Теперь имейте в виду, что система Linux на самом деле может использовать более одного раздела подкачки.
Фактически, если у вас очень активно используемая система, имеющая несколько разделов подкачки, может быть действительно полезно, если вы разместите эти разделы подкачки на нескольких устройствах хранения.
В этом случае я помещаю в систему дополнительный жесткий диск, определяя область подкачки на нем, а также на основном жестком диске.
Таким образом, в системе есть два места, где она может переставлять данные из физической памяти в раздел подкачки и обратно, и тем самым мы можем значительно ускорить работу системы в зависимости от того, насколько интенсивно она используется.

Если у вас малоиспользуемая система с несколькими областями подкачки, это не так уж и эффективно, но в сильно используемой системе, такой как сервер, имеющий две, три или более областей подкачки, действительно может повыситься производительность.
Рекомендуемое пространство подкачки системы:

Источник: redhat.com
Шаг: 1 Создайте стандартный раздел Linux
Теперь, как и раздел данных, раздел, используемый для виртуальной памяти для подкачки, должен быть подготовлен с mkswap
прежде чем вы сможете ее использовать.
Теперь, конечно, прежде чем вы это сделаете, вы должны сначала создать раздел, и вам также необходимо установить тип раздела, чтобы ввести 82
.
По умолчанию, если вы используете fdisk
или gdisk
это создать тип 83
раздел, который является разделом данных Linux.
Итак, создадим раздел.
~$ sudo fdisk /dev/sdb
Welcome to fdisk (util-linux 2.31.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x04ad2d84.
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-6291455, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-6291455, default 6291455): +2G
Created a new partition 1 of type 'Linux' and of size 2 GiB.
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
~$ sudo partprobe /dev/sdb
Как видите, это стандартный раздел с типом раздела 83
.
~$ sudo fdisk /dev/sdb
Welcome to fdisk (util-linux 2.31.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): p
Disk /dev/sdb: 3 GiB, 3221225472 bytes, 6291456 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
Disklabel type: dos
Disk identifier: 0x04ad2d84
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 4196351 4194304 2G 83 Linux
Предлагаемое чтение: Команда fdisk: Как создать дисковые разделы (MBR) в Linux
Шаг: 2 Измените тип раздела
Вы используете это для swap
память вы должны сначала использовать fdisk
утилита или gdisk
утилита для изменения его типа на 82
для fdisk
или 8200
для gdisk
.
Итак, давайте изменим тип раздела, используя fdisk
команда.
~$ sudo fdisk /dev/sdb
Welcome to fdisk (util-linux 2.31.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): 82
Changed type of partition 'Linux' to 'Linux swap / Solaris'.
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
[email protected]:~$ sudo partprobe /dev/sdb
И, как вы можете видеть, это меняет тип файловой системы на swap
раздел.
~$ sudo fdisk /dev/sdb
Welcome to fdisk (util-linux 2.31.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): p
Disk /dev/sdb: 3 GiB, 3221225472 bytes, 6291456 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
Disklabel type: dos
Disk identifier: 0x04ad2d84
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 4196351 4194304 2G 82 Linux swap / Solaris
Шаг: 3 Отформатируйте новое пространство подкачки
Синтаксис использования mkswap
показал здесь.
mkswap [options] device [size]
Мы входим mkswap
за которым следует имя файла устройства для раздела, который мы хотим отформатировать как раздел подкачки.
Например, если у вас был раздел /dev/sdb1
который вы хотели отформатировать как раздел подкачки, вы должны ввести mkswap
а затем имя файла устройства /dev/sdb1
.
~$ sudo mkswap /dev/sdb1
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
no label, UUID=a7045220-d490-4e1d-840f-17fca032f243
Шаг: 4 Активируйте пространство подкачки
Теперь, когда вы создали swap
раздел с mkswap
затем вам нужно активировать ее, и это делается с помощью swapon
команда.
Вы входите swapon
за которым следует имя файла устройства swap
раздел, который вы только что создали с помощью mkswap
, В этом случае мы вводим следующую команду.
~$ sudo swapon /dev/sdb1
Шаг: 5 Отобразите сводку об использовании подкачки
Если вы хотите просмотреть список всех областей подкачки, которые были определены и активированы в вашей системе, используйте swapon
команда с -s
параметр.
Тогда вы можете увидеть swap
области, которые в настоящее время используются в вашей системе.
~$ sudo swapon -s
Filename Type Size Used Priority
/dev/sdc1 partition 2097148 0 -1
/dev/sdb1 partition 2097148 0 -2
ИЛИ
~$ sudo swapon --show
NAME TYPE SIZE USED PRIO
/dev/sdc1 partition 2G 0B -1
/dev/sdb1 partition 2G 0B -2
В качестве альтернативы вы также можете ввести следующую команду, чтобы получить тот же результат.
~$ cat /proc/swaps
Filename Type Size Used Priority
/dev/sdc1 partition 2097148 0 -1
/dev/sdb1 partition 2097148 0 -2
В этом случае вы видите, что у меня два swap
разделы на двух разных устройствах хранения.
Вы также можете увидеть приоритет этих устройств здесь.
Тот, у кого приоритет -1
будет использоваться в первую очередь, и тот, у которого значение -2
будет использоваться как вторичный.
По сути, он может использоваться только в том случае, если по какой-то причине первый занят и не может быть использован.
Шаг: 6 Навсегда смонтируйте пространство подкачки
Чтобы смонтировать раздел подкачки навсегда, введите следующую строку в поле /etc/fstab
файл.
~$ sudo nano /etc/fstab
UUID=a7045220-d490-4e1d-840f-17fca032f243 swap swap defaults 0 0
Вы можете использовать blkid
чтобы получить UUID
номер любого диска.
~$ sudo blkid /dev/sdb1
/dev/sdb1: UUID="a7045220-d490-4e1d-840f-17fca032f243" TYPE="swap" PARTUUID="04ad2d84-01"
Предлагаемое чтение: Как монтировать и размонтировать файловые системы в Linux
Деактивировать пространство подкачки
Теперь, когда вы создали и включили swap
области по какой-то причине вам нужно отключить его, вы используете swapoff
команда.
Как вы можете видеть здесь swapoff
за которым следует имя файла устройства swap
раздел.
~$ sudo swapoff /dev/sdb1
Включить все пространство подкачки
Также имейте в виду, что если у вас несколько swap
разделы в вашей системе, и вы хотите активировать их все одновременно, а не просматривать по одному, тогда вы можете просто использовать swapon -a
команда.
~$ sudo swapon -a
И это просто пройдет через твою /etc/fstab
файл найти все swap
разделы, которые в нем содержатся, и немедленно их активируйте и введите в эксплуатацию.
Отключить все пространство подкачки
Вы можете сделать наоборот: по какой-то причине вам нужно отключить все разделы подкачки, что, честно говоря, я никогда не делал.
Вы можете использовать swapoff
команда с -a
и это снова пройдет /etc/fstab
файл и деактивируйте все ваши swap
перегородки.
~$ sudo swapoff -a
Отображение использования физической памяти и памяти подкачки в Linux
Чтобы отобразить объем свободной и используемой памяти в системе, выполните следующую команду.
~$ free -h
total used free shared buff/cache available
Mem: 1.9G 1.3G 74M 9.3M 568M 463M
Swap: 4.0G 19M 4.0G
Получите дополнительную информацию о пространстве подкачки
Заключение
Я надеюсь, что теперь вы хорошо понимаете, как создать раздел подкачки в Linux.
Если у кого-то есть какие-либо вопросы о том, что мы рассмотрели в этом руководстве, не стесняйтесь спрашивать в разделе комментариев ниже, и я постараюсь ответить на них.