Файл подкачки Linux
Сегодня мы будем говорить о файле подкачки в Linux. Расскажем для чего он нужен, как создать, изменить размер или удалить. В общем, все, что вам может понадобиться при работе со swap .
В операционной системе Linux, как и в других ОС, файл подкачки нужен для страховки оперативной памяти. Когда установленный объем ОЗУ заканчивается, используется именно выделенная область из файла подкачки. Это может понадобиться в двух случаях:
- Для того чтобы при полной занятости и, как следствие, отсутствия свободной оперативной памяти, компьютер не тормозил.
- Для распределения приоритетов (важным процессам отдается физическая оперативная память, а второстепенным файл подкачки Linux).
Сам по себе swap — это отдельный логический раздел вашего диска либо просто файл на системном разделе. Чаще всего он создается именно при установке операционной системы. Но создать swap linux можно и после завершения инсталляции ОС.
В последних версиях операционной системы Ubuntu Linux файл подкачки создается автоматически вне зависимости от того, хотите вы этого или нет. При этом его размер составляет около 1 Гб.
Как посмотреть swap в Linux
Прежде чем приступить к процессу добавления, настройки или удаление файла подкачки , необходимо проверить его наличие. Для этого проще всего использовать приведенную ниже команду. В нашем случае она выглядит так:
Используемая команда отображает размер файла подкачки вашей операционной системы. Однако, по ее результатам мы не можем определить – это файл подкачки или раздел подкачки. Поэтому будем использовать дополнительный другую команду, чтобы посмотреть swap linux. Вводим в терминал следующее:
Как видите, в нашем случае под swap выделено 1.4 Гб и это файл. То есть, он находится не на отдельном разделе, а на том же диске, на котором установлена операционная система.
Если это будет отдельный логический том, то под надписью « TYPE » мы увидим слово «partition».
Если бы файл подкачки в вашей операционной системе отсутствовал, результат работы команды free — h выглядел бы примерно так:
То есть, вместо каких-либо данных о файле подкачки вы увидите нули.
Создание файла подкачки Linux
Если вы удостоверились в том, что файл подкачки отсутствует, можно переходить к его созданию. Пример, приведенный ниже, будет показан с использованием операционной системы Ubuntu 18.04, но работать это должно и на других дистрибутивах Linux.
Шаг 1: Создаем swap файл
Давайте создадим файл подкачки для нашей Ubuntu. Для примера его размер составит 1 Гб. Запустите терминал и введите команду, приведенную ниже:
sudo fallocate -l 1G /swapfile
Для обеспечения безопасности файла обязательно устанавливаем на него нужные права.
sudo chmod 600 /swapfile
При этом вместо «swapfile» мы можем указать любое другое название.
Шаг 2: Создание файловой системы
Создание swap linux ещё не завершено. Теперь необходимо указать нашей операционной системе, что созданный объект должен использоваться как файл подкачки. Для этого мы будем использовать команду, приведенную ниже:
sudo mkswap /swapfile
Если все сделано верно, результат будет выглядеть так:
Шаг 3: Активируем файл подкачки
Хорошо, теперь наш Linux понимает, что это файл подкачки, но этого недостаточно. Нам также необходимо включить SWAP :
sudo swapon /swapfile
Давайте проверим, все ли мы сделали правильно:
Отлично, операционная система распознала наш файл подкачки и начала его использовать. Мы видим тип в поле TYPE и размер в поле SIZE .
Шаг 4. Сохранение изменений после перезагрузки
Все операции, которые мы предприняли выше, временны. Как только компьютер будет перезагружен, они отменятся. Для того чтобы сделать изменения постоянными, нам необходимо дописать кое-какую информацию в /etc/fstab. Для этого поступаем так:
Прежде чем начать работать с файлом, о котором мы говорим, необходимо обязательно создать его резервную копию:
sudo cp /etc/fstab /etc/fstab.back
После этого можно переходить непосредственно к добавлению нужных нам данных. Нам надо добавить в файл такую строчку:
/swapfile none swap sw 0 0
Это реализуется через текстовый редактор, запущенный с правами суперпользователя, либо при помощи введенной в терминал команды:
echo ‘/swapfile none swap sw 0 0’ | sudo tee -a /etc/fstab
Готово. Изменения сохранены и файл подкачки не сбросится после перезагрузки операционной системы.
Настройка swappiness
Дальше будет рассмотрена настройка swap linux. У файла подкачки существуют параметры, которые сообщают ОС, как часто его нужно использовать. Это явление называется «свопингом» и может иметь значение в пределах 0 — 100. Если это значение ближе к 100, ядро будет перемещать в раздел подкачки больше информации чтобы освободить память. При значениях ближе к нулю, система будет использовать подкачку только при крайней необходимости.
К примеру, в версии Ubuntu L inux для рабочего стола устанавливается параметр 60, а в серверных редакциях операционной системы — 1. Для того чтобы проверить, какой параметр используется в нашей ОС, вводим в терминал такую команду:
Как видите, в нашем случае «свопинг» установлен как 60. Если же вы хотите поменять swappiness, можете воспользоваться оператором, цифра в конце которого и будет новым значением:
sudo sysctl vm.swappiness=25
Как и в случае с конфигурацией файла подкачки, данный параметр изначально будет временным и обнулится при следующей перезагрузке. Для того чтобы сделать его постоянным, в самом конце файла /etc/sysctl.conf записываем значение vm.swappiness=25.
Для этого можно воспользоваться, например, текстовым редактором, запущенным с администраторскими полномочиями.
Размер swap файла в Linux
Существует сразу несколько вариантов, позволяющих увеличить файл подкачки linux или уменьшить его. Однако, прежде чем их рассмотреть, необходимо напомнить об одном очень важном моменте:
Когда вы полностью отключаете файл подкачки, ваша операционная система использует только ОЗУ и в случае ее нехватки это может привести к полной остановке работы компьютера. Система просто зависнет.
Для того чтобы этого не произошло, в тот момент, когда мы удаляем или изменяем основной файл подкачки, необходимо создать второй, временный swap. Если вы это сделали или уверены в том, что имеющейся оперативной памяти хватит, можно переходить непосредственно к процессу изменения размера файла подкачки. Для этого давайте сначала отключим его:
sudo swapoff /swapfile
Вторым этапом меняем размер файла подкачки, воспользовавшись командой, приведенной ниже. При этом размер вашего swap файла нужно указать вместо параметра 2G (2 гигабайта):
sudo fallocate -l 2G /swapfile
Теперь форматируем полученный файл в файловую систему swap:
sudo mkswap /swapfile
А затем включаем его обратно:
sudo swapon /swapfile
При этом операционная система Linux позволяет использовать сразу несколько swap.
Как удалить файл подкачки в Linux
Если по каким-то причинам файл подкачки вам не нужен, можете удалить его. Для этого сначала надо отключить swap linux:
sudo swapoff /swapfile
А потом удаляем:
sudo rm /swapfile
Не забудьте установить права на вновь созданный файл подкачки так, как мы описывали это выше.
В заключение
Надеемся теперь концепция файла подкачки в Linux ясна вам на 100%. Можете переходить к практике и проверять наличие swap на вашем компьютере или ноутбуке, его настройке, созданию или даже удалению. Если в результате у вас останутся какие-то вопросы, предложения или замечания, можете задать их нам, воспользовавшись формой комментирования ниже.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Похожие записи
Оцените статью
alt=»Creative Commons License» width=»» />
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .
Об авторе
26 комментариев к “Файл подкачки Linux”
>> В последних версиях операционной системы Ubuntu Linux файл подкачки создается автоматически вне зависимости от того, хотите вы этого или нет. При этом его размер составляет около 1 Гб.
Конечно же это не так!
всё именно так, почти все дистрибутивы из коробки свап на гиг метят
Есть приедложение: вставляй скриншоты именно тех окон, которые необходимы по ходу статьи а не ввесь скриншот твоего рабочего стола, для лучшей читабельности скриншота.
Вообще, автор несколько недоговаривает насчет свапа в GNU/Linux (вероятно, ввиду незнания). Дело в том, что свап нужен не столько для срочного получения памяти, сколько для ровного и эффективного высвобождения памяти. Использовать его в качестве «срочной памяти» в общем случае очень вредно.
И отключение swap не спасает от проблемы дискового ввода/вывода при конкуренции за память — дисковый I/O просто перемещается с анонимных страниц на файловые. Это не только может быть менее эффективным, поскольку остаётся меньший пул страниц, доступных для высвобождения, но и само по себе может способствовать появлению этой высокой конкуренции.
И включение свопа тоже не спасает от заполнения озу дисковым кэшем. На разных дистрибутивах периодически сталкиваюсь с одной и той же проблемой. ОЗУ забивается дисковым кэшем и система начинает тормозить, при том что своп есть, активен, но он не используется. Опытным путем пришел к выводу что система начинает юзать своп отталкиваясь не от параметра в графе «свободно», а от параметра в графе «доступно». Я не знаю верный ли вывод сделал, но со стороны все выглядит именно так. Имею на борту 8 гб ОЗУ. Во время работы системы постепенно дисковый кэш начинает увеличиваться в размере и занимает около 6гб, при этом под реальные нужды используется всего 1,5гб, в графе «свободно» указано около 500мб, в графе доступно около 6,5гб. Стоит только запустить какую-нибудь задачу, которая потребляет озу хотя бы 1,5 -3 гб (игра), как система идёт в штопор, количество свободной памяти уменьшается до минимума прописанного в ядре — 65мб, потом начинает высвобождаться дисковый кэш, но он его просто дропает, а не пишет в своп. Причем дропает примерно до размера чтобы в графе «свободно» было 150-180мб. И после этого система начинает балансировать на этих 180 мб. Всё, естественно, становится дерганным и лагучим. Своп по прежнему не используется. Опытным путем выяснено что своп начинает использоваться тогда, когда в графе «доступно» появляется значение сопоставимое с выставленным параметром swappiness. Мне интересно, так задумано или это баг?
Приходилось устанавливать минимальное количество свободной озу на 500мб вместо 65. Подбирать swappiness в соответствии с нуждами. Но сам по себе своппинг, тоже по сути зло. В момент доступа к диску все равно наблюдались микрофризы, хотя своп находится на ссд. Решением стала настройка и уменьшение дискового кэша. Конечно, это имеет и свою отрицательную сторону, но тут, как говорится, из двух зол выбирай меньшее.
Ещё забыл добавить, что если просто во время лагов вручную дропнуть кэш, то система оживает и работает хорошо до тех пор пока озу снова не забьётся кэшем.
How do I disable swap?
I have some sensitive data in RAM that I prefer not to be on disk. How do I disable swap?
I have more than enough RAM. If RAM consumption gets too high I have no problems with processes being terminated. How do I disable swap?
Note: I do not have a swap partition and this is running in a VM (VMware)
7 Answers 7
is the usual way to turn off swap, with the swapon -a command used to turn it back on. See man swapoff for more information about turning off swap for explicit devices.
You may disable swap after reboot by just commenting out (add # in front of the line) the swap entry in the /etc/fstab file. It will prevent the swap partition from automatically mounting after a reboot. To do this in a single command:
Now your swap entry on /etc/fstab will look similar to this:
With your own specific numbers and lower case letters instead of the letters «x».
Above command disables swap only for a current session, you need to comment out swap partition in /etc/fstab file. To do this you just need to add «#» (comment line) to the beginning of swap line. Steps are as:
- Open fstab file, type sudo gedit /etc/fstab in terminal.
File’s contents would look like this:
- Just add hash (#) to the beginning of the swap partition line, so the line looks as:
#/host/ubuntu/disks/swap.disk none swap loop,sw 0 0
- Reboot your PC
It may be lame solution, but I used it often. You can simply type
So, it will be disabled automatically on boot.
If you’re concerned about the content of the swap, you can always turn it off as specified in the usual way with sudo swapoff -a and then fill the swap device with zeros or random data using dd.
First use the content of fstab to find your swapfile or device ( less /etc/fstab ).
Having located it and double and triple checked its location at say sda5 or /swapfile (swap partitions were replaced by default with a swapfile in Ubuntu 17.04 (Zesty Zapus) and beyond).
In the case of a swap partition or drive (prefaced with /dev): issue the «disk destroyer» command (not to be used lightly),
sudo dd if=/dev/zero of=swap , replacing the word swap with the swap device or file you located in /etc/fstab
to blast it full of zeros or
sudo dd if=/dev/random of=swap again replacing the word swap with the swap device or file you located in /etc/fstab
to blast it full of random data.
In the case of a swapfile (prefaced with only a path):, you can simply delete the file with sudo rm /path/to/swapfile , but it’s better to just fill it with garbage as described above, so that the next time you turn swap on with
the system will happily use it again. If you have plenty of RAM you may not need swap at all. Issue the command
when the system is under heavy load and see how much is in use to make this determination.
If you determine that you permanently don’t need swap (for hibernation or anything else) you can simply comment out that line in fstab as suggested here.
How to Permanently Disable Swap Partition in Linux
Swapping or swap space represents a physical memory page that lives on top of a disk partition or a special disk file used for extending the RAM memory of a system when the physical memory fills up.
Using this method of extending RAM resources, inactive memory pages are frequently dumped into the swap area when no RAM is available. However, due to the spinning speed of classical hard disks, swap space is way lower in transfer speeds and access time compared to RAM.
On newer machines with fast SSD hard disks, reserving a small partition for swapping can greatly improve access time and speed transfer compared to classical HDD, but the speed is still magnitudes lower than RAM memory.
Some suggest that the swap space should be set as twice the amount of machine RAM. However, on systems with more than 4 GB of RAM, swap space should be set between 2 or 4 GB.
In case your server has sufficient RAM memory or does not require the use of swap space or the swapping greatly decreases your system performance, you should consider disabling the swap area.
How to Check Swap Space in Linux
Before actually disabling swap space, first, you need to visualize your memory load degree and then identify the partition that holds the swap area, by issuing the below free command.
Look for the Swap space used size. If the used size is 0B or close to 0 bytes, it can be assumed that swap space is not used intensively and can be safely disabled.
How to Check Swap Partition in Linux
Next, issue following the blkid command, look for TYPE=»swap» line in order to identify the swap partition, as shown in the below screenshot.
Again, issue the following lsblk command to search and identify the [SWAP] partition as shown in the below screenshot.
How to Disable Swap in Linux
After you’ve identified the swap partition or file, execute the below command to deactivate the swap area.
Or disable all swaps from /proc/swaps, which provides a snapshot of the swap file name.
Run free command in order to check if the swap area has been disabled.
How to Disable Swap Permanently in Linux
In order to permanently disable swap space in Linux, open /etc/fstab file, search for the swap line and comment on the entire line by adding a # (hashtag) sign in front of the line, as shown in the below screenshot.
Afterward, reboot the system in order to apply the new swap setting or issue mount -a command in some cases might do the trick.
After the system reboot, issuing the commands presented at the beginning of this tutorial should reflect that the swap area has been completely and permanently disabled in your system.
How to Permanently Disable Swap in Linux?
Swapping or swapping space is a physical memory page placed at the top of a disk partition or a special disk file that is used to expand a system’s RAM as the physical memory fills up. Inactive memory pages are often dumped into the swap area when no RAM is available, using this method of expanding RAM resources. However, swap space is much lower in transfer speeds and access time compared to RAM, due to the spinning speed of standard hard disks.
Reserving a small partition for swapping will significantly increase access time and speed transfer compared to conventional HDD on newer machines with fast SSD hard drives, but the speed is still lower than RAM memory. Some say that it is appropriate to set the swap space to twice the amount of computer RAM. However, swap space should be set to 2 or 4 GB on systems with more than 4 GB of RAM.
If your server has sufficient RAM memory or does not need the use of swap space or your device output is significantly reduced by swapping, you can consider disabling the swap field.
You first need to visualize your degree of memory load before actually disabling swap space, and then identify the partition that holds the swap area by issuing the commands below.
Look for the Used Swap Space size. If 0B or close to 0 bytes is the size used, it can be assumed that swap space is not used intensively and can be disabled for protection.
Next, check for TYPE=”swap” line after the blkid command to define the swap partition, as shown in the screenshot below.
check swap partition type
Again, issue the following lsblk command to search and identify the [SWAP] partition as shown in the below screenshot.
Search Confirm Swap Partition
Run the below command to deactivate the swap area after you have identified the swap partition or file.
Or disable all swaps from /proc/swaps.
To check if the swap area has been disabled, run the free command.
Disable Swap Partition
To permanently disable Linux swap space, open the /etc/fstab file, search for a swap line and add a # (hashtag) sign in front of the line to comment on the entire line, as shown in the screenshot below.
Afterwards, reboot the system in order to apply the new swap setting or issuing mount -a command in some cases might do the trick.
After a system reboot, the commands presented at the beginning of this tutorial should be issued to indicate that the swap area in your system has been completely and permanently disabled.
In simple ways or the other step:
If you really want to disable swapping (note: this is not suggested, even if you’re pretty sure there’s more than enough physical RAM), follow these steps: