Как увеличить пространство подкачки?

У меня по умолчанию 250 МБ свободного места подкачки в Ubuntu, и я хочу увеличить его до большего размера. Мне нужно 800 МБ, чего, я думаю, будет достаточно, чтобы открыть несколько приложений без необходимости превышать текущий лимит подкачки. Я надеюсь, что кто-нибудь сможет мне помочь.

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

На следующих этапах измените /media/fasthdd/swapfile.img на все, что вам нравится. Например, это может быть /swap.img также. /media/fasthdd/swapfile.img это просто пример имени файла. Если вы используете этот, то, конечно, должен быть каталог /media/fasthdd/ с достаточным количеством свободного места для вашего нового файла подкачки.

Используйте любое приложение терминала для выполнения команд, описанных в следующих шагах. Все команды должны быть выполнены с правами суперпользователя. Для этого вы можете либо добавить sudo к началу каждой команды или запуска sudo bash перед выполнением команд.

  1. Создайте пустой файл:

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

    dd if=/dev/zero of=/media/fasthdd/swapfile.img bs=1024 count=1M

    Если вы хотите создать файл 3GiB, то измените значение count на count=3M. Смотри man dd для получения дополнительной информации.

  2. Запеките файл подкачки:

    Следующая команда создаст "файловую систему подкачки" внутри вашего нового файла подкачки.

    mkswap /media/fasthdd/swapfile.img
  3. Воспитывать при загрузке:

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

    # Add this line to /etc/fstab/media/fasthdd/swapfile.img swap swap sw 0 0
  4. Активировать:

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

    swapon /media/fasthdd/swapfile.img

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

$ cat /proc/swapsFilename                           Type       Size    Used    Priority/media/fasthdd/swapfile.img        file       8388604 2724    -1$ grep 'Swap' /proc/meminfoSwapCached:         4772 kBSwapTotal:       8388604 kBSwapFree:        8355812 kB

Измените размер подкачки до 8 ГБ

# Turn swap off# This moves stuff in swap to the main memory and might take several minutessudo swapoff -a# Create an empty swapfile# Note that "1G" is basically just the unit and count is an integer.# Together, they define the size. In this case 8GB.sudo dd if=/dev/zero of=/swapfile bs=1G count=8# Set the correct permissionssudo chmod 0600 /swapfilesudo mkswap /swapfile  # Set up a Linux swap areasudo swapon /swapfile  # Turn the swap on

Проверьте, сработало ли это

grep Swap /proc/meminfo

Графический метод увеличения размера раздела подкачки

Другой способ увеличить размер подкачки - использовать Редактор разделов GParted. Короче говоря, вы изменяете размер раздела подкачки, затем щелкаете по нему правой кнопкой мыши и выбираете "Swapon".

Проще загрузить gparted-live-disk или Ubuntu live disk (чтобы все /dev/sda разделы будут размонтированы). Если вы запускаете Ubuntu live disk в некоторых версиях до 18.04, вам может потребоваться установить gparted выполнив приведенные ниже команды:

sudo apt-get updatesudo apt-get install gparted && sudo gparted

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

Случай 1 - нераспределенное пространство, присутствующее до или после раздела подкачки

GParted partitions

На приведенном выше скриншоте у меня было 11,4 ГБ нераспределенного пространства до раздела подкачки linux и 12,8 ГБ после раздела подкачки.

  • Чтобы изменить размер, щелкните правой кнопкой мыши раздел подкачки (здесь/dev/sda9) и выберите опцию Изменить размер/Переместить. Это будет выглядеть примерно так:

    enter image description here

  • Перетаскивая стрелки ползунка влево или вправо, затем нажмите на кнопку Изменить размер / Переместить. Размер вашего раздела подкачки будет изменен.


Случай 2 - нераспределенное пространство находится между разделами

enter image description here

На приведенном выше скриншоте нераспределенное пространство, которое мы хотим добавить в раздел подкачки, находилось между dev/sda7 и /dev/sda8.Чтобы переместить нераспределенное пространство из этого раздела в раздел подкачки чуть выше, мы должны выполнить простые шаги, приведенные ниже,

  • Щелкните правой кнопкой мыши на разделе /dev/sda8 и нажмите на Изменение размера/Перемещение вариант.

    enter image description here

  • щелкните и переместите ползунок в крайнее левое положение, чтобы нераспределенное пространство, которое было чуть выше /dev/sda8 раздел будет приведен ниже /dev/sda8.После этого нажмите кнопку Изменить размер/Переместить.

  • И теперь нераспределенное пространство находилось чуть выше раздела подкачки, который был похож Случай 1.Теперь следуйте Примеру 1.


Случай 3 - если нераспределенное пространство присутствовало за пределами расширенного раздела)

enter image description here

У меня было нераспределенное пространство в 18 ГБ чуть ниже расширенный раздел.Чтобы добавить это пространство в раздел linux-swap (который присутствовал внутри расширенного раздела), мы должны выполнить следующие действия,

  • Щелкните правой кнопкой мыши на расширенном разделе и выберите Изменение размера/Перемещение вариант, он будет выглядеть как на приведенном ниже скриншоте

    enter image description here

  • Щелкните и перетащите стрелку в крайнее правое положение и нажмите на Изменение размера/Перемещение, так что нераспределенное пространство в размере 18 ГБ будет находиться в нижней части расширенного раздела.У меня было 14,80 ГБ нераспределенного пространства, уже присутствующего внизу, и теперь 18,34 ГБ объединяются с этим, чтобы создать нераспределенное пространство (18,34 + 14,80 ГБ) в нижней части расширенного раздела.

  • Теперь там было нераспределенное пространство чуть ниже раздела подкачки, это будет выглядеть так Случай 1, затем следуйте примеру 1.

ПРИМЕЧАНИЕ: Не забудьте сделать резервную копию всех ваших важных данных, прежде чем приступить к вышеуказанным операциям.

Вы также можете использовать fallocate если вы хотите зарезервировать место для вашего файла подкачки, без необходимости заполнять файл с 0 до dd.

Из man страница:

DESCRIPTION   fallocate is  used to preallocate blocks  to a file.   For filesystems  which support the  fallocate system   call, this is done  quickly by allocating blocks and   marking them  as uninitialized,  requiring no  IO to   the data blocks. This is much faster than creating a   file by filling it with zeros.

Если у вас уже есть swap определенный, вы можете либо удалить его, либо сохранить, и ваш *nix будет управлять им (еще лучше с помощью определения swapon приоритет). Это может быть полезно, если вы хотите распределить обмен между различными устройствами, дисками (в зависимости от их скорости или других пользовательских потребностей, см. Какова цель нескольких файлов подкачки в StackExchange).

Простой fallocate использование для добавления второго файла подкачки

Проверьте ситуацию подкачки:

$ sudo swapon -sFilename                Type        Size    Used    Priority/swapfile               file        262140  246276  -1

Создайте файл подкачки 4G

Стандартный способ создания и активации файла подкачки:

size="4G"file_swap=/swapfile_$size.imgsudo touch $file_swapsudo fallocate -l $size /$file_swapsudo mkswap /$file_swapsudo swapon -p 20 /$file_swap

Однострочный:

$ size="4G" && file_swap=/swapfile_$size.img && sudo touch $file_swap && sudo fallocate -l $size /$file_swap && sudo mkswap /$file_swap && sudo swapon -p 20 /$file_swap

Сделайте ваш обмен постоянным

Добавьте строку в свой /etc/fstab файл, чтобы подкачка была инициализирована при следующей перезагрузке (мы также обновляем здесь приоритет вновь созданного пространства подкачки и обновляем приоритет старого файла подкачки).

В вашем файле /etc/fstab обратите внимание, что приоритет предыдущей подкачки теперь равен 10.

/swapfile    none    swap    sw,pri=10      0       0/swapfile_4G.img     none    swap    sw,pri=20      0       0

Проверьте ситуацию подкачки после перезагрузки:

$ sudo swapon  -sFilename       Type     Size        Used    Priority/swapfile      file     262140      0       10/swapfile_4G.img       file     4194300     0       20

Удалите одно из пространств подкачки (например, исходное 256 Мб).

Редактировать /etc/fstab

Удалите строку, связанную с подкачкой, которую вы хотите удалить.

Удалите этот обмен

Удалите и удалите файл подкачки.

sudo swapoff /mnt/swapfile && sudo rm /mnt/swapfile

Ресурсы:

В моем случае у меня уже был файл подкачки, который, как я думал, составлял 1 ГБ, но когда я посмотрел на него более внимательно, он был размером всего 256 МБ, и при предварительной компиляции моих ресурсов rails на сервере заканчивалась память

Errno::ENOMEM: Cannot allocate memory - nodejs

Я создал свой файл подкачки, как описано здесь: https://stackoverflow.com/a/34885004/784318

Теперь строка, которая создает пустой файл с именем /swapfile заключается в следующем:

sudo dd if=/dev/zero of=/swapfile bs=1024 count=256k

Теперь, чтобы изменить размер файла подкачки, мне нужно было выполнить следующие простые шаги:

# Reboot the system to be able to switch swapping offsudo reboot# Turn swap offsudo swapoff -a# Delete the `/swapfile`rm -f /swapfile# Recreate the swapfile but with double file size memorysudo dd if=/dev/zero of=/swapfile bs=1024 count=512k# Turn swap back onsudo swapon -s# Change the permission to non-world-readablesudo chown root:root /swapfile sudo chmod 0600 /swapfile# Use the swap filesudo mkswap /swapfilesudo swapon /swapfile

Файл был создан (536870912 / 1024 / 1024 = 512 МБ):

ls -lia /swapfile 
768 -rw------- 1 root root 536870912 Apr 27 07:54 /swapfile

С помощью free -m командой я мог видеть, что размер файла теперь составляет 512 МБ, как и ожидалось:

Я нашел следующее видео очень интересным и простым подходом к увеличению размера файла подкачки. Ознакомьтесь с этим коротким видеоуроком: Как увеличить подкачку в Ubuntu Linux | Руководство по Linux

(Из этого видео) ниже приведен способ увеличения пространства подкачки (если ваша система использует swapfile):

Сначала проверьте размер подкачки в вашей системе Linux:

swapon --show

Пример вывода:

NAME      TYPE   SIZE USED PRIO/swapfile file 797.2M   0B   -2

Этот вывод показывает используемый размер подкачки и тип подкачки. Здесь тип подкачки - это тип "файла" (это также может быть тип раздела).Ubuntu использует swapfile по умолчанию увеличивать и уменьшать его размер довольно просто.

Поскольку мы собираемся изменить swapfile поэтому сначала выключите его:

sudo swapoff /swapfile

Теперь, если ты побежишь swapon --show он ничего не покажет, так как он выключен.

Теперь измените размер подкачки (я делаю его 4 ГБ, для n ГБ сделайте его nG):

sudo fallocate -l 4G /swapfile

Теперь, если вы проверите файл, вы увидите, что его размер увеличился. Чтобы увидеть это:

ls -lh /swapfile

Теперь скажите системе Linux использовать этот файл в качестве системы подкачки:

sudo mkswap /swapfile

Это приведет к удалению старой подписи подкачки и использованию новой.

Теперь, чтобы включить подкачку (как мы изначально отключили пространство подкачки):

sudo swapon /swapfile

Сделано!

Теперь используйте swapon --show или free -h чтобы увидеть перемены.

Как добавить файл подкачки

  1. Создать файл .img

     sudo dd if=/dev/zero of=/swap.img bs=1M count=1000

    примечание!: bs=1M count=1000 ==> 1GB
    (bs * count = размер в мегабайтах )

    Другой пример:

    sudo dd if=/dev/zero of=/swap.img bs=10M count=100 
  2. Формат файла .img

    sudo mkswap /swap.img
  3. Включить файл подкачки

    sudo swapon /swap.img
  4. Добавить файл подкачки в fstab
    Добавьте эту строку в свой fstab (/etc/fstab):

    /swap.img   none            swap    sw              0       0

Если вы хотите изменить размер раздела подкачки и не хотите создавать файл подкачки, то

  1. Загрузите установочный носитель Ubuntu в режиме реального времени, выбрав Попробуйте Ubuntu

  2. Откройте GParted или другой менеджер разделов, если вы используете Kubuntu, Lubuntu и т.д.

  3. Отключить подкачку:enter image description here

  4. Измените размер основного раздела (в моем случае я делал это для /dev/sda2) , уменьшив его

  5. Измените размер раздела подкачки, сделав его больше

  6. Включите подкачку с помощью того же контекстного меню и Свапон кнопка

  7. Перезагрузитесь в обычную сессию Ubuntu

  8. Откройте терминал и посмотрите, изменился ли размер подкачки:

     $ sudo swapon --show [sudo] password for user:  NAME      TYPE      SIZE   USED PRIO /dev/sda3 partition   2G 129.3M   -2

Это не изменилось. Чтобы изменить его, выполните следующие действия:

  1. Отключить подкачку:

     $ sudo swapoff /dev/sda3
  2. Воссоздать своп:

    $ sudo mkswap /dev/sda3 mkswap: /dev/sda3: warning: wiping old swap signature.Setting up swapspace version 1, size = 10 GiB (10788794368 bytes)no label, UUID=2e315546-04f7-4db6-8ca9-25f36f4ee960
  3. Включить подкачку:

    $ sudo swapon /dev/sda3
  4. Проверьте его размер:

    $ free -m              total        used        free      shared  buff/cache   availableMem:          15948       13008         301         670        2638        2006Swap:         10288           0       10288
  5. Проверьте UUID вашего раздела подкачки:

    blkid | grep swap
  6. Заменять UUID в /etc/fstab файл для менять раздел на правильный:

    user@pc:~$ blkid | grep swap/dev/sda3: UUID="e434f979-8861-4bd3-888c-824de39d739a" TYPE="swap" PARTUUID="3ca528d4-db6c-4ed6-ae95-94729e3f609c"user@pc:~$ cat /etc/fstab | grep swap#UUID=add18f30-c662-4e5c-bfc7-62f4d012fb2e none swap sw 0 0UUID=e434f979-8861-4bd3-888c-824de39d739a none swap sw 0 0

    Я только что прокомментировал старую запись и создал новую запись с правильным UUID от blkid вывод команды.

У меня есть zfs, и это сработало для меня.

sudo zfs create -V 8G -b $(getconf PAGESIZE) -o logbias=throughput -o sync=always -o primarycache=metadata -o com.sun:auto-snapshot=false rpool/swap

sudo mkswap -f /dev/zvol/rpool/swap

sudo swapon /dev/zvol/rpool/swap

В /etc/fstab Я добавил эту строку (с табуляцией в качестве пробелов):

/dev/zvol/rpool/swap none swap discard 0 0

Пожалуйста, откройте Gparted и опубликуйте скриншот того, что вы видите здесь.

Если ваш раздел подкачки можно расширить на соседнее нераспределенное пространство, используйте gparted. Если такое пространство недоступно, возможно, потому, что ваш активный (загруженный) раздел использует все пространство без подкачки, то “gparted” не позволит вам уменьшить размер активного раздела, чтобы создать нераспределенное пространство. В этом случае вы можете переустановить Ubuntu, чтобы создать большее пространство подкачки.