Как сделать файл подкачки линукс

Добавил пользователь Дмитрий К.
Обновлено: 05.10.2024

SWAP - это пространство на диске, которое используется, когда объем физической оперативной памяти заполнен. Когда в системе Linux заканчивается RAM , неактивные страницы перемещаются из RAM в SWAP .

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

Описанное далее было протестировано на системах Linux с Ubuntu 18.04 и CentOS 7, но так же справделиво для любых других дистрибутивов Linux.

Выполни следующие действия, чтобы добавить 1GB подкачки на сервер. Если хочешь добавить 2GB вместо 1GB, замените 1G на 2G .

  1. Создай файл, который будет использоваться как swap
  1. Задай корректные права на swap -файл Только пользователь root должен иметь права писать в swap -файл. Выполни следующее:
  1. Создание области подкачки Используй утилиту mkswap для настройки файла в качестве области подкачки Linux:
  1. Включение SWAP Для активации раздела подкачки выолни следующую команду:

Для автоматического подключения раздела подкачки после перезагрузки сервера необходимо включить его автоматическое монтирование в файле /etc/fstab :

  1. Проверка статуса SWAP -файла Для проверки статуса раздела подкачки можно использовать следующие команды:

vm.swappiness - это свойство ядра Linux, которое определяет, как скоро система начнет использовать SWAP -раздел. vm.swappiness может принимать значения от 0 до 100. Низкое значение заставит ядро более активно утилизировать оперативную память, в то время как боее высокое значение заставит ядро гораздо чаще обращаться к SWAP -разделу.

По умолчанию значение vm.swappiness равно 60 - это значит, что сброс данных в SWAP будет происходить при заполнении оперативной памяти свыше 40%, что в свою очередь может повлиять на производительность системы в целом и сервисов которые ею предоставляются. Посмотреть текущее значение можно следующим способом:

Этого значения достаточно для большинства Linux-систем, но в production-среде вам может понадобиться понизить это значение. Делается это следующим образом. Прямо сейчас изменить значение на 10 без перезагрузки системы:

Чтобы значение не менялось после перезагрузки системы, необходимо в добавить этот параметр в файл /etc/sysctl.conf :

Если вам необходимо отключить раздел подкачки в Linux, то вам необходимо выполнить следующие шаги:

  1. Удалить точку автоматического монтирования в системе /swapfile swap swap defaults 0 0 из файла /etc/fstab
  2. Удалить собствено сам файлик:

Собственно всё =) Создание, политика изспользования и удаление файла SWAP делается довольно просто - думаю это видно из статьи.

В этом посте мы успешно зарегистрировали бесплатный VPS — сервер от Oracle , а в этом установили на него Ubuntu 20.04 (swap не включен) . Как известно, уровень Oracle Always Free включает в себя всего 1 Гбайт оперативной памяти , чего зачастую вполне достаточно для одновременной работы нескольких сервисов, например VPN-сервер , MQTT-брокер , Home Аssistant Supervised …, вполне можно установить и настроить Nginx с Let’s Encrypt SSL с помощью Docker и Docker Compose….

Но, при запуске сборки контейнеров, или скриптов установки пакетов и их настройки, ваша виртуальная машина может просто зависнуть из-за нехватки оперативной памяти. Связано это с тем, что в установленной нами Ubuntu 20.04 отсутствует активный файл подкачки ( swap ).

Убедимся в этом, для чего ведём в терминале:

Проверяем, что у нас достаточно места для добавления раздела swap :

Мнений о необходимом объёме раздела swap множество ))) Мы, в рамках этой статьи, будем придерживаться того, что этот объем должен быть равен или быть в два раза больше объема оперативной памяти вашей системы. Т.е. в нашем случае это будет объём 2 Гб. (Из практики известно, что иметь swap более 4 Гб зачастую бессмысленно).

Добавляем SWAP — файл подкачки Linux

Разместим файл нужного размера swapfile в директории root (/) с помощью программы fallocate :

$ sudo fallocate -l 2G /swapfile

Проверим, что сработало:

$ ls -lh /swapfile

Делаем файл подкачки доступным только для root:

$ sudo chmod 600 /swapfile

Проверим, что сработало:

$ ls -lh /swapfile

Говорим системе, что этот раздел у нас для файла подкачки:

$ sudo mkswap /swapfile

$ sudo swapon /swapfile

Проверим, что всё ok: $ sudo swapon —show

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

Сделаем резервную копию конфигурационного файла fstab:

$ sudo cp /etc/fstab /etc/fstab.bak

Добавим в него информацию о файле подкачки:

$ echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Вот в принципе и В С Ё . . . )))

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

Swappiness — это свойство ядра Linux, которое определяет, как часто система будет использовать пространство подкачки. Подкачка может иметь значение от 0 до 100.

Проверим текущее значение:

$ cat /proc/sys/vm/swappiness

60 — считается нормой для настольного ПК, но для сервера желательно это значение свести к минимуму, например — 10:

$ sudo sysctl vm.swappiness=10

Сохраним это значение и после перезапуска системы, для этого открываем файл /etc/sysctl.conf:

$ sudo nano /etc/sysctl.conf

Добавляем в конец эту строчку:

$ vm.swappiness = 10

Сохраняем и закрываем файл, нажав CTRL + X, Y , а затем ENTER .

Ну, а если по какой-то причине решите удалить файл подкачки, то нужно сделать следующее:

Раздел или файл подкачки в Linux (и не только) необходим для ситуаций, когда заканчивается оперативная память а программам еще есть куда расти. К сожалению, даже 8/16 Gb сейчас не является достаточным объемом памяти и какая-нибудь Java с Google Chrome в паре способны заполнить все свободное пространство.

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

Работа с информацией будет выполняться намного медленнее, чем в оперативной памяти (хотя, при использовании SSD можно иногда и не заметить этого), но операционная система будет продолжать работать и использовать swap только для старых данных. В целом, это может быть отличной защитой от переполнения оперативной памяти. Пространство подкачки можно настроить двумя способами, добавив раздел подкачки Linux на диске или создать файл подкачки.

Проверить разделы или файлы подкачки можно такой командой:

~$ sudo swapon --show

1

На данный момент, у меня в системе установлен один раздел и один файл подкачки.

2

Как можно увидеть, в данный момент в разделе подкачки занто 2 Гб из 15, ОЗУ, соответственно, 5,5 из 7,7.

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

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

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

installl partitions

Ничего сложного, просто дойдя до этого места, нужно установить размер хотя бы равным объему ОЗУ.

И все, можно забыть, что он есть и жить спокойно.

Файл подкачки

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

Для начала, нужно проверить наличие свободного места:

3

Как видно, на /dev/sda5 свободно 50Гб.

Добавлю себе 12ГБ подкачки при помощи команды:

~$ sudo fallocate -l 12G /swapfile

4

Видно, что появился файл подкачки на 12ГБ.

5

Вот он, в корневой директории.

Сначала, заблокировать доступ всем кроме рута:

~$ sudo chmod 600 /swapfile

Создать на нем файловую систему:

~$ sudo mkswap /swapfile

Теперь его нужно подключить.

~$ sudo swapon /swapfile

Проверить его работу:

~$ sudo swapon --show

Точно таким же образом можно добавить и раздел подкачки, только вместо /swapfile буде что-то вроде /dev/sda2

При помощи программы htop можно посмотреть сколько теперь памяти в системе.

61

Данная инструкция точно актуальна для дистрибутивов на базе Ubuntu 2016-2020 годов, возможно и для других тоже.

Данные настройки файла подкачки будут действительны до перезагрузки, поэтому, нужно добвить запись в fstab:

~$ echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Лучше это сделать командой вместо редактирования файла.

Но если решите редактировать, не забудьте сделать перенос после этой строки.

Как добавить пространство подкачки в Debian 10 Linux

Swap - это пространство на диске, которое используется, когда объем физической памяти заполнен. Когда в системе Linux заканчивается ОЗУ, неактивные страницы перемещаются из ОЗУ в область подкачки.

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

Прежде чем вы начнете

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


Если вывод пуст, это означает, что в системе нет места для подкачки.

В противном случае, если вы получите что-то вроде ниже, в вашей системе Debian уже включен свопинг.

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


Создание файла подкачки

В этом примере мы создадим и активируем 1G своп. Чтобы создать более крупный своп, замените 1G его размером желаемого пространства подкачки.

Следующие шаги показывают, как добавить пространство подкачки в Debian 10.

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

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

Используйте этот mkswap инструмент, чтобы настроить область подкачки Linux для файла:

Активируйте файл подкачки:

Чтобы сделать изменение постоянным, откройте /etc/fstab файл:

и вставьте следующую строку:

Убедитесь, что своп активен, используя команду swapon или, free как показано ниже:

Регулировка значения подкачки

Swappiness - это свойство ядра Linux, которое определяет, как часто система будет использовать пространство подкачки. Подкачка может иметь значение от 0 до 100. Низкое значение заставит ядро ​​по возможности избегать подкачки, в то время как более высокое значение заставит ядро ​​использовать пространство подкачки более агрессивно.

Значение подкачки по умолчанию - 60. Проверить текущее значение подкачки можно с помощью cat команды:

Хотя значение подкачки 60 подходит для большинства систем Linux, для производственных серверов следует установить более низкое значение.

Например, чтобы установить значение подкачки 10, введите:

Чтобы сделать этот параметр постоянным при перезагрузке, добавьте в /etc/sysctl.conf файл следующую строку :

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


Удаление файла подкачки

Чтобы деактивировать и удалить файл подкачки, выполните следующие действия:

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

Откройте /etc/fstab файл в текстовом редакторе и удалите запись файла подкачки /swapfile swap swap defaults 0 0 .

Наконец, удалите фактический файл подкачки с помощью rm команды:


Заключение

Вы узнали, как создать файл подкачки, а также активировать и настроить пространство подкачки на вашем компьютере с Debian 10.

Читайте также: