20 апреля 2017

Использование файла подкачки (SWAP) вместо раздела подкачки в Ubuntu 17.04

  Разработчики Ubuntu приняли решение отказаться от использования отдельного раздела подкачки SWAP для установки дистрибутива, в пользу размещения SWAP в файле. Впервые данное решение было применено в дистрибутиве Ubuntu 17.04.
  К слову сказать, это специальный раздел на диске или файл, в который операционная система перемещает отдельные блоки оперативной памяти в случае когда оперативной памяти (ОЗУ) нашего компьютера недостаточно для работы приложений.

  Иными словами, когда оперативной памяти (ОЗУ) нашего компьютера недостаточно для работы приложений, система начинает зависать или замерзать, т.к. ОЗУ переполнена и в этом случае не работает ни мышь, ни клавиатура и только остаётся принудительно перезагрузить компьютер, нажатием, и удерживанием кнопки ВКЛ/ВЫКЛ, т.к. перезагрузка компьютера освобождает оперативную память.
Зависание компьютера обычно происходит, как правило, когда пользователь работает на слабом компьютере с 2 и менее ГБ ОЗУ, и у него открыто несколько ёмких приложений или браузер с десятком и более вкладок, а также в это время в одной из вкладок просматривается видео, либо пользователь играет в компьютерные игры.
Но до того как мы отрыли браузер или несколько приложений, необходимо учесть, что во время загрузки системы в ОЗУ уже подгружаются Автоматически запускаемые приложения и демоны, которые необходимы системе.
Поэтому, чтобы не происходило зависания системы дополнительно используется swap-раздел или swap-файл.

Помимо зависания системы, SWAP используется при организации режима сна (hibernation или suspend). При этом в SWAP сохраняется образ оперативной памяти, для дальнейшего её использования после "пробуждения".

К слову сказать, Swap-файл по умолчанию давно используется в Windows, теперь и разработчики Ubuntu решили отказаться от использования отдельного раздела подкачки SWAP, в пользу размещения SWAP в файле, поэтому ни какой "Америки" убунтовцы не открыли.

После установки Ubuntu 17.04 я решил проверить, где же находится swap-файл в системе. Но не тут-то было! Swap-файла в системе не оказалось.
Проверить это можно выполнив следующую команду в терминале:

ls -lh /


Как видно на снимке, при открытии родительского каталога в терминале, swap-файл в системе не обнаружился.

Не поверив терминалу, я открыл файловый менеджер Nautilus, и в нём не нашёл swap-файл.


Тогда я пошёл другим путём, установив в VirtualBox Ubuntu 17.04:


По окончании установки Ubuntu 17.04 в VirtualBox, я вновь проверил сначала в терминале наличие swap-файла в системе:

ls -lh /


А затем и в Nautilus VirtualBox):


Как видно на обоих снимках, swapfile "нашёлся".

Заключение.

Скорее всего, Swap-файл в моей системе Ubuntu 17.04 не был создан по той причине, что на жёстком диске моего компьютера ранее был создан раздел подкачки Swap:


И, видимо, в создании файла подкачки - swapfile не было необходимости при установке системы.
А VirtualBox, т.е. виртуальный компьютер, не видит натурального жёсткого диска, т.к. у него свой ж/д и в этом случае создаёт swapfile.

РЕЗЮМЕ́.

Если у вас создан ранее раздел подкачки, то система Ubuntu 17.04 будет использовать его, не создавая swapfile во время установки.
Но в случае, если вы устанавливаете Ubuntu 17.04 впервые, без предварительной разбивки ж/диска, выбрав во время установки системы - Установить рядом с Windows или рядом с другими системами, то автоматически в системе будет создан - swapfile.

P.S. Возможно у кого-то есть свои соображения на этот счёт, просьба поделиться ими в комментариях.

Удачи.

20 комментариев :

  1. у меня тоже нет, установлена одна ubuntu 17.04 и тоже периодически замерзает подумываю вернутся на 16.10

    ОтветитьУдалить
  2. Создал файл swap посмотрю как будет теперь себя чувствовать. А вообще на мой взгляд явная недоработка.

    ОтветитьУдалить
  3. У меня тоже периодически замерзает.

    ОтветитьУдалить
  4. Ответы
    1. пробовал. потом система еще дольше начинает грузится.

      Удалить
    2. По поводу длительности загрузки системы, такого не замечал, а вот то что при использовании zRAM, нагрузка на ОЗУ меньше на 30% это точно.

      Удалить
  5. Как понимаю это zram в принудиловку к корневому разделу. Для тех у кого больше 4г основной вообще можно не дергаться.

    ОтветитьУдалить
  6. zRAM модуль ядра производящий сжатие данных в ОЗУ https://ru.wikipedia.org/wiki/ZRam

    ОтветитьУдалить
  7. hxxps://wiki.archlinux.org/index.php/Swap#Swap_file
    Уже как бы давно написано...как и по теме Zswap...Вообще то тема swap размыта...При наличии SSD тем более двояка ) С одной стороны как пишут износ ( в чем сомнения есть) С другой стороны скорость...на хрена тогда SSD ? И с использованием такого swap может встать проблема с гибернацией...

    ОтветитьУдалить
  8. fallocate -l 1G /PATH/FILENAME - создаём файл, где 1G размер
    chmod 600 /PATH/FILENAME - меняем права
    mkswap /PATH/FILENAME - создаём swap
    swapon /PATH/FILENAME - включаем swap

    ####### в fstab вписываем ########
    /PATH/FILENAME none swap sw 0 0

    cat /proc/swaps - проверяем

    ОтветитьУдалить
  9. Такое ощущение что лет на 7 назад вернулся , когда Linux изучать начал. Unity умер, разговоры про 2Gb памяти RAM. Что происходит? Обратно что-ли в ОКНО?

    ОтветитьУдалить
    Ответы
    1. Если не игрульки и не работа с видео, то 2Gb за глаза хватает для простого юзера, свап для браузера только тогда нужен. Ну и уникумам которые 100 вкладок в браузере держат, тут и 128 не хватит.

      Удалить
  10. btrfs не поддерживает свапфалов поэтому или надо делать раздел с ext4 для такого свапфайла или по старинке ;-)

    ОтветитьУдалить
  11. и еще, не присваиваются метки разделам диска с дистрибутивами 17.04
    Ни Кубутне, ни Убунте, ни Убунте с Гномом ????
    На диске есть раздел подкачки

    ОтветитьУдалить
  12. У меня на нетбуке с 2 ГБ ОЗУ при ранее созданном разделе подкачки размером 4,4 ГБ в 17.04 своп-файл создался размером 594,2 МБ
    https://itmages.ru/image/view/5669425/37d74284

    ОтветитьУдалить
  13. В чём преимущество файла над разделом? Можно оперативно менять размер?

    ОтветитьУдалить
    Ответы
    1. раздел подкачки могут использовать все установленные ОС Линукс а файл подкачки будет каждая себе создавать

      Удалить
    2. Да могут (все установленные ОС Линукс), но при установке дополнительной системы желательно не форматировать swap иначе измениться UUID раздела прийдется изменять fstab или прописать в fstab точку монтирования без UUID.

      Удалить
    3. и разместить его в самом начале HDD где самая большая скорость чтения и записи, а разделы для тестируемых ОС как всегда в конце диска "нарезать", ну не перемещать же /home каждый раз вправо

      Удалить
  14. Файл подкачки будет в "/" размещаться? У меня сейчас три раздела: корневой, раздел подкачки, и /home. Теперь раздел подкачки можно будет удалить, у меня он 3 Гб, нужно ли увеличить корневой раздел, учитывая, что файл подкачки будет там? И на сколько увеличить? Или же эти 3 ГБ добавить к домашней директории. Корневой раздел у меня всего 20 Гб.

    ОтветитьУдалить