The goal of this page is to offer advice and strategy on partitioning a Linux system.
- Overview
- Introduction
- Как переместить swap в файл в вашей файловой системе Linux
- Что такое swap(раздел подкачки, файл подкачки)?
- Зачем нужен swap(раздел подкачки)?
- Нужен ли вам swap, если у вас много оперативной памяти?
- Но можно ли вообще обойтись без раздела подкачки?
- Какой должен быть раздел подкачки?
- Installation on a small disk
- Why is my swap not being used?
- Swap may not be needed
- Is there a swap partition at all?
- Enabling a swap partition
- Should I reinstall with more swap?
- How do I add more swap?
- More Complex Schemes
- Размеры для альтернативных схем
- Как добавить или изменить раздел подкачки?
- Заставить раздел подкачки работать в режиме гибернации (необязательно)
- Отдельный/дом (по желанию)
- Сколько обменов мне нужно?
- Примеры сценариев
- Каков приоритет контейнеров подкачки?
- Что такое своп?
- Раздел для обмена данными с Windows, MacOS. (необязательно)
- Как добавить файл подкачки?
- Создать файл подкачки
- Включить использование файла подкачки
- Включить файл подкачки при загрузке
- Пример создания файла подкачки
- Отключение и удаление файла подкачки
- Корневой раздел (требуется всегда)
- Зачем мне своп?
- Пустой обмен
Overview
The easiest partitioning scheme, on a non-GPT disk, is simply a root partition and a swap partition.
If the disk is GPT type (this can be checked via the «sudo parted -l» command), you must also add a BIOS-Boot or an EFI partition depending on the boot mode of your BIOS.
On some computers, a separate /boot partition may also be required.
See paragraphs below.
Introduction
В этой статье, вы узнаете как создать файл подкачки(swap-файл), и использовать его вместо существующего раздела подкачки.
Файл подкачки позволяет операционной системе использовать пространство на жестком диске для имитации дополнительной памяти. Когда система работает на низком уровне памяти, она обменивает раздел ОЗУ, который простаивающая программа использует на жестком диске, чтобы освободить память для других программ.
Если вам не нужно отключать какой-либо существующий раздел подкачки, а вы только хотите создать файл подкачки и активировать его, просто пропустите шаги 1 и 2.
В моей операционной системе KDE NEON у меня был довольно большой раздел подкачки, и однажды я захотел изменить его, и переместить своп в файл. В Ubuntu 18.04 уже используется файл подкачки по умолчанию вместо раздела подкачки, однако я использую KDE NEON которая основана на Ubuntu 16.04, и поэтому по-умолчанию здесь используется раздел подкачки.
В результате приведенные ниже инструкции были протестированы на моем рабочем столе KDE NEON. Однако они должны работать на любом дистрибутиве Linux.
Важно отметить, что вы не можете использовать файл подкачки с файловой системой BTRFS.
Кроме того, спящий режим (на диск) больше не будет работать из коробки при использовании файла подкачки. Возможно это как-то можно сделать, но я не использую спящий режим в своей системе, а вместо этого пользуюсь ждущим режимом. Более того, большинство дистрибутивов Linux в любом случае используют ждущий режим (из RAM) вместо спящего режима (с диска) по умолчанию.
Как переместить swap в файл в вашей файловой системе Linux
1. Отключите свой текущий раздел подкачки.
Чтобы увидеть активный раздел подкачки, запустите:
Вывод команды выглядит так в моем случае:
Теперь вы можете отключить текущее сменное устройство, используя следующую команду:
sudo swapoff /dev/sdXX
Где /dev/sdXX — означает устройство на котором находится раздел подкачки (например у меня это — /dev/sda1 ), поэтому обязательно замените его на ваш раздел подкачки.
2. Удалите свою старую запись подкачки из файла /etc/fstab.
Чтобы удалить старую запись подкачки, откройте /etc/fstab файл с правами пользователя с помощью текстового редактора и удалите строку подкачки. Не изменяйте ничего в /etc/fstab файле! Изменение чего-либо еще в этом файле может помешать загрузке вашей системы!
Вы можете открыть файл с помощью редактора Nano из командной строки, например:
sudo nano /etc/fstab
И удалите запись, содержащую вашу информацию раздела свопинга (вы также можете просто закомментировать строку, добавив знак # перед ней). Например, в моем случае запись подкачки выглядит так:
Как вы можете видеть, запись в swap должна содержать swapи sw-
Затем нажмите Ctrl+O Enter чтобы сохранить файл. А чтобы выйти из редактора, нажмите Ctrl+X.
3. Создайте файл подкачки.
Для создания файла подкачки 1 ГБ используйте эту команду:
sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576
Если вы используете другое имя и путь к файлу подкачки, обязательно используйте его во всех инструкциях ниже.
4. Установите права файла подкачки — 600.
Используйте это, чтобы другие пользователи не могли прочитать ваш файл подкачки, который может содержать конфиденциальную информацию.
Чтобы установить разрешение файла подкачки на 600, используйте следующую команду:
sudo chmod 600 /swapfile
5. Отформатируйте вновь созданный файл как swap:
sudo mkswap /swapfile
6. Включите вновь созданный файл подкачки:
sudo swapon /swapfile
Чтобы проверить, используется ли новый файл подкачки, запустите:
Он должен выводить что-то вроде этого:
7. Добавьте вновь созданный файл подкачки в /etc/fstab.
Чтобы использовать новый файл подкачки каждый раз при загрузке, вам нужно добавить его в /etc/fstab файл. Откройте /etc/fstab с помощью текстового редактора (как root) Nano:
И в этом файле добавьте следующую строку:
/swapfile none swap sw 0 0
Чтобы сохранить файл (если вы использовали редактор Nano), нажмите Ctrl+O Enter, и нажмите Ctrl+X чтобы выйти. Опять же, ничего не изменяйте в /etc/fstab файле! Изменение чего-либо в этом файле может помешать загрузке вашей системы!
После всего проделанного запустите команду
Вот и все, теперь вы полностью перешли на файл подкачки.
Как использовать swap-файл вместо swap-раздела в Linux
Какой должен быть раздел подкачки(swap)? Должен ли swap быть в два раза больше размера ОЗУ или наоборот половины размера ОЗУ? Нужно ли вообще его создавать, если в моей системе есть несколько ГБ ОЗУ?
Это наиболее часто задаваемые вопросы о выборе размера подкачки при установке Linux.
Здесь нет ничего нового. Всегда было много путаницы вокруг размера подкачки.
В течение долгого времени считалось, что рекомендуемый размер swap должен быть вдвое меньше размера RAM, но это золотое правило больше не применимо к современным компьютерам. У нас есть системы с объемом оперативной памяти до 128 ГБ, у большинства старых компьютеров, даже нету такого жесткого диска.
Но какой размер подкачки вы выделите системе с 32 ГБ ОЗУ? 64GB? Это была бы смехотворная трата жесткого диска, не так ли?
Прежде чем мы увидим, какой должен быть размер подкачки, давайте сначала узнаем что же это такое. Эта информация поможет вам понять, почему используется swap.
Что такое swap(раздел подкачки, файл подкачки)?
При запуске приложения ваша система использует память произвольного доступа (RAM). Если работает мало приложений, ваша система справляется с доступной оперативной памятью.
Но если запущено слишком много приложений, или если приложениям требуется много оперативной памяти, ваша система попадает в беду, и начинает виснуть. И если для приложения требуется больше памяти, но вся оперативная память уже используется, приложение будет аварийно завершено.
Swap действует как передышка для вашей системы, когда оперативная память исчерпана. И когда это происходит, ваша система Linux использует часть памяти на жестком диске и выделяет ее в текущее приложение.
Это звучит здорово. Это означает, что если вы выделите 50% размера swap, ваша система сможет одновременно запускать сотни, или возможно, тысячи приложений? Но это не совсем так.
Понимаете, здесь важна скорость. Данные доступа к ОЗУ исчисляются в наносекундах. И например, если сравнивать, то в SSD(твердотельный накопитель) — доступ в микросекундах, а если это обычный жесткий диск — данные измеряются в миллисекундах. Это означает, что оперативная память в 1000 раз быстрее, чем SSD, и в 100 000 раз быстрее, чем обычный жесткий диск.
Если приложение слишком сильно полагается на раздел подкачки, его производительность ухудшится, поскольку оно не сможет получить доступ к данным с той же скоростью, что и в ОЗУ. Поэтому вместо того, чтобы выполнить задачу за 1 секунду, для выполнения одной задачи может потребоваться несколько минут. Это сделает приложение практически бесполезным.
Другими словами, небольшой обмен полезен, а уже много будет бесполезно.
Зачем нужен swap(раздел подкачки)?
Если в вашей системе, установлена оперативная память менее 1 ГБ, вы просто обязаны использовать swap, поскольку большинство приложений очень быстро заберут себе эту память.
Если ваша система использует ресурсо-затратные приложения, такие как видеоредакторы, было бы неплохо использовать немного подкачки, так как ваша оперативная память очень быстро израсходуется.
Если вы используете спящий режим, то вы должны использовать больше swap, потому что содержимое ОЗУ будет перемещено в раздел подкачки. Это также означает, что размер подкачки должен быть, по крайней мере, равен размеру ОЗУ.
Нужен ли вам swap, если у вас много оперативной памяти?
Это действительно хороший вопрос. Если у вас 32 ГБ или 64 ГБ ОЗУ, скорее всего, ваша система, возможно, никогда не будет использовать всю оперативную память и, следовательно, никогда не будет использовать раздел подкачки.
Но я все же думаю что она нужна. Я предполагаю, что если ваша система имеет 32 ГБ оперативной памяти, она также должна иметь жесткий диск объемом где-то 100 ГБ. Выделение пары гигабайт для раздела подкачки не повредит. Это обеспечит дополнительный уровень стабильности, если неисправная программа начнет злоупотреблять ОЗУ, и если вы захотите перевести компьютер в режим сна.
Но можно ли вообще обойтись без раздела подкачки?
Да, вы можете, особенно если в вашей системе установлено много оперативной памяти. Но, как объяснялось в предыдущем разделе, немного swap всегда рекомендуется.
Какой должен быть раздел подкачки?
Теперь возникает большой вопрос. Какой должен быть идеальный раздел подкачки?
И проблема здесь в том, что нет определенного ответа на этот вопрос об изменении раздела подкачки. Есть только общие рекомендации.
У разных людей свое мнение относительно идеального размера swap. Даже основные дистрибутивы Linux не имеют одинакового руководства по размеру swap.
Если вы прочитаете предложение Red Hat, то они рекомендуют что размер подкачки должен составлять 20% оперативной памяти для современных систем (то есть для 4 ГБ или выше ОЗУ).
В CentOS например, предлагают в два раза больше раздел подкачки чем ОЗУ, если ОЗУ меньше 2 ГБ
Ubuntu имеет совершенно другую перспективу по размеру swap, поскольку они учитывают спящий режим. И если вам нужен спящий режим, то в Ubuntu рекомендуют чтобы swap был равен ОЗУ.
Но если вам не нужен спящий режим,и если оперативной памяти больше 1 ГБ, размер подкачки должен быть как минимум равным квадратному корню от объема ОЗУ и не более чем в два раза больше ОЗУ
Каким же на самом деле должен быть раздел подкачки? Ответ никогда не бывает простым. Как было сказано ранее, в течение долгого времени, было рекомендовано создавать раздел подкачки который вдвое больше объема оперативной памяти.
Какой размер подкачки вы используете в своей системе? Напишите пожалуйста в комментариях ниже.
Какой должен быть раздел подкачки, и нужен ли он вообще?
Installation on a small disk
(This section is out-of-date & may need research for sizes) During a normal install, the installer copies the packages from the CD to the hard drive (in addition to actually installing them). If you are short on disk space before you install, you can tell the installer not to use extra disk space. The packages take up about xxx Mb. You will be able to install a full Ubuntu system with less than xx GB of hard drive space.
At the installation prompt (just after you boot from CD) type:
Why is my swap not being used?
My swap is not being used! When I issue the free command, it shows something like this:
Note: This regards mainly swap on hard disk partitions, but it could help anyway. In these examples /dev/hda8 is considered as swap.
Swap may not be needed
Start many memory consuming applications (e.g. Gimp, web browsers, LibreOffice etc) and then issue the free command again. Is swap being used now?
Ubuntu Desktop uses Swap to Hibernate (PC off, no power needed, program states saved). If Hibernation is important to you, have more swap space than ram + swap overflow.
Is there a swap partition at all?
Use this command to see all partitions
sudo parted —list
You should be able to see something like this in the output
5 236GB 256GB 20.0GB linux-swap(v1)
If not, you either need to create a swapfile or create a swap partition. To create a swap partition you can
Enabling a swap partition
In case you do have a swap partition, there are several ways of enabling it.
Should I reinstall with more swap?
Definitely not. With the 2.6 kernel, «a swap file is just as fast as a swap partition.» (Wikipedia:Paging, LKML).
How do I add more swap?
The advantages of a swap file are many, but it is problematic for using the default swsusp hibernation method for powerless sleep. The best solution for maintaining hibernate capability after adding RAM is to increase the size of the swap partition.
More Complex Schemes
It can be argued, and reasonably so, that moving this directory to its own partition is a wise choice. If any of your partitions or drives should fail, then this directory / partition will be the one that most likely contains the tools you will need to repair it. So while moving this would decrease performance marginally, it could also be considered a wise move.
Размеры для альтернативных схем
При установке Ubuntu 10.04.3 LTS шестимесячной давности использование диска может выглядеть примерно так: (примеры взяты из моей собственной системы с множеством установленных дополнительных пакетов)
Приведенные выше рекомендации предполагают, что вы используете большие современные жесткие диски и можете позволить себе место.
Как добавить или изменить раздел подкачки?
(Если ваш своп находится на вашем основном жестком диске, вам здесь ничего делать не нужно.) Теперь вам нужно найти, на каком разделе находится ваш своп и каков его UUID. UID?! ты говоришь? Что ж, это универсальный уникальный идентификатор раздела, поэтому вы можете ссылаться на него, даже если он находится в другой точке монтирования из-за добавления дисков и т. д.
Заставить раздел подкачки работать в режиме гибернации (необязательно)
«ИНФОРМАЦИЯ: это не будет работать в версии 12.04, выход из режима гибернации в версии 12.04 будет работать иначе».
Имя файла Тип Размер Используемый приоритет
/dev/sda2 раздел 2676732 73380 -1
Теперь вы сможете уйти в спящий режим и возобновить работу!
Отдельный/дом (по желанию)
Параметр подкачки управляет тенденцией ядра перемещать процессы из физической памяти на диск подкачки. Поскольку диски намного медленнее, чем оперативная память, это может привести к увеличению времени отклика системы и приложений, если процессы слишком агрессивно перемещаются из памяти.
По умолчанию в Ubuntu swappiness=60. Уменьшение значения swappiness по умолчанию, вероятно, улучшит общую производительность для типичной установки Ubuntu на рабочем столе. Рекомендуется значение swappiness=10, но вы можете экспериментировать. Примечание. Серверные установки Ubuntu имеют другие требования к производительности по сравнению с настольными системами, и значение по умолчанию 60, вероятно, более подходит.
Проверить значение swappiness
Чтобы изменить значение подкачки Временное изменение (потерянное при перезагрузке) со значением подкачки 10 можно сделать с помощью
sudo sysctl vm.swappiness=10
Чтобы сделать изменение постоянным, отредактируйте файл конфигурации в своем любимом редакторе:
gksudo gedit /etc/sysctl.conf
Найдите vm.swappiness и измените его значение по желанию. Если vm.swappiness не существует, добавьте его в конец файла следующим образом:
Сохраните файл и перезагрузитесь.
Сколько обменов мне нужно?
Для менее 1 ГБ физической памяти (ОЗУ) настоятельно рекомендуется, чтобы пространство подкачки, как минимум, было равно объему ОЗУ. Кроме того, рекомендуется, чтобы пространство подкачки максимально вдвое превышало объем оперативной памяти в зависимости от объема доступного для системы места на жестком диске из-за убывающей отдачи.
Примеры сценариев
(последние 3 столбца обозначают пространство подкачки)
ОЗУ Без гибернации С гибернацией Максимум
256 МБ 256 МБ 512 МБ 512 МБ
512 МБ 512 МБ 1024 МБ 1024 МБ
1024 МБ 1024 МБ 2048 МБ 2048 МБ
ОЗУ Без гибернации С гибернацией Максимум
1 ГБ 1 ГБ 2 ГБ 2 ГБ
2 ГБ 1 ГБ 3 ГБ 4 ГБ
3 ГБ 2 ГБ 5 ГБ 6 ГБ
4 ГБ 2 ГБ 6 ГБ 8 ГБ
5 ГБ 2 ГБ 7 ГБ 10 ГБ
6 ГБ 2 ГБ 8 ГБ 12 ГБ
8 ГБ 3 ГБ 11 ГБ 16 ГБ
12 ГБ 3 ГБ 15 ГБ 24 ГБ
16 ГБ 4 ГБ 20 ГБ 32 ГБ
24 ГБ 5 ГБ 29 ГБ 48 ГБ
32 ГБ 6 ГБ 38 ГБ 64 ГБ
64 ГБ 8 ГБ 72 ГБ 128 ГБ
128 ГБ 11 ГБ 139 ГБ 256 ГБ
256 ГБ 16 ГБ 272 ГБ 512 ГБ
512 ГБ 23 ГБ 535 ГБ 1 ТБ
1 ТБ 32 ГБ 1056 ГБ 2 ТБ
2 ТБ 46 ГБ 2094 ГБ 4 ТБ
4 ТБ 64 ГБ 4160 ГБ 8 ТБ
8 ТБ 91 ГБ 8283 ГБ 16 ТБ
Каков приоритет контейнеров подкачки?
Ядро Linux назначает приоритеты всем контейнерам подкачки. Чтобы увидеть приоритеты, которые ядро Linux назначает всем контейнерам подкачки, используйте эту команду.
Что такое своп?
Пространство подкачки — это область на жестком диске. Это часть виртуальной памяти вашей машины, которая представляет собой комбинацию доступной физической памяти (ОЗУ) и пространства подкачки. Swap содержит временно неактивные страницы памяти. Пространство подкачки используется, когда ваша операционная система решает, что ей нужна физическая память для активных процессов, а объем доступной (неиспользуемой) физической памяти недостаточен. Когда это происходит, неактивные страницы из физической памяти затем перемещаются в пространство подкачки, освобождая эту физическую память для других целей. Обратите внимание, что время доступа для подкачки медленнее, в зависимости от скорости жесткого диска. Не считайте это полной заменой физической памяти. Пространство подкачки может быть выделенным разделом подкачки (рекомендуется), файлом подкачки или комбинацией разделов подкачки и файла(ов) подкачки.
Раздел для обмена данными с Windows, MacOS. (необязательно)
Если вы хотите установить Ubuntu на GPT-диск (вы можете проверить это с помощью команды «sudo parted -l»), вам понадобится либо раздел EFI (если ваш BIOS настроен в режиме EFI), либо Раздел BIOS-Boot (если ваш BIOS настроен в режиме Legacy).
Как добавить файл подкачки?
Примечание: в настоящее время btrfs не поддерживает файлы подкачки. См. man swapon. и часто задаваемые вопросы по btrfs
Создать файл подкачки
Мы создадим файл размером 1 ГиБ (/mnt/1GiB.swap) для использования в качестве подкачки:
sudo dd if=/dev/zero of=/mnt/1GiB.swap bs=1024 count=1048576
sudo chmod 600 /mnt/1GiB.swap
Отформатировать файл как подкачку:
sudo mkswap /mnt/1GiB.swap
Включить использование файла подкачки
sudo swapon /mnt/1GiB.swap
Дополнительный своп теперь доступен и проверен с помощью: cat /proc/swaps
Включить файл подкачки при загрузке
Добавьте сведения о файле подкачки в /etc/fstab, чтобы он был доступен при загрузке:
Пример создания файла подкачки
Это пример создания и использования файла подкачки на компьютере без раздела подкачки.
Отключение и удаление файла подкачки
Отключите файл подкачки из работающей системы и удалите его:
sudo swapoff /mnt/1Gib.swap
sudo rm /mnt/1Gib.swap
Удалить данные файла подкачки из fstab:
gksudo gedit /etc/fstab
Удаление строки файла подкачки
/mnt/1GiB.swap своп по умолчанию 0 0
Корневой раздел (требуется всегда)
Заявлено, что требуемое дисковое пространство для готовой установки Ubuntu составляет 15 ГБ. Однако при этом не учитывается пространство, необходимое для файловой системы или раздела подкачки.
Более реалистично выделить себе чуть больше 15 Гб места. Выделите себе 15-25 ГБ, чтобы оставалось место для реальных дел. Если ваша файловая система заполнена до краев, вы почувствуете некоторую потерю производительности.
Определенный процент файловой системы ext3 выделен под root, чтобы предотвратить заполнение диска мошенническим процессом до такой степени, что система становится непригодной для использования. Эта выделенная часть по умолчанию составляет 5%. Кроме того, стратегии защиты от фрагментации, используемые файловыми системами Linux, требуют, чтобы диск не был почти заполнен. Эмпирическое правило состоит в том, чтобы держать их заполненными менее чем на 90%.
Зачем мне своп?
Программы, потребляющие память Иногда большая программа (такая как LibreOffice, Neverwinter Nights или видеоредактор) требует дополнительной памяти для всей системы. Значительное количество страниц, используемых этими большими программами во время их запуска, может использоваться только для инициализации и больше никогда не использоваться. Система может заменить эти страницы и освободить память для других программ или даже для дискового кеша. В этих случаях будет использоваться своп, чтобы помочь системе справиться с любой дополнительной нагрузкой.
Функция гибернации (suspend-to-disk) записывает содержимое ОЗУ в раздел подкачки перед выключением машины. Следовательно, ваш раздел подкачки должен быть не меньше размера вашей оперативной памяти. Хотя последние версии Ubuntu не поддерживают спящий режим OOTB, вы можете настроить свою систему так, чтобы разрешить гибернацию. В обоих вариантах (PM-UTILS или SYSTEMD) вы можете использовать раздел или файл.
Непредвиденные события могут произойти и произойдут (программа сходит с ума, какое-то действие требует гораздо больше места, чем вы думали, или любая другая непредсказуемая комбинация событий). В этих случаях своп может дать вам дополнительную задержку, чтобы выяснить, что произошло, или закончить то, над чем вы работаете.
Оптимизация использования памяти Поскольку механические жесткие диски значительно медленнее, чем оперативная память (SSD — твердотельный накопитель — хранилище не такое медленное, как физические диски, но все же медленнее, чем оперативная память), когда вам нужен файл (будь то файл данных например, видео, исполняемые файлы, такие как Firefox, или библиотеки), ядро Linux считывает файл в ОЗУ и хранит его там, так что в следующий раз, когда он вам понадобится, он уже находится в ОЗУ, и доступ к данным происходит намного быстрее. Части оперативной памяти, которые ускоряют чтение с диска, называются «кэшированной памятью». Вы заметите, что они имеют огромное значение с точки зрения отзывчивости. Ядро Linux автоматически перемещает ОЗУ, зарезервированное программами, но на самом деле не используемое, в раздел подкачки, чтобы он мог лучше служить цели расширения кэшированной памяти.
Оптимизация производительности подкачки Поскольку пространство подкачки использует дисковое устройство, это может привести к значительным проблемам с производительностью в любой системе, использующей пространство подкачки, поскольку сама система также может использовать то же дисковое устройство в то же время, когда оно требуется для подкачки. операции. Один из способов уменьшить эту проблему — выделить пространство подкачки на другом физическом диске, чтобы уменьшить или устранить конкуренцию за этот ресурс.
Пустой обмен
Даже если у вас много оперативной памяти и даже если у вас низкое значение подкачки, вполне возможно, что ваш компьютер подкачивает. Это может повредить производительности многозадачности вашей настольной системы.