Не может увеличить размер подкачки: своп-файл, кажется, имеет дыры

Править: Я сдался для борьбы с 19,10. Из-за моего исследования это имеет серьезные ошибки особенно с 5,3 ядрами. Слишком много у людей есть те же проблемы и нет только одного решения, которое не будет работать на меня. Я попробую 18 lts версий.

Я использую Ubuntu 19.10 с 5.3.26 ядрами и имею 4 ГБ RAM, но мой размер подкачки составляет 2 ГБ RAM. Моя система замораживает почти все время. Так, я решил увеличить размер подкачки, но у меня есть ошибка как этот.

Я использовал эти команды:

sudo dd if=/dev/zero of=/swapfile bs=1G count=4
sudo chmod 600 /swapfile
sudo mkswap /swapfile

Это хорошо до последней части:

sudo swapon /swapfile

Когда я использовал последнюю команду, она говорит:

swapon: /swapfile: skipping - it appears to have holes.

Это - вывод lsblk

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
├─sda1   8:1    0   512M  0 part /boot/efi
├─sda2   8:2    0    50M  0 part /boot/grub
├─sda3   8:3    0     2G  0 part [SWAP]
├─sda4   8:4    0     2G  0 part 
└─sda5   8:5    0 114,7G  0 part 

Это - вывод df

Filesystem     Type     1M-blocks  Used Available Use% Mounted on
/dev/sda1      vfat           511     8       504   2% /boot/efi
/dev/sda2      ext4            45     8        33  20% /boot/grub
udev           devtmpfs      1883     0      1883   0% /dev
udev           devtmpfs      1883     0      1883   0% /dev
udev           devtmpfs      1883     0      1883   0% /dev
2
задан 29 January 2020 в 10:58

2 ответа

Сообщество Ubuntu SwapFAQ показывает использование fallocate как начальный и более быстрый подход, только возвращаясь dd если fallocate сбои.

Пример дан (1 ГиБ):

$ sudo swapoff -a
$ sudo fallocate -l 1g /mnt/1GiB.swap
$ sudo chmod 600 /mnt/1GiB.swap
$ sudo mkswap /mnt/1GiB.swap
Setting up swapspace version 1, size = 1048576 kB
$ sudo swapon /mnt/1GiB.swap
$ cat /proc/swaps 
Filename                                Type            Size    Used    Priority
/home/swapfile                          file            1048576 1048576 -1
$ echo '/mnt/4GiB.swap swap swap defaults 0 0' | sudo tee -a /etc/fstab
$ reboot
$ free -h
              total        used        free      shared  buff/cache   available
Mem:            15G        9.3G        454M        4.0G        5.8G        1.9G
Swap:          1.0G        0B          1.0G

Ваш случай (4 ГиБ) - Используя fallocate:

$ sudo swapoff -a
$ sudo fallocate -l 4G /yourswapfile
$ sudo chmod 600 /yourswapfile
$ sudo mkswap /yourswapfile
$ sudo swapon /yourswapfile
$ echo '/yourswapfile swap swap defaults 0 0' | sudo tee -a /etc/fstab
$ free -h

Ваш случай (4 ГиБ) - Используя dd:
Примечание: Тот же процесс Вы использовали кроме меньшего bs значение (байты чтения-записи за один раз) для сокращения возможности дыр в своп-файле. Я также добавил status=progress который показывает периодическую статистику передачи.

$ sudo swapoff -a
$ sudo dd if=/dev/zero of=/yourswapfile bs=1M count=4096 status=progress

Примечание: Если bs=1M count=4096 является слишком медленным, попробовать bs=4M count=1024

2
ответ дан 30 January 2020 в 23:31

Использование файлов для области подкачки является относительно новым для Ubuntu. Ранее, когда раздел подкачки использовался, блоки были, конечно, непрерывны, но файл не имеет такой гарантии своих блоков. По-видимому, было некоторое усилие допускать разрывы, но могут быть пределы на то, что может быть обработано. См. примечание в конце "человека mkswap" страница руководства:

Note that a swap file must not contain any holes.  Using cp(1) to create the file is not acceptable.  Neither is  use  of
       fallocate(1)  on  file systems that support preallocated files, such as XFS or ext4, or on copy-on-write filesystems like
       btrfs.  It is recommended to use dd(1) and /dev/zero in these cases.  Please read notes from swapon(8)  before  adding  a
       swap file to copy-on-write filesystems.  

Непосредственная фиксация должна просто перераспределить некоторый раздел для выделения 4G разделу подкачки и mkswap на ней.

0
ответ дан 30 January 2020 в 23:31

Другие вопросы по тегам:

Похожие вопросы: