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

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

216
задан 12 January 2014 в 21:14

9 ответов

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

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

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

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

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

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

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

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

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

    mkswap /media/fasthdd/swapfile.img
    
  3. Bring up on boot:

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

    # Добавьте эту строку в /etc/fstab
    /медиа/fasthdd/swapfile.img swap swap swap swap 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
225
ответ дан 22 November 2019 в 22:54

Вы также можете использовать 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.

Если у вас уже определен своп , вы можете удалить его или оставить, и ваш * nix будет управлять им (даже лучше с помощью определения приоритета подкачки ). Это может быть полезно, если вы хотите распределить своп между различными устройствами, дисками (в зависимости от их скорости или других пользовательских требований, см. Какова цель нескольких файлов подкачки на 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

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

$ 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  -s
Filename       Type     Size        Used    Priority
/swapfile      file     262140      0       10
/swapfile_4G.img       file     4194300     0       20

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

Edit / etc / fstab

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

Удалите этот своп

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

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

Ресурсы:

39
ответ дан 22 November 2019 в 22:54

В моем случае у меня уже был файл подкачки размером 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 536870912 27 апр, 07:54 / swapfile
 

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

7
ответ дан 22 November 2019 в 22:54

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

  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 no swap swap sw 0 0
    
3
ответ дан 22 November 2019 в 22:54

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

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

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

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

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

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

GParted partitions

На приведенном выше снимке экрана у меня было 11,4 ГБ нераспределенного пространства до linux-swap и 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 ГБ чуть ниже расширения ded partition . Чтобы добавить это пространство к разделу linux-swap (который находился внутри расширенного раздела), мы должны выполнить следующие шаги:

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

    enter image description here

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

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

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

51
ответ дан 22 November 2019 в 22:54

Изменить размер Переключитесь на 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
24
ответ дан 22 November 2019 в 22:54

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

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

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

swapon --show

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

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

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

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

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 , чтобы увидеть изменения.

0
ответ дан 5 January 2021 в 23:36

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

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

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

  3. Отключите свопинг: enter image description here

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

  5. Изменив размер раздела подкачки, увеличив его

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

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

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

      $ sudo swapon --show
      [sudo] пароль для пользователя:
      ИМЯ ТИП РАЗМЕР ИСПОЛЬЗУЕМЫЕ ПРИО
      / dev / sda3 раздел 2G 129,3M -2
     

Это не изменилось. Чтобы изменить это, сделайте следующее:

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

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

     $ sudo mkswap / dev / sda3
    mkswap: / dev / sda3: предупреждение: стирание старой подписи подкачки.
    Настройка пространства подкачки версии 1, размер = 10 ГиБ (10788794368 байт)
    без метки, UUID = 2e315546-04f7-4db6-8ca9-25f36f4ee960
     
  3. Включить своп:

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

     $ free -m
      общее количество использованных бесплатных общих баффов / кешей
    Mem: 15948 13008 301 670 2638 2006
    Своп: 10288 0 10288
     
  5. Проверьте UUID раздела подкачки:

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

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

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

0
ответ дан 5 January 2021 в 23:36

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

sudo zfs create -V 8G -b $ (getconf PAGESIZE) -o logbias = пропускная способность -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

0
ответ дан 5 January 2021 в 23:36

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

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