Править: Я сдался для борьбы с 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
Сообщество 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
Использование файлов для области подкачки является относительно новым для 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 на ней.