LINUX.ORG.RU

Swap раздел не заполняется

 


0

2

Есть swap раздел виден системой и UUID в /etc/fstab написан правильно, но он постоянно пустой и не заполняется. Хочу понять может быть что-то я сделал не правильно при монтировании, и может быть мне лучше удалить этот раздел и сделать swap файл. Сижу на Arch Linux, метка диска GTP строка fstap с swap

/dev/sda3 LABEL=swap

UUID=7f2e8692-0f89-4369-80ce-78ba53e9cd79 none swap sw 0 0



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

Есть swap раздел виден системой и UUID в /etc/fstab написан правильно, но он постоянно пустой и не заполняется.

Ну и хорошо. Сколько free -h показывает в Used? Как значение начнет приближаться к размеру ОЗУ, своп будет использоваться. Также своп используется при гибернации.

Примонтировать tmpfs-каталог с опцией size побольше, залить в него много гигабайт и посмотреть на free.

Ecl
()

Командой swapon --show обрати внимание на столбик SIZE

NAME TYPE SIZE USED PRIO
/swp file   4G   0B   -2

Если в нём есть размер, то swap смонтирован, а не используется он у тебя потому что физической ОЗУ вагон, либо не нагрузил ничем серьёзным

P.S> Давно уже юзаю свап-файл вместо раздела. Так удобнее. ИМХО

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

Что означает sw?

Эта опция монтирования, в процессе загрузки системы и чтении файла /etc/fstab, сообщает команде swapon, что надо использовать твой UUID либо файл как пространство подкачки

Shprot ★★
()
Ответ на: комментарий от nikak

Я правильно понимаю, что swap будет использоваться в последнюю очередь?

Всё зависит от того, какие значения укажешь в параметре vm.swappiness файла /etc/sysctl.conf. По умолчанию у тебя там стоит 60, но это уже совсем другая история.

Shprot ★★
()
Ответ на: комментарий от nikak

Значит что-то забыл, потому что fstab выглядит нормально. mkswap /dev/sda3 && swapon -a делал? Только если сейчас это будешь делать, не забудь в fstab поменять uuid на новый.

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

смотрел на мониторинг системы и он пустой

Я тоже посмотрел, файл подкачки ни разу не был задействован с времени его создания:

$ stat /swapfile
  File: /swapfile
  Size: 4294967296	Blocks: 8388616    IO Block: 4096   regular file
Device: 259,4	Inode: 18          Links: 1
Access: (0600/-rw-------)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2024-02-09 11:35:31.546587831 +0300
Modify: 2024-02-09 11:35:31.563254766 +0300
Change: 2024-02-09 11:35:31.563254766 +0300
 Birth: 2024-02-09 11:35:31.546587831 +0300

$ swapon --show        
NAME      TYPE SIZE USED PRIO
/swapfile file   4G   0B   -2
dmitry237 ★★★★
()
Ответ на: комментарий от nikak

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

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

Только что, случайно выяснилось, как писал Ecl, как только оперативная память заполнилась полностью, заполнился swap на 500KB, и мое представление об этом разделе было ошибочно. Спасибо всем, что помогли разобраться. Буду дальше сам разбираться в этой теме.

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

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

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

Если заботишся о здоровье ssd или юзаеш btrfs, то да

Ерунда. Для «здоровья ssd» нет абсолютно никакой разницы между своп-разделами и своп-файлами. От btrfs тоже ничего не зависит, так как ядро использует своп-файл в обход кода ФС раздела, на котором он находится. Разница между ними в том, что своп-файлы могут фрагментировать свободное пространство на разделе, а своп-раздел всегда отделён.

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

так как ядро использует своп-файл в обход кода ФС раздела

А как это может быть? По логике чтобы записать в файл ядро должно использовать драйвер файловой системы. Иначе как оно понимает, куда именно писать? Я не спец, мне просто интересно.

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

По логике чтобы записать в файл ядро должно использовать драйвер файловой системы. Иначе как оно понимает, куда именно писать?

Тогда своп-файлы возможно было бы создавать на любой ФС, а это не так. Дальше надо смотреть код ядра, может там отдельные интерфейсные функции для работы со своп-файлами, или как-то по-другому это разруливается.

annulen ★★★★★
()
Ответ на: комментарий от CrX

Про опцию sw даже не знал.

Посмотрел arch wiki, man-ы — не увидел такой опции.

https://unix.stackexchange.com/questions/365953/what-sw-means-in-the-fstab-swap-entry-for-mount-options-column

That’s on OpenBSD. On the Ubuntu Linux system that I have access to, neither manual mentions sw as a mount option for swap for some reason.

For Linux, at least, based on a look at the net, this appears to be an example of «cargo culting», which means including code or words in this case for ritualistic or superstitions reasons, even though they may «serve no real purpose.» The evidence I’ve seen suggests that this option isn’t actually necessary or meaningful, but you need to put something there, because the fstab file syntax expects it. You can easily find examples of people using defaults and even just pri=1 or whatever, leaving out both defaults and sw.

greenman ★★★★★
()
Ответ на: комментарий от Shprot

Эта опция монтирования, в процессе загрузки системы и чтении файла /etc/fstab, сообщает команде swapon, что надо использовать твой UUID либо файл как пространство подкачки

А где в доках её можно найти? В мануалах для swapon, mount и fstab я её не встречал…

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

А где в доках её можно найти?

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

define	FSTAB_SW	"sw"		/* swap device */
Shprot ★★
()
Ответ на: комментарий от CrX

Судя по коду util-linux swapon

https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/tree/sys-utils/swapon.c#n712

/* -o <options> or fstab */
static int parse_options(struct swap_prop *props, const char *options)
{
...
	if (mnt_optstr_get_option(options, "nofail", NULL, NULL) == 0)
...
	if (mnt_optstr_get_option(options, "discard", &arg, &argsz) == 0) {
...
	}
...
	if (mnt_optstr_get_option(options, "pri", &arg, &argsz) == 0 && arg) {
...
	}
	return 0;
}

парсер принимает три опции nofail, discard[=...], pri=..., а другие игнорирует (не являются ошибочными).

anonymous
()