LINUX.ORG.RU

Работа со swap разделом в Fedora [SOLVED]

 , ,


0

1

Добрый день, пособите пожалуйста.

Дано: Dell Inspiron 3162, 2gb ram, SSD. Fedora 33, ставилась на чистый диск «автоматом».

Система, вопреки написанному в своей же документации, сделала отдельный раздел swap на 900 с копейками мегов.

[alex@localhost ~]$ swapon --show

NAME       TYPE      SIZE  USED PRIO

/dev/zram0 partition 937M 31,5M  100

Разумеется, поскольку Федора чрезвычайно прожорлива к оперативке - работает это все отвратительно, браузер на четыре вкладки доедает всю свободную память.

Вопрос - как увеличить своп?

Мне все равно будет ли это файл или раздел, важно, чтобы работало.

Я так понял, мне нужно:

  1. отключить действующий раздел (sudo swapoff /swapfile, верно?)
  2. создать файл с нужным размером (dd if=/dev/zero of=/swapfile bs=1M count=4096 ?)
  3. сделать его свопом (sudo mkswap /swapfile)
  4. включить своп (sudo swapon /swapfile).

Вопросов несколько:

  1. будет ли эта портянка работать после ребута?
  2. что станет с разделом подкачки? он отключится насовсем?
  3. Вообще в верную ли я сторону копаю (чет не могу понять, как так - лезу в систему и systemd ни разу не трогаю, неужели так бывает)?

PS:

PS: Решение проблемы подсказали в теме.

В деталях - у федоры по умолчанию ставится файловая система btrfs, которая поддерживает особый тип своп файлов, через что нужно поплясать.

Создаем отдельный подтом в домашнем каталоге:

btrfs subvolume create /home/alex/swap

Заходим в него

cd /home/alex/swap

Создаем пустой свопфайл с именем swapfile, внезапно:

truncate -s 0 ./swapfile

Задаем ему необходимые для такого типа файлов параметры:

chattr +C ./swapfile

, а затем:

btrfs property set ./swapfile compression none

Затем прогоняем стандартную процедуру.

Наполняем свопфайл до нужного размера:

sudo dd if=/dev/zero of=/home/alex/swap/swapfile bs=1M count=4096

Даем ему нужные права, а затем подключаем в качестве свопа:

sudo mkswap /home/alex/swap/swapfile && sudo chmod 600 
/home/alex/swap/swapfile && sudo swapon /home/alex/swap/swapfile

Мне непонятно почему, но при исполнении этих команд путь до файла нужно указать полный.

После этого результат можно проверить командами:

swapon --summary

и

free -h

Полный вывод команд, равно как и ссылки на справочную информацию можете найти внизу, в обсуждениях.

Удачи!

zram0 - не своп на диске, а сжатые данные в оперативке. Чтобы тебе добавить свопфайл на диске, то

sudo fallocate -l 4096M /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

Чтобы работало после ребута, в /etc/fstab добавить строчку вида

/swapfile none swap defaults 0 0

veyayawet ()
Ответ на: комментарий от veyayawet

Если хочешь убрать zram0 совсем (не рекомендую, на самом деле, у самого работает и проблем не испытываю), нужно удалить пакет zram-generator или создать пустой файл /etc/systemd/zram-generator.conf

veyayawet ()
Ответ на: комментарий от anonymous

У меня не работает на SSD, но работает на HDD. Там и там ext4. Впрочем, у топик стартера ССД и возможно в таком случае нужно будет действительно использовать dd

veyayawet ()
Последнее исправление: veyayawet (всего исправлений: 1)
Ответ на: комментарий от veyayawet

Спасибо. Попробовал.

Выдало так:

[alex@localhost ~]$ sudo fallocate -l 4096M /swapfile
[sudo] пароль для alex: 
[alex@localhost ~]$ sudo chmod 600 /swapfile
[alex@localhost ~]$ sudo mkswap /swapfile
Setting up swapspace version 1, size = 4 GiB (4294963200 bytes)
без метки, UUID=ed72242b-f098-46b0-8a66-c31630825ec6
[alex@localhost ~]$ sudo swapon /swapfile
swapon: /swapfile: swapon failed: Недопустимый аргумент

Последнее сейчас гуглю.

ludi_vokrug ()
Ответ на: комментарий от veyayawet

через dd та же история.

Нагуглил: https://i-notes.org/centos-7-swapon-failed-invalid-argument/

По их мнению - все решит дд, но…

[alex@localhost ~]$ sudo dd if=/dev/zero of=/swapfile bs=1M count=4096
4096+0 записей получено
4096+0 записей отправлено
4294967296 байт (4,3 GB, 4,0 GiB) скопирован, 17,2748 s, 249 MB/s
[alex@localhost ~]$ sudo chmod 600 /swapfile
[alex@localhost ~]$ sudo mkswap /swapfile
Setting up swapspace version 1, size = 4 GiB (4294963200 bytes)
без метки, UUID=472866b2-ea18-4ed6-b276-2dcb3840e70e
[alex@localhost ~]$ sudo swapon /swapfile
swapon: /swapfile: swapon failed: Недопустимый аргумент
ludi_vokrug ()
Ответ на: комментарий от anonymous

ок, вот тебе юзеркейс - mojosetup, используемый в установщике GOG падает при попытке его загрузить. Памяти не хватает.

Игра Crusader Kings 2 не загружается, памяти не хватает. OpenMW падает при загрузке сейва - памяти не хватает.

Все это работало на этом же железе под openSUSE Tumbleweed.

Это я не холивара для, говносайты тоже ужас, но тут конкретно разрабы федоры - олухи, которым плевать на то, что у людей компьютеры не такие, какими они их себе представляют.

Лучший показатель - часть разрабов федоры сидит в GNOME Foundation, которые уже кучу лет не способны снизить потребление Гнома и только талдычат о том, что у них все в порядке.

Просто им плевать и нет никого, кто бы мог их заставить быть людьми и думать о людях.

Именно потому у них установщик по умолчанию плюет на то, что написано у них же в документации по поводу свопа и делает к 2 gb реальной RAM своп на 1 гиг.

А потом плюет на все еще раз и зачем-то по умолчанию ставит не ext4, а btrmfs, которая на данный момент больше напоминает альфаверсию файловой системы, но почему-то по дефолту.

Соррян за экспрессию, у меня полдня сполшные открытия. Никогда в жизни больше не доверю установщику что-то в системе там самому настраивать.

ludi_vokrug ()
Ответ на: комментарий от anonymous

ох, да. Уже нашел, спасибо.

Тем не менее - оно даже после бубна и подтома тупо не срабатывает.

[alex@localhost ~]$ btrfs subvolume create /home/alex/swap
Create subvolume '/home/alex/swap'
[alex@localhost ~]$ cd /home/alex/swap
[alex@localhost swap]$ truncate -s 0 ./swapfile
[alex@localhost swap]$ chattr +C ./swapfile
[alex@localhost swap]$ btrfs property set ./swapfile compression none
[alex@localhost swap]$ sudo dd if=/dev/zero of=/swapfile bs=1M count=4096
4096+0 записей получено
4096+0 записей отправлено
4294967296 байт (4,3 GB, 4,0 GiB) скопирован, 21,5107 s, 200 MB/s
[alex@localhost swap]$ sudo mkswap /swapfile && sudo chmod 600 /swapfile && sudo swapon /swapfile
mkswap: /swapfile: предупреждение: очистка старой сигнатуры swap.
Setting up swapspace version 1, size = 4 GiB (4294963200 bytes)
без метки, UUID=a3b75e0e-2994-4df7-a075-5033bf568d90
swapon: /swapfile: swapon failed: Недопустимый аргумент
ludi_vokrug ()
Ответ на: комментарий от anonymous

Cпасибо тебе добрый анонимус.

Я не понял почему так, я вроде работаю в каталоге swap, но системе как-то видимо пофиг в данном случае. Как только задал всем командам абсолютные пути - оно поехало кое-как вперед.

[alex@localhost swap]$ sudo dd if=/dev/zero of=/home/alex/swap/swapfile bs=1M count=4096
4096+0 записей получено
4096+0 записей отправлено
4294967296 байт (4,3 GB, 4,0 GiB) скопирован, 10,7036 s, 401 MB/s
[alex@localhost swap]$ sudo mkswap /home/alex/swap/swapfile && sudo chmod 600 /home/alex/swap/swapfile && sudo swapon /home/alex/swap/swapfile
mkswap: /home/alex/swap/swapfile: insecure permissions 0664, 0600 suggested.
mkswap: /home/alex/swap/swapfile: insecure file owner 1000, 0 (root) suggested.
Setting up swapspace version 1, size = 4 GiB (4294963200 bytes)
без метки, UUID=25e5a573-ab9f-4cd7-bf4c-5be88857001d
swapon: /home/alex/swap/swapfile: insecure file owner 1000, 0 (root) suggested.
[alex@localhost swap]$ swapon --summary
Имя файла				Тип		Размер	Исп-но	Приоритет
/dev/zram0                             	partition	959484	786532	100
/home/alex/swap/swapfile               	file    	4194300	0	-2
[alex@localhost swap]$ free -h
              total        used        free      shared  buff/cache   available
Mem:          1,8Gi       1,1Gi        76Mi       253Mi       642Mi       314Mi
Swap:         4,9Gi       764Mi       4,2Gi

Меня в данном случае смущает ругань на «insecure», но технически - цель достигнута, свопфайл появился и работает.

ludi_vokrug ()
Последнее исправление: ludi_vokrug (всего исправлений: 2)