Команда IT специалистов выполнит подготовку инфраструктуры для вашего бизнеса.
Внедрение самых передовых решений и технологий.
Поддержка и сопровождение ваших сервисов.
Выполнение работ под "ключ", от покупки сервера, до настройки автоматизации процессов.
8(977)608-78-62 adm@nixm.ru

swap

Olej

Re: swap

Сообщение Olej »

Olej писал(а): 2. Наверное все знают другом способе - использовании для swap файла в файловой системе. Объявлено, что в Ubuntu последних версий этот способ используется по умолчанию.
Создание и использование swapfile хорошо известно и описано. Общая схема выглядит так:
1. Создать сам файл:

Код: Выделить всё

[olej@dell 17]$ sudo dd if=/dev/zero of=/swapfile bs=1M count=500
[sudo] пароль для olej:
500+0 записей получено
500+0 записей отправлено
 скопировано 524288000 байт (524 MB), 0,239128 c, 2,2 GB/c

[olej@dell 17]$ ls -l /swapfile
-rw-r--r-- 1 root root 524288000 апр 17 20:38 /swapfile
2. Создать структуру свап-файла (разметка, форматирование?):

Код: Выделить всё

[olej@dell 17]$ sudo mkswap /swapfile
mkswap: /swapfile: insecure permissions 0644, 0600 suggested.
Setting up swapspace version 1, size = 500 MiB (524283904 bytes)
без метки, UUID=ab4a48f4-1fdd-4486-850c-c8f4817cc747
3. Подключить его как swap:

Код: Выделить всё

[olej@dell 17]$ sudo swapon /swapfile
swapon: /swapfile: insecure permissions 0644, 0600 suggested.
swapon: /swapfile: swapon failed: Недопустимый аргумент
4. Первую ошибку легко устранить:

Код: Выделить всё

[olej@dell 17]$ sudo chmod 0600 /swapfile
[olej@dell 17]$ ls -ln /swapfile
-rw------- 1 0 0 524288000 апр 17 20:40 /swapfile
... повторяем подключение swap:

Код: Выделить всё

[olej@dell 17]$ sudo swapon /swapfile
swapon: /swapfile: swapon failed: Недопустимый аргумент
Вот так! Облом... :cry:
Ответ находим:

Код: Выделить всё

[olej@dell ~]$ man swapon
...
       swapon may not work correctly when using a swap file with some versions of btrfs.  This is due to btrfs being a copy-
       on-write filesystem: the file location may not be static and corruption can result.  Btrfs actively disallows the use
       of swap files on its filesystems by refusing to map the file.
...
[olej@dell 17]$ mount | grep /dev/sd
/dev/sda5 on / type btrfs (rw,relatime,space_cache,subvolid=257,subvol=/root)
/dev/sda3 on /boot type ext4 (rw,relatime,data=ordered)
На btrfs создать swap нельзя! :?
Olej

Re: swap

Сообщение Olej »

Olej писал(а):На btrfs создать swap нельзя! :-o
А теперь то же самое, но на другой системе с традиционной ext4:

Код: Выделить всё

olej@nvidia ~ $ mount | grep sd
/dev/sda1 on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)
/dev/sda2 on /home type ext4 (rw,relatime,data=ordered)
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)

olej@nvidia ~ $ swapon -s
Filename				Type		Size	Used	Priority
/dev/sda3                              	partition	4606972	0	-1

olej@nvidia ~ $ free
              total        used        free      shared  buff/cache   available
Память:     4045840      472432     2633704       25404      939704     3300720
Подкачка:     4606972           0     4606972
Повторяем ту же последовательность:

Код: Выделить всё

olej@nvidia ~ $ sudo dd if=/dev/zero of=/swapfile bs=1M count=500
[sudo] пароль для olej: 
500+0 записей получено
500+0 записей отправлено
524288000 байт (524 MB, 500 MiB) скопирован, 0,60167 s, 871 MB/s

olej@nvidia ~ $ sudo mkswap /swapfile
Setting up swapspace version 1, size = 500 MiB (524283904 bytes)
без метки, UUID=664baecc-ec29-42de-a0d1-1e89499c09da

olej@nvidia ~ $ sudo chmod 0600 /swapfile

olej@nvidia ~ $ ls -l /swapfile 
-rw------- 1 root root 524288000 Апр 17 21:45 /swapfile
Подключаем:

Код: Выделить всё

olej@nvidia ~ $ sudo swapon -va /swapfile
swapon /swapfile
swapon: /swapfile: found swap signature: version 1d, page-size 4, same byte order
swapon: /swapfile: pagesize=4096, swapsize=524288000, devsize=524288000

olej@nvidia ~ $ swapon -s
Filename				Type		Size	Used	Priority
/dev/sda3                              	partition	4606972	0	-1
/swapfile                              	file    	511996	0	-2

olej@nvidia ~ $ free
              total        used        free      shared  buff/cache   available
Память:     4045840      472668     2633388       25404      939784     3300448
Подкачка:     5118968           0     5118968
Теперь используются одновременно 2 swap ... пространства.
А теперь старый раздел убираем из swap:

Код: Выделить всё

olej@nvidia ~ $ sudo swapoff /dev/sda3

olej@nvidia ~ $ swapon -s
Filename				Type		Size	Used	Priority
/swapfile                              	file    	511996	0	-1

olej@nvidia ~ $ free
              total        used        free      shared  buff/cache   available
Память:     4045840      474000     2631852       25404      939988     3299188
Подкачка:      511996           0      511996
Ответить

Вернуться в «Ядро, модули и конфигурация»