- Saved searches
- Use saved searches to filter your results more quickly
- huny-huny/CheatSheet-Add-Delete-Swap-Space-on-Ubuntu
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- README.md
- About
- How to delete a second swap partition safely?
- 3 Answers 3
- SWAP в Linux: Создание, редактирование и удаление раздела или файла
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Как создать (удалить) файл подкачки (SWAP) в Linux (На примере Ubuntu 20.04 на бесплатном VPS — сервере от Oracle)
huny-huny/CheatSheet-Add-Delete-Swap-Space-on-Ubuntu
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Как создать (удалить) файл подкачки (SWAP) в Linux (На примере Ubuntu 20.04 на бесплатном VPS — сервере от Oracle)
Ниже представлена моя «Шпаргалка» (CheatSheet) 😉
Как известно, уровень Oracle Always Free включает в себя всего 1 Гбайт оперативной памяти, чего зачастую вполне достаточно для одновременной работы нескольких сервисов. Но при запуске сборки контейнеров, или скриптов установки пакетов и их настройки, ваша виртуальная машина может просто зависнуть из-за нехватки оперативной памяти. Связано это с тем, что в установленной нами Ubuntu 20.04 отсутствует активный файл подкачки (swap).
Убедимся в этом, для чего ведём в терминале:
Проверяем, что у нас достаточно места для добавления раздела swap:
Мнений о необходимом объёме раздела swap множество ))) Мы будем придерживаться того, что этот объем должен быть равен или быть в два раза больше объема оперативной памяти вашей системы. Т.е. в нашем случае это будет объём 2 Гб. (Из практики известно, что иметь swap более 4 Гб зачастую бессмысленно).
Разместим файл нужного размера swapfile в директории root (/) с помощью программы fallocate:
sudo fallocate -l 2G /swapfile
Делаем файл подкачки доступным только для root:
Говорим системе, что этот раздел у нас для файла подкачки:
Следующие две команды позволят использовать файл подкачки не только для текущего сеанса, но и после перезагрузки системы.
Сделаем резервную копию конфигурационного файла 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.
Проверим текущее значение:
60 — считается нормой для домашнего компьютера, но для сервера желательно это значение свести к минимуму, например — 10:
sudo sysctl vm.swappiness=10
Сохраним это значение и после перезапуска системы, для этого открываем файл /etc/sysctl.conf:
Добавляем в конец эту строчку:
Сохраняем и закрываем файл, нажав CTRL + X, Y, а затем ENTER.
Ну, а если по какой-то причине решите удалить файл подкачки, то нужно сделать следующее:
Сохраняем и закрываем файл, нажав CTRL + X, Y, а затем ENTER.
About
Как создать (удалить) файл подкачки (SWAP) в Linux (На примере Ubuntu 20.04 на бесплатном VPS — сервере от Oracle)
How to delete a second swap partition safely?
First of all I’ve tried to install Ubuntu , but something went wrong and the installation was interrupted. Then I tried to install again , and it was installed successfully. And there was another partition about 600 Mb , but I removed it using Disk Utility .And I had to restore grub from a live CD. but Why is /dev/sda4 now extended and contains 2 linux swap ?And how can I remove the other linux swap? and how to make it one Linux partition with one swap ? When I try to remove /dev/sda5 Please unmount any logical partitions having a number higher than 5 .
3 Answers 3
I’m not sure why your system ended up with 2 swap partitions, but it’s easy to fix.
- I recommend using gparted instead of fdisk or Disk Utility . You can delete the «extra» swap partition and resize the others to claim the freed disk space. It will also tell you if either swap partitions are being actually used or not. Very helpful. gparted is not installed by default, but it is available for install in the repositories. It is also pre-installed in Live sessions from the Ubuntu install CD/USB.
- About the extended partition: using a traditional partition table, you can only have 4 primary («non-extended») partitions. Since you already have 3 NTFS/Windows, and you need 2 more for Ubuntu (OS and Swap), this only can be done using an extended partition. So your 4 primary partitions are the 3 NTFS ones + Extended (the extended partition itself takes up 1 «slot»), and the other partitions are within the extended.
- Using gparted , check the status of your swap partitions. If they are locked, it’s being currently used by the system. Take note of their status, and decide which one you want to keep and which to delete. Also, right-click them both, go to information, and take note of their UUID ( sudo blkid also works).
The possible scenarios are:
1 — The one you want to delete is NOT being used by the system: nice, just delete the partition.
2 — Both swaps are being used by the system: right-click it the one you want to delete, select Swapoff . To make that permanent, remove its entries from /etc/fstab and /etc/initramfs-tools/conf.d/resume (deleting the lines that match its UUID). Now you can safely delete the partition.
3 — Just the one you want to delete is being used, the one you want to keep is not: right-click the one you want to delete, select Swapoff . Right-click the other, select Swapon . Edit /etc/fstab and /etc/initramfs-tools/conf.d/resume , and replace the UUID from one to the other. Delete the unwanted partition.
If any changes are made to /etc/initramfs-tools/conf.d/resume , use the following command to apply the changes:
If you have any question about the answer, feel free to ask!
SWAP в Linux: Создание, редактирование и удаление раздела или файла
Если сервер пытается запустить программу, которая требует больше оперативной памяти, чем доступно, операционка для решения задачи используют технологию swapping («подкачка»). Суть этой технологии заключается в том, что объем данных, который не помещается в оперативную память временно хранится на жестком диске, в то время как другая часть данных обрабатывается. Рассмотрим два варианта управления своп-разделами в Linux для повышения производительности системы.
В ОС Linux оперативная память (ОЗУ, RAM, random access memory) делится на разделы, называемые страницами (pages). Swapping («подкачка», своппинг) —
это процесс во время которого страницы памяти копируются в сконфигурированный специально раздел диска, который называется swap space
(раздел подкачки, может быть как и файлом, так и разделом жесткого диска) для того чтобы освободить ОЗУ.
Совокупные размеры физической памяти и раздела подкачки — это объем имеющийся виртуальной памяти.
Своппинг крайне необходим потому что когда системе необходимо больше памяти (приложение или процесс запрашивает у системы больше памяти) чем сейчас свободно в ОЗУ,
ядро разгружает («откачивает») наименее используемые страницы и освобожденную память выделяет текущему приложению или процессу. А также,
значительное количество страниц используемых программами на стадии запуска, используются только при инициализации и никогда более.
Поэтому система свапит эти страницы и освобождает ОЗУ.
У своппинга конецчно есть и недостатки. Ведь по сравнению с ОЗУ работа с жестким диском осуществляется на порядоки медленнее.
На чтение/запись в ОЗУ используются наносекунды, а на жесткий диск уже используются миллисекунды, поэтому одни и те же операции на жестком диске занимают в десятки тысяч больше времени чем в ОЗУ.
Поэтому чем больше страниц спаппится, тем медленнее будет работать ваша система.
Однако для выделенного сервера в некоторых ситуациях своппинг помогает не повесить сервер. Т.е. благодаря подкачки вы будете иметь хоть какое-то (пусть очень замедленное) но все-таки управление сервером.
В Linux есть два вида своппа: раздел подкачки и файл подкачки. Раздел подкачки — это отдельный раздел на жестком диске, используемый только для своппинга, никакие другие файлы не могут там располагаться. В Linux работа с этим разделом происходит на низком уровне. Файл подкачки — это специальный файл в файловой системе.
Swap partition, своп-раздел
Для того что бы в Linux посмотреть какие своп пространства у вас имеются, используйте команду:
swapon -s.
Filename Type Size Used Priority
/dev/sda7 partition 859436 0 -1
Каждая строчка в этом списке описывает имеющиеся у вас своп пространства. В поле «Type» указывается тип пространства: partition (раздел) или file (файл). Поле «Filename» показывает местоположение свопа. Далее идет общий размер свопа и сколько сейчас используется. В последнем поле указан приоритет, т.е. какие пространства системе использовать вначале. Стоит отметить, что если примонтировать несколько своп-простанств расположенных на разных жестких дисках, и выставить им одинаковый приоритет, то Linux будет равномерно распределять страницы памяти по ним, что приведет к существенному увеличению производительности системы.
Перед тем как добавить новый своп-раздел, необходимо приготовить для него место. Для начала убедитесь в том, что раздел помечен как swap. Для этого используйте следующую команду:
Замените /dev/hdb на на путь к устройству где будет расположен своп. Результат должен выглядеть примерно так:
Device Boot Start End Blocks Id System
/dev/hdb1 2328 2434 859446 82 Linux swap / Solaris
Если раздел не помечен как swap, то используйте программу fdisk с ключом t, будьте осторожны во время этой процедуры, а то останетесь без своего линукса и других ОС, проверьте раздел на наличие нужной информации перед тем, как сделать из него swap.
Как только раздел помечен как своп, необходимо подготовить, для этого используется следующая команда:
Если никаких ошибок нет, то можно подключать своп-раздел:
Проверить результат можно вышеупомянутой командой:
Для того что бы новый своп автоматически монтировался при старте системы, необходимо внести некоторые изменения в файл /etc/fstab, в котором содержатся все файловые системы и свопы, монтирующиеся при старте. Формат файла следующий:
Таким образом, swap-space — это специальный тип файловой системы. Для добавления нового свопа добавьте следующую строку:
Для того что бы проверить примонтируется ли новый своп-раздел при старте, отключите все свопы командой swapoff -a. Затем командой swapon -a, включите свопы, загрузятся те, которые перечислены в файле /etc/fstab. Ну и наконец командой swapon -s проверьте, какие сповы примонтировались.
Создание SWAP файла
Создаем файл необходимого размера для swap области, где /home/swap-tmp — это имя и путь файла, а count=1024K его размерв, в данном случае — 1024 Мб):
# sudo dd if=/dev/zero of=/home/swap-tmp bs=1024 count=1024K
На экране получим:
Далее производим запись в начало файла системную информацию, которая будет используется ядром системы для работы с файлом подкачки:
Следующим шагом активируем только что созданный SWAP файл:
Для просмотра результата просматриваем все объекты, которые используются для размещения виртуальной памяти:
После перезагрузки системы SWAP файл необходимо активировать снова или добавить строчка для автоматической загрузки в файл fstab.
Редактировать файл fstab можно самостоятельно или командой, которая добавляет в конец файла
fstab строку /home/swap-tmp swap swap defaults 0 0:
# echo «/home/swap-tmp swap swap defaults 0 0» | sudo tee -a /etc/fstab
Тоже самое действие но добавление через UUID:
# echo «UUID=54c60583-e61a-483a-a15c-2f1be966db85 swap swap defaults 0 0» | sudo tee -a /etc/fstab
Удаление SWAP файла
Просматриваем все объекты, которые используются для размещения виртуальной памяти
Деактивируем, для примера, созданный выше SWAP файл:
Если Вы раньше добавляли строчку в fstab, для автоматической загрузки SWAP файла при старте операционной системы, то следует ее удалить. Выводим файл /etc/fstab для редактирования на экран:
В нем удаляем строчку монтирования SWAP файла.