Display current swap space and RAM usage on Linux: $ free -h $ swapon —summary
Next, create a new file that you will use for swap space either using the dd command: # Example: 2 Gib Linux swap file # $ sudo dd if=/dev/zero of= /swap-file count=2 bs=1GiB
Make sure you set up correct Linux filesystem permissions for security reasons using the chmod command and chown command: $ sudo chmod -v 0600 /swap-file $ sudo chown -v root:root /swap-file # List permissions # $ ls -l /swap-file
Run the following mkswap command to set up Linux swap area using a file: $ sudo mkswap /swap-file
Activating a swap space by typing the swapon command: $ sudo swapon /swap-file
Adding swap file on Linux using the CLI
Displaying RAM and swap usage on Linux
You can use any one of the following commands: $ swapon —summary $ free -h $ top $ htop $ vmstat
Display swap usage summary on Linux
How to activate swap space file persistently on Linux
Make sure our swap file is activated after the Linux system reboots. To make the change permanent, edit the /etc/fstab file: $ sudo vi /etc/fstab Append the following config directives: /swap-file swap swap defaults 0 0 Save and close the file.
No ads and tracking
In-depth guides for developers and sysadmins at Opensourceflare✨
Join my Patreon to support independent content creators and start reading latest guides:
How to set up Redis sentinel cluster on Ubuntu or Debian Linux
How To Set Up SSH Keys With YubiKey as two-factor authentication (U2F/FIDO2)
How to set up Mariadb Galera cluster on Ubuntu or Debian Linux
A podman tutorial for beginners – part I (run Linux containers without Docker and in daemonless mode)
How to protect Linux against rogue USB devices using USBGuard
Join Patreon ➔
How to set up the swap space and file priority
By default, the Linux kernel uses the first activated swap space till it is full. Then kernel starts using the second swap space and so on. Nevertheless, Linux allows us to define priority. The default priority is -2, and Linux can use the highest priority first. Edit /etc/fstab and add the pri as follows:
Now my Linux kernel uses /swap-file-2 first with pri=10 . When that space is full, Linux usess the /swap-file with pri=5 . Finally, Linux uses /dev/sdb which has -2 priority.
A note about the swappiness
The swappiness value is defined in /proc/sys/vm/swappiness file. It controls how aggressively the Linux kernel will swap memory pages. Higher values increase aggressiveness, and lower values decrease aggressiveness. The default value is 60. Use the cat command to see values: $ cat /proc/sys/vm/swappiness 60 I recommend leaving the default value, which works out great for most users. However, you can change it as follows to say 40: $ sudo echo «vm.swappiness=10» | sudo tee -a /etc/sysctl.d/99-swappiness.conf See “How to append text to a file when using sudo command on Linux or Unix” and “How to make changes to /proc/ filesystem permanently using sysctl.conf” for more information.
Removing swap file
Want to delete your swap file? Try:
Disable the swap file: $ sudo swapoff -v /swap-file
Remove the physical swap file using the rm command: $ sudo rm -v -i /swap-file
Edit the /etc/fstab and remove entry for the swap file. For example: /swap-file swap swap defaults 0 0
Conclusion
You learned about creating a swap file on Linux to optimize VM/bare metal server or Linux desktop to increase available swap space. See the following man pages/documenation for more information by typing the man command: $ man 8 mkswap $ man 8 swapon $ man 8 swapoff $ man 8 mount $ man 5 fstab
🐧 Get the latest tutorials on Linux, Open Source & DevOps via
Источник
How To Create a Linux Swap File
In this article, we will explain swap space, and learn how to create swap space using a swap file in Linux: this is important in case we don’t have a swap partition created on the hard disk.
Swap space/partition is space on a disk created for use by the operating system when memory has been fully utilized. It can be used as virtual memory for the system; it can either be a partition or a file on a disk.
When the kernel runs out of memory, it can move idle/inactive processes into swap creating room for active processes in the working memory. This is memory management that involves swapping sections of memory to and from virtual memory.
With that said, below are the steps we can follow to create a swap space using a file.
How to Create and Enable Swap in Linux
1. In this example, we will create a swap file of size 2GB using the dd command as follows. Note that bs=1024 means read and write up to 1024 bytes at a time and count = (1024 x 2048)MB size of the file.
Alternatively, use the fallocate command as follows.
And then set the appropriate permissions on the file; make it readable only by root user as follows.
2. Now setup the file for swap space with the mkwap command.
3. Next, enable the swap file and add it to the system as a swap file.
4. Afterwards, enable the swap file to be mounted at boot time. Edit the /etc/fstab file and add the following line in it.
In the line above, each field means:
/mnt/swapfile – device/file name
swap – defines device mount point
swap – specifies the file-system type
defaults – describes the mount options
0 – specifies the option to be used by the dump program
0 – specifies the fsck command option
6. To set how often the swap file can be used by the kernel, open the /etc/sysctl.conf file and add the line below.
Note that the default value of how frequent swap space can be used is 60 (maximum value is 100). The higher the number, the more frequent swap space utilization by the kernel. When the value is set to 0, the swap file will only be used if the operating system has fully utilized memory.
6. Now verify the swap file was created using the swapon command.
Check Swap Space in Linux
We can optionally reboot the system to effect the above changes using the following command.
Remember to also read through these useful Linux memory management guides:
That’s It! If you have any issues, use the feedback form below to send us any questions or important additional ideas to this topic.
If You Appreciate What We Do Here On TecMint, You Should Consider:
TecMint is the fastest growing and most trusted community site for any kind of Linux Articles, Guides and Books on the web. Millions of people visit TecMint! to search or browse the thousands of published articles available FREELY to all.
If you like what you are reading, please consider buying us a coffee ( or 2 ) as a token of appreciation.
We are thankful for your never ending support.
Источник
Файл подкачки Linux
Сегодня мы будем говорить о файле подкачки в Linux. Расскажем для чего он нужен, как создать, изменить размер или удалить. В общем, все, что вам может понадобиться при работе со swap .
В операционной системе Linux, как и в других ОС, файл подкачки нужен для страховки оперативной памяти. Когда установленный объем ОЗУ заканчивается, используется именно выделенная область из файла подкачки. Это может понадобиться в двух случаях:
Для того чтобы при полной занятости и, как следствие, отсутствия свободной оперативной памяти, компьютер не тормозил.
Для распределения приоритетов (важным процессам отдается физическая оперативная память, а второстепенным файл подкачки Linux).
Сам по себе swap — это отдельный логический раздел вашего диска либо просто файл на системном разделе. Чаще всего он создается именно при установке операционной системы. Но создать swap linux можно и после завершения инсталляции ОС.
В последних версиях операционной системы UbuntuLinuxфайл подкачки создается автоматически вне зависимости от того, хотите вы этого или нет. При этом его размер составляет около 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 на вашем компьютере или ноутбуке, его настройке, созданию или даже удалению. Если в результате у вас останутся какие-то вопросы, предложения или замечания, можете задать их нам, воспользовавшись формой комментирования ниже.
Нет похожих записей
Оцените статью:
Об авторе
14 комментариев
>> В последних версиях операционной системы 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 в соответствии с нуждами. Но сам по себе своппинг, тоже по сути зло. В момент доступа к диску все равно наблюдались микрофризы, хотя своп находится на ссд. Решением стала настройка и уменьшение дискового кэша. Конечно, это имеет и свою отрицательную сторону, но тут, как говорится, из двух зол выбирай меньшее.