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

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

5 ответов

Решение

Вы всегда можете создать файл подкачки

добавить больше пространства подкачки. Это не то же самое (во всех аспектах), как раздел подкачки, но это будет легко и динамично.

+ Изменить /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

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

2. Запекать файл подкачки:
Следующая команда сделает "swap filesystem" внутри вашего нового файла подкачки.

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/swaps
  Filename                           Type       Size    Used    Priority
  /media/fasthdd/swapfile.img        file       8388604 2724    -1

grep 'Swap' /proc/meminfo
  SwapCached:         4772 kB
  SwapTotal:       8388604 kB
  SwapFree:        8355812 kB

Изменить размер Swap до 8 ГБ

# Turn swap off
# This moves stuff in swap to the main memory and might take several minutes
sudo 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

sudo mkswap /swapfile  # Set up a Linux swap area
sudo swapon /swapfile  # Turn the swap on

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

grep Swap /proc/meminfo

GUI метод для увеличения размера раздела подкачки

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

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

sudo apt-get update
sudo apt-get install gparted && sudo gparted

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

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

GParted разделы

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

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

    введите описание здесь

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


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

введите описание здесь

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

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

    введите описание здесь

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

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


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

введите описание здесь

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

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

    введите описание здесь

  • Нажмите и перетащите стрелку в крайнее правое положение и нажмите " Изменить размер / переместить", чтобы нераспределенное пространство в 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 -s
Filename                Type        Size    Used    Priority
/swapfile               file        262140  246276  -1

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

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

$ 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 файл, чтобы своп был инициализирован при следующей перезагрузке (мы также обновляем здесь приоритет вновь созданного пространства подкачки и обновляем приоритет старого файла подкачки

# in your /ets/fstab file
/swapfile    none    swap    sw,pri=10      0       0
/swapfile_4G.img     none    swap    sw,pri=20      0       0

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

$ sudo swapon  -s
Filename       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

Ресурсы:

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

(Из этого видео) следующий способ увеличить пространство подкачки (если ваша система использует файл подкачки):

Сначала проверьте размер свопа вашей 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 ГБ, но когда я посмотрел на него более внимательно, он был размером всего 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 off
sudo reboot

# Turn swap off
sudo swapoff -a

# Delete the `/swapfile`
rm -f /swapfile

# Recreate the swapfile but with double file size memory
sudo dd if=/dev/zero of=/swapfile bs=1024 count=512k

# Turn swap back on
sudo swapon -s

# Change the permission to non-world-readable
sudo chown root:root /swapfile 
sudo chmod 0600 /swapfile

# Use the swap file
sudo mkswap /swapfile
sudo swapon /swapfile

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

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

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

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

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

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

  3. Отключить своп:

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

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

  6. Включите свопинг, используя то же контекстное меню и кнопку Swapon

  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   available
    Mem:          15948       13008         301         670        2638        2006
    Swap:         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 0
    UUID=e434f979-8861-4bd3-888c-824de39d739a none swap sw 0 0
    

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

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

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

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

примечание!: bs = 1M count = 1000 ==> 1GB

(bs * count = размер в мегабайтах)

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

sudo dd if=/dev/zero = = swap.img bs=10M count=100

  1. формат.img файл

    sudo mkswap /swap.img

  2. включить файл подкачки

    sudo swapon /swap.img

  3. добавить файл подкачки в fstab

добавьте эту строку в ваш fstab (/etc/fstab)

/swap.img   none            swap    sw              0       0

У меня есть 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

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