Как создать раздел подкачки в Linux

В этом уроке мы поговорим о разделе подкачки.

Если вы хотите создать стандартную файловую систему Linux для хранения данных в виде файлов и каталогов, используйте mkfs команда для создания файловой системы на данном разделе.

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

В этом случае вам необходимо отформатировать раздел как swap раздел, и это делается с помощью mkswap команда в приглашении оболочки.

Что такое своп-память в Linux

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

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

Например, предположим, что у нас есть эта система Linux, и это зеленое поле представляет общий объем оперативной памяти, установленной в системе.

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

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

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

У нас есть только крошечный кусочек наверху, который все еще можно использовать для программ.

Предположим, мне нужно запустить другую программу, и это довольно большая программа, которая потребляет столько памяти.

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

Эта программа потребляет много памяти, и, как вы можете видеть на диаграмме, у нас не так много свободной памяти.

Свободная память для новой программы
Свободная память для новой программы

Как работает своп-память?

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

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

В этом случае им фактически не нужно использовать нашу физическую оперативную память.

Итак, что мы делаем, так это берем эти процессы, перемещаем их из физической ОЗУ и помещаем на жесткий диск.

Допустим, мы переезжаем process-1 из физической памяти на жесткий диск.

Перенос процесса-1 из физической памяти на жесткий диск.
Перенос процесса-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.

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

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован.