Swap для linux

Добавление файла подкачки в fstab

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

sudo gedit /etc/fstab

Строка, которую нам нужно добавить в конец файла:

/swapfile    none    swap    sw    0    0

Поля:

Файловая система: путь и имя файла подкачки.Точка монтирования: файл не монтируется как файловая система, поэтому запись имеет значение «none».Тип: это «своп».Параметры: во время загрузки из одного из сценариев загрузки будет вызываться swapon -a (запустить все устройства, помеченные как swap). Эта опция указывает Linux рассматривать эту запись как ресурс подкачки, который должен находиться под управлением этой команды swapon -a. Здесь часто встречается выражение «значения по умолчанию», потому что некоторые пользователи Linux ошибочно полагают, что это поле игнорируется. Как мы увидим, это не так. Так что есть смысл использовать правильный вариант.Дамп: можно установить на ноль. В данном случае это не имеет значения.Pass: можно установить на ноль. В данном случае это не имеет значения.

Сохраните изменения и закройте редактор.

Проверка на наличие файла подкачки в ОС Linux

Если swap есть на используемом устройстве, с ним можно проделывать множество различных действий. Однако прежде чем приступить к конкретной задаче, нужно хотя бы убедиться в наличии swap на конкретном ПК. А то вдруг окажется так, что swap и вовсе отсутствует.

Чтобы посмотреть swap в операционной системе Линукс, необходимо задать определенную команду. Она выглядит следующим образом:

Здесь:

  1. total — всего памяти.
  2. used — сколько используется в данный момент.
  3. free — свободная память, не используется.

К сожалению, данная команда показывает только общую информацию (total, used, free) и  не может дать четкого определения тому, что это файл подкачки или смонтированный раздел. Именно поэтому для дополнительноой проверки воспользуемся другой командой — «swapon».

Как видно из скриншота выше,  swap находится в разделе /dev/sda5, размером 2,8 gb и это не файл.

Давайте предположим следующий возможный вариант развития сценария: файл подкачки отсутствует на вашем компьютере. Как это выявить? Введите в терминале команду free -h, и ознакомьтесь с полученной информацией. Если в строке «Подкачка» стоят сплошные нули, то swap не создан в операционной системе Linux.

Варианты размещения SWAP

Вариантов несколько:

  • на разделе диска,
  • в файле,
  • или в оперативной памяти использую zRAM.

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

SWAP-раздел

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

Хочу заострить ваше внимание на установку систем Linux из готовых шаблонов которые предлагают хозяева ресурсов предоставляющих услуги VDS. Один из шаблонов при использовании 2 G памяти создал мне SWAP раздел размером 512 М

При таком размере он заполнился на стадии настройки системы. Устанавливайте OS Linux по возможности с минимального iso образа системы!

SWAP-файл

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

ZRAM и ZSWAP

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

ZRAM — это модуль ядра Linux, позволяющий сжимать содержимое оперативной памяти, и таким образом увеличивать ее объем в несколько раз. ZRAM создает сжатое блочное устройство в ОЗУ которое чаще всего используется как swap. При этом степень сжатия данных получается в среднем 3:1. Это означает что на 1 гигабайт подкачки будет использовано в 333 мегабайт физической памяти.

ZSWAP — тличается от ZRAM тем, что использует существующий swap-раздел на диске, а в ОЗУ создаётся пул со сжатыми данными (кэшем). После того как пул до отказа забьётся сжатыми данными, он сбросит их в раздел подкачки и снова начнёт принимать и сжимать данные.  По утверждению разработчиков, в их конфигурации при компиляции ядра в ситуации когда происходит своппинг, выигрыш по объему ввода/вывода составил 76%, а время выполнения операции сократилось на 53%. При использовании ZSWAP, используется раздел swap на диске, в ОЗУ хранится только сжатый кэш.

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

Раздел подкачки (англ. «swap partition») — это раздел жесткого диска, используемый исключительно для подкачки памяти; является типом памяти подкачки по умолчанию.

Добавление раздела подкачки

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

Примечание: Замените /dev/sda на путь к диску в вашей системе с разделом подкачки на нем.

Вы должны увидеть примерно следующее:

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

Как только ваш раздел пометится как swap, его необходимо будет подготовить с помощью команды (сокр. от «make swap«):

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

Вы можете убедиться, что данный раздел теперь задействован системой, выполнив команду . Чтобы автоматически смонтировать раздел подкачки во время загрузки системы, необходимо добавить соответствующую запись в файл /etc/fstab, содержащий список файловых систем и пространств подкачки:

Рассмотрим детально:

   — путь к разделу подкачки;

  — означает, что раздел будет смонтирован как раздел подкачки;

  — тип раздела;

  — означает использовать настройки по умолчанию;

   (последние два параметра) означает, что данные параметры не используются.

Чтобы без перезагрузки проверить, что ваш раздел подкачки монтируется автоматически, вы можете запустить команду (которая отключает все пространства подкачки), а затем (которая монтирует все пространства подкачки, перечисленные в файле /etc/fstab), а затем проверить статус вашего раздела подкачки с помощью .

Удаление раздела подкачки

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

Шаг №1 Отключаем раздел подкачки следующей командой:

Или можно отключить вообще все разделы подкачки, используя:

Шаг №2 Поскольку раздел подкачки управляется подсистемой инициализации systemd, то при следующем запуске системы он будет снова активирован. Чтобы навсегда отключить автоматическую активацию обнаруженного раздела подкачки, необходимо найти ответственный за подкачку swap-юнит:

Рассмотрим детально:

   UNIT (dev–sda5.swap) — это название swap-юнита, соответствующего разделу подкачки.

   LOAD (loaded) — означает, что наш swap-юнит успешно загружен.

   ACTIVE (inactive) — обобщенный статус юнита. Может принимать значения:

   active — юнит запущен;

   inactive — юнит остановлен.

   SUB (dead) — более низкоуровневый статус юнита. В зависимости от типа юнита, может принимать значения:

   running — выполняется;

   exited — успешно завершил выполнение;

   failed — ошибка при выполнении;

   dead — не запущен;

   mounted — смонтирован;

   plugged — подключен;

   и пр.

   DESCRIPTION (devsda5) — указывает на путь к swap-юниту (разделу подкачки).

Шаг №3 Отключаем дальнейшие запуски выбранного юнита с помощью команды :

Шаг №4 Перезагружаем систему.

Примечание: Если вы хотите немедленного (без перезагрузки) исполнения команды , то достаточно добавить к ней ключ , например:

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

Или с помощью графической утилиты управления дисками GParted:

Примечание Если в вашей системе отсутствует GParted, то вы можете установить её с помощью следующей команды:

Для полного удаления раздела подкачки через GParted, необходимо кликнуть по нему ПКМ и выбрать пункт :

Или же воспользоваться следующей командой в терминале:

Затем вам нужно будет нажать (сокр. от англ. «delete»), чтобы попасть в режим удаления раздела. После чего вас попросят указать номер удаляемого раздела (у меня это — sda5, поэтому я указал номер ). Далее нажмите (сокр. от англ. «write»), чтобы записать внесенные изменения в таблицу разделов диска и выйти из :

Также необходимо проверить, что у вас закомментированы (символом ) все упоминания раздела подкачки в файлах конфигурации /etc/fstab и /etc/initramfs-tools/conf.d/resume.

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

Готово! Раздел подкачки удален!

Swapping vs. Paging

Paging — это процесс, при котором Linux делит свою физическую оперативную память на куски фиксированного размера (4 КБ), называемые страницами (англ. pages»).

Swapping (или «подкачка памяти») — это процесс, при котором страница памяти копируется в специальное пространство на жестком диске, называемое пространством подкачки (англ. swap space»), освобождая занимаемый ею объем оперативной памяти. В Linux для этого существует специальная программа — менеджер памяти. Каждый раз, когда системе требуется больше памяти, чем ей физически доступно в данный момент, менеджер памяти ищет все редко используемые страницы памяти и вытесняет их на жесткий диск, предоставляя освободившуюся память другому приложению (процессу).

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

Рассмотрим основные различия между Swapping и Paging:

Swapping Paging
Процедура копирования памяти всего процесса. Метод выделения памяти.
Возникает тогда, когда память всего процесса переносится на диск. Возникает тогда, когда какая-то часть процесса переносится на диск.
Происходит временное вытеснение данных из основной памяти во вторичную. Непрерывный фрагмент памяти разбивается на несколько отдельных блоков фиксированного размера, называемых фреймами (frames) или страницами (pages).
Может выполняться без какого-либо управления памятью. Управляется менеджером памяти.
Выполняется над неактивными процессами. Выполняется только с участием активных процессов.

How to Add Swap Space on Debian 10 Linux

22 Апреля 2021
|

Debian

Это руководство проведет вас по шагам добавления файла подкачки в Debian 10 Buster.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    / etc / fstab

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

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

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

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

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

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

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

/etc/sysctl.conf

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

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

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

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

  2. Откройте файл в текстовом редакторе и удалите запись файла подкачки .

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

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

Как создать и подключить файл подкачки SWAP

Далее, в работе используется командная строка SSH.
Инструментарий: Far Manager или Putty.
Для примера приводятся команды из под . Если Вы работаете не под , перед командами задавайте префикс

Проверка наличия свопа в системе

Для начала, нужно убедиться, что своп ещё не подключен:

swapon -s

Если команда выдала пустой результат или что-то навроде:

Filename                Type        Size    Used    Priority

— значит, своп, скорее всего отсутствует.

Дополнительно проверим командой:

free -m

Проверка наличия свободного места на диске

Теперь, надо проверить, сколько свободного места есть на диске:

df -h

В результате, мы увидим что-то подобное:

:~# df -h
Файловая система Размер Использовано  Дост Использовано% Cмонтировано в
/dev/vda1           30G          20G  9,0G           66% /
udev                10M            0   10M            0% /dev
tmpfs              403M          41M  362M           11% /run
tmpfs             1006M         336K 1005M            1% /dev/shm
tmpfs              5,0M            0  5,0M            0% /run/lock
tmpfs             1006M            0 1006M            0% /sys/fs/cgroup
tmpfs             1006M         492K 1005M            1% /tmp

Как мы видим, доступно 9 гигабайт дискового пространства — вполне достаточно, чтобы создать своп-файл.

Какого размера создать swap

Исходите из принципа — сколько может понадобиться, столько и выделяйте. Как правило, можно начинать с размера объёма оперативной памяти, либо его удвоенного количества. Например, если у вас в системе 2 гигабайта оперативки, своп можно сделать размером 2-4 гигабайта, как правило, этого должно хватать. Но, Вы можете скорректировать его размер под себя.

Создание файла SWAP

Допустим, мы хотим создать swap-файл размером 4 гигабайта.
Далее, здесь существует 2 подхода, традиционный медленный и новый быстрый:

Быстрый способ
Используем :
fallocate -l 4G /swapfile

Результатом будет пустая строка, это нормально.
В отличие от , результат будет получен почти сразу, и я рекомендую именно его.

Традиционный, медленный способ
Или используем команду:
dd if=/dev/zero of=/swapfile bs=1G count=4

Синтаксис команды простой:

  • dd — команда предназначена для того, чтобы что-то куда-то копировать побайтово;
  • if=/dev/zero — указывает на источник, т.е. на то, откуда копируем, в данном случае из /dev/zero — это специальный файл в UNIX-подобных системах, представляющий собой источник нулевых байтов;
  • of=/swapfile — указывает путь назначения, куда копируем данные;
  • bs=1G — количество байт, которые будут записаны за раз. В нашем случае, 1 гигабайт. Обозначения: — гигабайт, — мегабайт, — килобайт, и так далее;
  • count=4 — сколько блоков размером с будет создано, в нашем случае 4.

Будьте очень внимательны с синтаксисом команды, потому что если, например, ошибиться с определением пути для (куда сохранять файл), можно повредить данные на диске.

Теперь, когда файл создан, проверим результат:

ls -lh /swapfile

В результате увидим:
Как видим, файл создался верно и с нужным объёмом.

Как подключить SWAP файл

Для начала, ограничим права доступа к вновь созданному файлу.

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

chmod 600 /swapfile

Проверим результат:

ls -lh /swapfile

В результате, мы должны увидеть подобное:
Права прописаны верно.

Теперь нужно сделать из файл подкачки:

mkswap /swapfile

В результате, увидим примерно следующее:

Теперь, файл готов в роли свопа. Подключим его к системе:

swapon /swapfile
swapon: /swapfile: swapon failed: Operation not permitted

Всё, теперь своп подключен и работает. Осталось проверить правильность работы самой первой командой:

swapon -s
Filename                Type        Size    Used    Priority
/swapfile               file        4193300  0       -1

Своп также будет виден в стандартных командах:

free -m
             total       used       free     shared    buffers     cached
Mem:          2010        1887       122          0          5         30
-/+ buffers/cache:         827       1183
Swap:         4095          0       4095

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

Добавление свопа в автозагрузку

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

echo "/swapfile    none    swap    sw    0    0" >> /etc/fstab

Теперь система знает, где и как при перезагрузке искать и подключать своп.
Проверить, подключен ли своп в автозагрузке, можно с помощью редактора:

nano /etc/fstab

Создание SWAP-файла

Создадим файл c именем swap размером 4 G в папке корне системы /:

$ sudo dd if=/dev/zero of=/swap.img bs=1024 count=4000000
4000000+0 записей получено
4000000+0 записей отправлено
4096000000 байт (4,1 GB, 3,8 GiB) скопирован, 45,6991 s, 89,6 MB/s

1
2
3
4

$sudo dd if=devzero of=swap.img bs=1024count=4000000

4000000+записейполучено

4000000+записейотправлено

4096000000байт(4,1GB,3,8GiB)скопирован,45,6991s,89,6MBs

Форматируем файл в формат свопа:

$ sudo mkswap /swap.img
mkswap: /swap.img: insecure permissions 0644, 0600 suggested.
Setting up swapspace version 1, size = 3,8 GiB (4095995904 bytes)
без метки, UUID=6a46beca-c117-4c53-8b05-3641fc85b7e1

1
2
3
4

$sudo mkswapswap.img

mkswapswap.imginsecure permissions0644,0600suggested.

Setting up swapspace version1,size=3,8GiB(4095995904bytes)

безметки,UUID=6a46beca-c117-4c53-8b05-3641fc85b7e1

Подключаем файл к системе:

$ sudo swapon /swap.img
swapon: /swap.img: insecure permissions 0644, 0600 suggested.

1
2

$sudo swaponswap.img

swaponswap.imginsecure permissions0644,0600suggested.

Проверяем результат работы:

$ sudo swapon -s
Имя файла Тип Размер Исп-но Приоритет
/swap.img file 3999996 0 -2

1
2
3

$sudo swapon-s

ИмяфайлаТипРазмерИсп-ноПриоритет

swap.img                               file3999996-2

Сделаем чтобы swap монтировался при загрузке. Для этого добавляем в fstab необходимый параметр:

$ nano /etc/fstab

# Подключим swap при загрузке
/swap.img swap swap defaults 0 0

1
2
3
4

$nanoetcfstab

 
# Подключим swap при загрузке

swap.img swap swap defaults

Сохраняем файл и перезагружаемся.

$ sudo reboot

1 $sudo reboot

Проверяем:

$ swapon -s
Имя файла Тип Размер Исп-но Приоритет
/swap.img file 3999996 0 -2

1
2
3

$swapon-s

ИмяфайлаТипРазмерИсп-ноПриоритет

swap.img                               file3999996-2

UNIX / Linux: 2 способа добавления пространства подкачки с использованием dd, mkswap и swapon

Вопрос: Я хотел бы добавить больше пространства подкачки в мою систему Linux. Можете ли вы объяснить наглядными примерами, как увеличить пространство подкачки?

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

Сколько пространства подкачки в настоящее время используется системой?

Свободная команда отображает пространство подкачки. free -k показывает вывод в КБ.

# free -k
             total       used       free     shared    buffers     cached
Mem:       3082356    2043700    1038656          0      50976    1646268
-/+ buffers/cache:     346456    2735900
Swap:      4192956          0    4192956

Команда swapon с параметром -s, отображает текущее пространство подкачки в КБ.

# swapon -s
Filename                        Type            Size    Used    Priority
/dev/sda2                       partition       4192956 0       -1

Swapon -s, такой же, как следующий.

# cat /proc/swaps
Filename                        Type            Size    Used    Priority
/dev/sda2                       partition       4192956 0       -1

Метод 1: Используйте раздел жесткого диска для дополнительного пространства подкачки

Если у вас есть дополнительный жесткий диск (или свободное место на существующем диске), создайте раздел с помощью команды fdisk. Давайте предположим, что этот раздел называется /dev/sdc1

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

# mkswap /dev/sdc1

Включите раздел подкачки для использования с помощью команды swapon, как показано ниже.

# swapon /dev/sdc1

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

# cat /etc/fstab
/dev/sdc1               swap                    swap    defaults        0 0

Убедитесь, что вновь созданная область подкачки доступна для вашего использования.

# swapon -s
Filename                        Type            Size    Used    Priority
/dev/sda2                       partition       4192956 0       -1
/dev/sdc1                       partition       1048568 0       -2

# free -k
             total       used       free     shared    buffers     cached
Mem:       3082356    3022364      59992          0      52056    2646472
-/+ buffers/cache:     323836    2758520
Swap:      5241524          0    5241524

Примечание. В выводе команды swapon -s в столбце «Тип» будет указано «раздел», если пространство подкачки создается из раздела диска.

Способ 2. Использование файла для дополнительного пространства подкачки

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

В следующем примере команды dd создается файл подкачки с именем «myswapfile» в каталоге /root размером 1024 МБ (1 ГБ).

# dd if=/dev/zero of=/root/myswapfile bs=1M count=1024
1024+0 records in
1024+0 records out

# ls -l /root/myswapfile
-rw-r--r--    1 root     root     1073741824 Aug 14 23:47 /root/myswapfile

Измените разрешение файла подкачки, чтобы только root мог получить к нему доступ.

# chmod 600 /root/myswapfile

Создайте этот файл как файл подкачки с помощью команды mkswap.

# mkswap /root/myswapfile
Setting up swapspace version 1, size = 1073737 kB

Включить вновь созданный файл подкачки.

# swapon /root/myswapfile

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

# cat /etc/fstab
/root/myswapfile               swap                    swap    defaults        0 0

Убедитесь, что вновь созданная область подкачки доступна для вашего использования.

# swapon -s
Filename                        Type            Size    Used    Priority
/dev/sda2                       partition       4192956 0       -1
/root/myswapfile                file            1048568 0       -2

# free -k
             total       used       free     shared    buffers     cached
Mem:       3082356    3022364      59992          0      52056    2646472
-/+ buffers/cache:     323836    2758520
Swap:      5241524          0    5241524

Примечание. В выводе команды swapon -s в столбце «Тип» будет указано «файл», если пространство подкачки создается из файла подкачки.

Если вы не хотите перезагружаться, чтобы проверить, занимает ли система все пространство подкачки, упомянутое в /etc/fstab, вы можете сделать следующее, что отключит и включит все разделы подкачки, указанные в /etc/fstab

# swapoff -a

# swapon -a

Золотое сечение

Страницы файлов содержат данные, которые можно легко извлечь, если освободить эту память. Linux может просто прочитать файл снова. Как мы уже видели, если данные файла были изменены в оперативной памяти, эти изменения должны быть записаны в файл, прежде чем страница файла может быть освобождена. Но, так или иначе, файловая страница в оперативной памяти может быть переполнена чтением данных из файла. Так зачем добавлять эти страницы в раздел подкачки или файл подкачки? Если вам снова понадобятся эти данные, вы можете также прочитать их обратно из исходного файла вместо избыточной копии в пространстве подкачки. Таким образом, страницы файла не хранятся в разделе подкачки. Они «хранятся» обратно в исходном файле.

С анонимными страницами нет никакого основного файла, связанного со значениями в памяти. Значения на этих страницах были получены динамически. Вы не можете просто прочитать их обратно из файла. Единственный способ восстановить анонимные значения памяти страницы — это сохранить данные где-нибудь до освобождения памяти. И это то, что держит своп. Анонимные страницы, на которые вы будете ссылаться снова.

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

Как видно из последнего фрагмента кода, есть две переменные. Один называется для «приоритет файла», а другой называется для «приоритет анонимный».

  • Переменная установлена ​​в значение подкачки Linux.
  • Значение установлено на 200 минус значение .

Эти переменные содержат значения, которые работают в тандеме. Если они оба установлены на 100, они равны. Для любых других значений уменьшится со 100 до 0, а увеличится со 100 до 200. Два значения в сложный алгоритм, который определяет, работает ли ядро ​​Linux с предпочтением восстановления (освобождения) файловых страниц или анонимным страницы.

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

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

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
DS-сервис
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: