- Как в Linux Mint и Ubuntu увеличить и раздел подкачки. Как в Linux создать файл подкачки Swap
- linux-notes.org
- Увеличить SWAP на Ubuntu/Debian/Mint
- Файл и раздел подкачки в Linux. Разница между swapping и paging
- Swapping vs. Paging
- Типы памяти подкачки
- Преимущества использования памяти подкачки
- Раздел подкачки
- Добавление раздела подкачки
- Удаление раздела подкачки
- Файл подкачки
- Добавление файла подкачки
- Удаление файла подкачки
- Насколько большим должно быть пространство подкачки?
- Настройка частоты использования пространства подкачки
- Заключение
Как в Linux Mint и Ubuntu увеличить и раздел подкачки. Как в Linux создать файл подкачки Swap
В этой статье на примере Linux Mint и Ubuntu мы научимся смотреть информацию по разделе подкачки, создавать файл подкачки, а также увеличивать доступное для подкачки место.
Файл подкачки — это определённое место на постоянном хранилище (например, на жёстком диске), куда на время сбрасываются данные, которые не умещаются в оперативную память. То есть это возможность увеличить количество оперативной памяти без покупки модулей ОЗУ. Правка, такая «виртуальная» оперативная память работает медленнее.
Посмотреть текущий размер раздела подкачки можно командой:
Либо командой free:
Либо с помощью top:
Как можно увидеть, в системе присутствует файл подкачки размером 2 Гигабайта, что, предположим, недостаточно.
Отключаем и удаляем этот файл подкачки следующими командами:
На диске должно быть достаточно места, чтобы туда поместился файл подкачки того размера, который вы задали.
Для создания файла подкачки размером 8G (измените значение по вашему желанию) выполните команду:
Затем выполните команды:
Откройте системный монитор, чтобы убедиться, что система видит файл подкачки:
Либо это можно сделать командой:
Вот и всё! Вам даже не нужно перезагружать систему, чтобы изменения вступили в силу.
Кстати, если вы вновь заходите изменить размер файла подкачки (в сторону увеличения или в сторону уменьшения — не важно), то в точности следуйте этой же инструкции ещё раз, но при создании файла подкачки укажите другой размер.
Как в Linux Mint и Ubuntu удалить файл подкачки
Для полного удаления файла подкачки выполните команды:
Затем откройте файл /etc/fstab:
И удалите из него строку:
Ошибка «fallocate: fallocate failed: Текстовый файл занят»
Если вы столкнулись с ошибкой:
Это означает, что вы хотите создать файл подкачки, но файл с таким именем уже существует и всё ещё используется.
Для его отключения и удаления выполните команды:
Управление файлами подкачки в других Linux
Для увеличения или создания файла подкачки в других дистрибутивах смотрите статьи:
- Как в Kali Linux создать или увеличить файл подкачки (Swap)
- Файл подкачки и раздел подкачки в Arch Linux: что выбрать и как добавить Swap
Источник
linux-notes.org
Увеличить SWAP на Ubuntu/Debian/Mint
Была проблема, у меня на Debian была создана подкачка (swap) в 1Гб, но как оказалось, мне этого мало и нужно увеличить хотя бы до 3-хГб. Данная тема «Увеличить SWAP на Ubuntu/Debian/Mint», как раз затронет этот вопрос.
Раздел подкачки является независимым разделом жесткого диска, используемого исключительно для подкачки. Swap представляет собой специальный файл в файловой системе, которая находится среди вашей системы и файлов данных.
1. Проверим сколько у нас выделено Swap-а:
Если не установлен, то установите или используйте аналог программы, под названием top. Чтобы установить используйте команду:
И смотрим сколько у нас выделено памяти:
используем утилиту htop для вывода swap
Собственно, у меня
1Гб, и как сказал ранее, я хочу его увеличить.
Так же, можно заюзать утилиту free и узнать какой swap используется:
Как видно по утилитам, данные совпадают.
Если знаете что на сервере имеется свап, но не помните какой размер, так же имеется утилита которая покажет эти данные:
Выбираем какой способ подойдет вам лучше и используем.
2. Создание раздела подкачки.
Проверяем где и сколько имеется свободного места, можно выполнить команду:
Расскажу несколько способов создать данный файл. Создадим папку в которую попозже мы примонтируем файл подкачки:
— СПОСОБ-1: Использовать утилиту dd.
В созданной папке будет храниться файл подкачки. Следующим действием, создаем файл:
увеличиваем раздел подкачки командой dd
Ждем определенное время, пока оно выполнится.
PS: Возможно прийдется создать сам файл:
Если запускаете от суперпользователя, то не нужно ничего создавать, утилита dd сделает все за вас.
— СПОСОБ-2: Использовать утилиту fallocate.
Данная утилита создаст файл мгновенно и тем самым экономит ваше время:
Мне больше по душе — 2-й способ с использованием утилиты fallocate.a
3. Создание swap-а
Для начала, выставляем нужные права на файл:
Делается это командой:
Создание образа swap командой mkswap
4. Добавление swap в fstab.
Это нужно сделать чтобы каждый раз при старте мой ОС, автоматически монтировался наш фал подкачки, который мы создали, для этого нужно выполнить команду:
И добавляем следующую строчку:
5. Активируем (включаем) нас swap.
Чтобы это сделать, стоит выполнить команду:
6. Проверка.
Необходимо убедится что у нас все нормально работает, сейчас мы это и проверим:
вывод количества swap
Собственно, видно что все работает нормально, но еще сейчас запустим утилиту htop и посмотрим что показывает она:
вывод количества swap с помощью программы htop
7. Взаимодействие SWAP с ОС. Проверика и настройка.
Есть несколько вариантов, которые вы можете настроить для более лучшей производительности вашей системы при работе со свопом.
Параметр swappiness определяет, как часто ваша система обменивается данными из оперативной памяти в подкачку. Этот параметр имеет диапазон от 0-100 и представляет собой процент.
При значениях, близких к нулю, ядро не обменяется данными на диск, если это абсолютно необходимо. Помните, что взаимодействие с файлом подкачки являются «дорогими» в том плане, что такие операции занимают гораздо больше времени, чем взаимодействие с оперативной памятью и тем самым могут привести к значительному снижению производительности.
Значения, которые находятся ближе к 100%, ядро будет пытаться поместить больше данных в своп и освободить RAM.
Чтобы проверить текущее значение swappiness, выполните:
Т.к я использую виртуальную машину для тестов — установка swappiness в 60 — дает не плохое значение, но для VPS желательно приблизить данный параметр в 0. И чтобы изменить swappiness используйте команду SYSCTL.
Например, чтобы установить swappiness в 10, выполним:
Этот параметр не сохранится до следующей перезагрузки и чтобы он применялся при каждом запуски ОС автоматически, нужно изменить (добавив строку в) файл /etc/sysctl.conf:
В самом низу файла, прописываем:
Сохраняем и закрываем файл.
Другой связанной с этим значением параметр которое вы можете захотеть изменить — vfs_cache_pressure, который настраивает, как много система будет выбирать кэш иноде и dentry по сравнению с другими данными.В основном, это доступ к данным о файловой системе и чтобы посмотреть текущее значение, выполните:
Параметр установлен в 100 и тем самым система удаляет информацию инодам из кэша очень быстро. Но если захотите уменьшить, выполните:
Это будет работать только до завершения вашей сессии и вы можем изменить его в файле ( как и ранее):
В самом низу происываем строку, которая определяет ваше новое значение:
Источник
Файл и раздел подкачки в Linux. Разница между swapping и paging
Обновл. 23 Июн 2021 |
Каждая операционная система имеет в своем распоряжении некоторый выделенный объем оперативной памяти, с помощью которого она производит обработку различных программ. Однако этот объем ограничен и не может вместить в себя слишком большое количество данных. В связи с этим у системы появляется потребность в дополнительном резерве памяти, к которому можно было бы обратиться всякий раз, когда исчерпывается оперативная память.
Данная концепция применима как к операционной системе Windows, так и к Linux-системам. В ОС Windows, если возникает ситуация, когда для хранения процесса не хватает оперативной памяти, то система занимает некоторый объем памяти (т.н. «виртуальной памяти») из вторичного хранилища. Аналогичным образом поступают и Linux-системы.
Таким образом, оперативная память всегда обладает достаточным объемом памяти для сохранения в ней любого вновь запускаемого процесса. Заимствованное пространство жесткого диска называется памятью подкачки (англ. «swap memory»). И в этой статье мы подробно рассмотрим механизм памяти подкачки, его свойства и работу с ним в Linux.
Swapping vs. Paging
Paging — это процесс, при котором Linux делит свою физическую оперативную память на куски фиксированного размера (4 КБ), называемые страницами (англ. «pages»).
Swapping (или «подкачка памяти») — это процесс, при котором страница памяти копируется в специальное пространство на жестком диске, называемое пространством подкачки (англ. «swap space»), освобождая занимаемый ею объем оперативной памяти. В Linux для этого существует специальная программа — менеджер памяти. Каждый раз, когда системе требуется больше памяти, чем ей физически доступно в данный момент, менеджер памяти ищет все редко используемые страницы памяти и вытесняет их на жесткий диск, предоставляя освободившуюся память другому приложению (процессу).
Часто случается так, что приложение в момент своего старта задействует существенное количество страниц памяти, которые в дальнейшем ему больше не потребуются. В таких случаях операционная система также может произвести вытеснение подобных страниц памяти на диск, освободив тем самым память для других приложений (или даже для дискового кэша).
Рассмотрим основные различия между Swapping и Paging:
Swapping | Paging |
Процедура копирования памяти всего процесса. | Метод выделения памяти. |
Возникает тогда, когда память всего процесса переносится на диск. | Возникает тогда, когда какая-то часть процесса переносится на диск. |
Происходит временное вытеснение данных из основной памяти во вторичную. | Непрерывный фрагмент памяти разбивается на несколько отдельных блоков фиксированного размера, называемых фреймами (frames) или страницами (pages). |
Может выполняться без какого-либо управления памятью. | Управляется менеджером памяти. |
Выполняется над неактивными процессами. | Выполняется только с участием активных процессов. |
Типы памяти подкачки
Как правило, существует два различных типа памяти подкачки:
Раздел подкачки (англ. «swap partition») — тип памяти подкачки по умолчанию. Представляет собой раздел жесткого диска, используемый исключительно для подкачки памяти; никакие другие файлы не могут находиться там.
Файл подкачки (англ. «swap file») — специальный файл, который находится среди остальных файлов вашей файловой системы.
Чтобы узнать, каким объемом памяти подкачки вы владеете, используйте следующую команду:
Каждая перечисленная строка на вышеприведенном скриншоте (у нас всего 1 строка) обозначает имеющиеся у нас пространства подкачки. Рассмотрим детально пункты вывода:
Filename — указывает на расположение пространства подкачки (мы видим, что наш раздел подкачки находится в /dev/sda5).
Type — указывает, что пространство подкачки является разделом (partition), а не файлом (file).
Size — размер пространства подкачки в килобайтах.
Used — указывает на использованное количество килобайт памяти подкачки.
Priority — определяет, какое пространство подкачки использовать в первую очередь.
Одна из замечательных особенностей подсистемы подкачки Linux заключается в том, что если вы смонтируете два (или более) пространства подкачки (на двух разных устройствах) с одинаковым приоритетом, то Linux будет чередовать активность подкачки между ними, что может значительно повысить производительность системы подкачки.
Примечание: Монтирование в Linux — это подключение диска в основную файловую систему.
Преимущества использования памяти подкачки
Изучая работу памяти подкачки, мы можем легко понять преимущества её использования, основные из которых перечислены ниже:
Память подкачки может легко удерживать те неактивные блоки оперативной памяти, которые задействовались всего один или два раза, после чего к ним больше не было никаких обращений. Освобожденная таким образом оперативная память может быть отдана в работу программам с более высоким приоритетом.
Память подкачки предотвращает нехватку места в оперативной памяти, позволяя запускать «тяжелые» приложения, требующие большого объема оперативной памяти.
Память подкачки действует как резервная копия для увеличения фактического пространства оперативной памяти.
В процессе гибернации всё содержимое оперативной памяти записывается на диск в память подкачки.
Повышает общую производительность вашей системы.
Раздел подкачки
Раздел подкачки (англ. «swap partition») — это раздел жесткого диска, используемый исключительно для подкачки памяти; является типом памяти подкачки по умолчанию.
Добавление раздела подкачки
Чтобы добавить дополнительный раздел подкачки в вашу систему, вам сначала нужно выполнить его подготовку. На первом шаге требуется убедиться, что раздел жесткого диска помечен как swap. На втором — создать файловую систему swap. Чтобы проверить, что раздел помечен как swap, запустите команду:
$ sudo fdisk -l /dev/sda
Примечание: Замените /dev/sda на путь к диску в вашей системе с разделом подкачки на нем.
Вы должны увидеть примерно следующее:
Если раздел не помечен как swap, то вам нужно изменить его, запустив команду fdisk с параметром t . Будьте осторожны при работе с разделами, т.к. информация раздела подкачки будет полностью удалена, поэтому дважды перепроверяйте каждое выполняемое вами изменение.
Как только ваш раздел пометится как swap, его необходимо будет подготовить с помощью команды mkswap (сокр. от «make swap«):
$ sudo mkswap /dev/sda5
Если при этом не было получено никаких ошибок, то ваш раздел подкачки готов к использованию. Для его активации введите команду:
$ sudo swapon /dev/sda5
Вы можете убедиться, что данный раздел теперь задействован системой, выполнив команду swapon -s . Чтобы автоматически смонтировать раздел подкачки во время загрузки системы, необходимо добавить соответствующую запись в файл /etc/fstab, содержащий список файловых систем и пространств подкачки:
/dev/sda5 swap swap defaults 0 0
/dev/sda5 — путь к разделу подкачки;
swap — означает, что раздел будет смонтирован как раздел подкачки;
swap — тип раздела;
defaults — означает использовать настройки по умолчанию;
0 (последние два параметра) означает, что данные параметры не используются.
Чтобы без перезагрузки проверить, что ваш раздел подкачки монтируется автоматически, вы можете запустить команду swapoff -a (которая отключает все пространства подкачки), а затем swapon -a (которая монтирует все пространства подкачки, перечисленные в файле /etc/fstab), а затем проверить статус вашего раздела подкачки с помощью swapon -s .
Удаление раздела подкачки
Чтобы удалить раздел подкачки, нужно выполнить следующие шаги:
Шаг №1: Отключаем раздел подкачки следующей командой:
$ sudo swappoff /dev/sda5
Или можно отключить вообще все разделы подкачки, используя:
$ sudo swappoff -a
Шаг №2: Поскольку раздел подкачки управляется подсистемой инициализации systemd, то при следующем запуске системы он будет снова активирован. Чтобы навсегда отключить автоматическую активацию обнаруженного раздела подкачки, необходимо найти ответственный за подкачку swap-юнит:
$ sudo systemctl —all —type swap
UNIT (dev–sda5.swap) — это название swap-юнита, соответствующего разделу подкачки.
LOAD (loaded) — означает, что наш swap-юнит успешно загружен.
ACTIVE (inactive) — обобщенный статус юнита. Может принимать значения:
active — юнит запущен;
inactive — юнит остановлен.
SUB (dead) — более низкоуровневый статус юнита. В зависимости от типа юнита, может принимать значения:
exited — успешно завершил выполнение;
failed — ошибка при выполнении;
dead — не запущен;
DESCRIPTION (/dev/sda5) — указывает на путь к swap-юниту (разделу подкачки).
Шаг №3: Отключаем дальнейшие запуски выбранного юнита с помощью команды mask :
$ sudo systemctl mask dev-sda5.swap
Шаг №4: Перезагружаем систему.
Примечание: Если вы хотите немедленного (без перезагрузки) исполнения команды mask , то достаточно добавить к ней ключ —now , например:
$ sudo systemctl mask dev-sda5.swap —now
Вышеописанные действия отключают использование раздела подкачки системой и не приводят к его физическому удалению. В этом можно убедиться, просмотрев список всех разделов системы с помощью следующей команды:
Или с помощью графической утилиты управления дисками GParted:
Примечание: Если в вашей системе отсутствует GParted, то вы можете установить её с помощью следующей команды:
sudo apt-get install gparted
Для полного удаления раздела подкачки через GParted, необходимо кликнуть по нему ПКМ и выбрать пункт «Удалить» :
Или же воспользоваться следующей командой в терминале:
$ sudo fdisk /dev/sda
Затем вам нужно будет нажать d (сокр. от англ. «delete»), чтобы попасть в режим удаления раздела. После чего вас попросят указать номер удаляемого раздела (у меня это — sda5, поэтому я указал номер 5 ). Далее нажмите w (сокр. от англ. «write»), чтобы записать внесенные изменения в таблицу разделов диска и выйти из fdisk :
Также необходимо проверить, что у вас закомментированы (символом # ) все упоминания раздела подкачки в файлах конфигурации /etc/fstab и /etc/initramfs-tools/conf.d/resume.
В завершении, чтобы в момент старта система знала, что такого раздела больше нет, нужно выполнить следующую команду:
$ sudo update-initramfs -u
Готово! Раздел подкачки удален!
Файл подкачки
Файл подкачки (англ. «swap file») — это специальный файл, который создается вручную, для подкачки в него неактивного содержимого ОЗУ, когда на жестком диске недостаточно места для создания полноценного раздела подкачки. Файл подкачки можно создавать и монтировать аналогично разделу подкачки. Преимущество файлов подкачки заключается в том, что вам не нужно искать пустой раздел или переделывать диск, чтобы добавить дополнительное пространство подкачки.
Добавление файла подкачки
Чтобы добавить в систему файл подкачки, нужно выполнить следующие шаги:
Шаг №1: Создаем файл, который будет использоваться в качестве файла подкачки:
$ sudo fallocate -l 1G /swapfile
Если утилита fallocate отсутствует или вы получили сообщение об ошибке типа failed: Operation not supported , то можете использовать следующую команду для создания файла подкачки:
$ sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576
Часть /swapfile — это имя файла подкачки, а count=1048576 — размер файла подкачки в килобайтах (1048576 КБ ≈ 1.05 ГБ).
Шаг №2: Только root-пользователь должен иметь возможность записывать и читать файл подкачки. Для этого необходимо задать правильный тип разрешений:
$ sudo chmod 600 /swapfile
Шаг №3: Нужно подготовить файл подкачки с помощью команды mkswap так же, как мы это делали в случае с разделом, но на этот раз используем имя файла подкачки:
$ sudo mkswap /swapfile
Шаг №4: И точно так же монтируем файл подкачки с помощью команды swapon :
$ sudo swapon /swapfile
Затем нужно добавить запись в файл /etc/fstab для файла подкачки:
/swapfile swap swap defaults 0 0
Шаг №5: Чтобы убедиться, что мы активировали файл подкачки, используем команду swapon :
$ sudo swapon —show
Или команду free :
$ sudo cat /proc/swaps
Удаление файла подкачки
Если по какой-либо причине вы хотите отключить и удалить файл подкачки, выполните следующие шаги:
Шаг №1: Отключаем подкачку памяти с помощью следующей команды:
$ sudo swapoff -v /swapfile
Шаг №2: Удаляем запись о файле подкачки из файла /etc/fstab:
/swapfile swap swap defaults 0 0
Шаг №3: Удаляем непосредственно сам файл подкачки с помощью команды rm :
$ sudo rm /swapfile
Насколько большим должно быть пространство подкачки?
Можно запустить Linux-систему и без пространства подкачки, система будет замечательно работать, если у вас достаточно большой объем оперативной памяти. Но если она у вас закончится, то в вашей системе может произойти критический сбой, поэтому все же желательно иметь пространство подкачки, тем более что дисковое пространство относительно дешево.
Ключевой вопрос: «Сколько нужно пространства подкачки?». Более старые версии операционных систем типа Unix требовали пространства подкачки в два-три раза больше физической памяти. Современные Linux-системы применяют эмпирическое правило, смысл которого заключается в следующем:
Для настольной системы используйте пространство подкачки в два раза больше размера оперативной памяти, так как это позволит вам запускать большое количество приложений (многие из которых могут быть простаивающими и легко заменяемыми).
Для сервера имейте меньший объем доступной подкачки (например, половину от физической памяти), чтобы у вас была некоторая гибкость для подкачки, когда это необходимо, но контролируйте объем используемого пространства подкачки и обновляйте свою оперативную память, в случае надобности.
Для старых настольных компьютеров (имеющих, например, только 128 МБ оперативной памяти) по возможности выделяйте от 1 ГБ пространства и больше.
Настройка частоты использования пространства подкачки
В ядро Linux 2.6 был добавлен новый параметр под названием swappiness, определяющий как часто система будет использовать пространство подкачки. Он может иметь значения от 0 до 100 . Маленькое значение заставит ядро стараться избегать операций подкачки, когда это возможно, в то время как более высокое значение заставит ядро использовать пространство подкачки «более агрессивно».
Значение по умолчанию для swappiness равно 60 . Вы можете временно изменить его (до следующей перезагрузки), введя команду:
$ sudo echo 50 > /proc/sys/vm/swappiness
Или, например, чтобы установить значение swappiness равным 10 через sysctl, нужно выполнить следующую команду:
$ sudo sysctl vm.swappiness=10
Если вы хотите перманентно изменить данное значение, то вам необходимо определить параметр vm.swappiness в файле /etc/sysctl.conf.
Оптимальное значение подкачки зависит от рабочей нагрузки вашей системы и того, как используется память. Регулируйте этот параметр небольшими шагами, чтобы найти оптимальное значение.
Заключение
В этой статье мы рассмотрели использование и работу памяти подкачки, а также её многочисленные преимущества. Память подкачки служит резервным вариантом для оперативной памяти, когда у последней не остается свободного места. Однако мы все знаем, что у нас не может быть бесконечного объема оперативной памяти, но у нас должно быть достаточное её количество, чтобы избежать сбоя наших приложений.
Кроме того, есть затраты, связанные с (физическим) добавлением большего объема оперативной памяти, в то время как нет затрат на использование памяти подкачки. Кроме того, не всегда представляется возможным добавить несколько планок оперативной памяти в ваш компьютер. Следовательно, единственный вариант, который у нас остается, — это использовать память подкачки, которая может заставить нашу систему работать эффективнее без каких-либо затрат.
Источник