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


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


105
2017-08-21 20:20


происхождения


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


ответы:


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

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

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

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

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

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

140
2017-08-21 20:59



Редактировать /etc/fstab попробуйте это в командной строке: sudo gedit /etc/fstab - Ben
Это очень помогло мне, спасибо вам, сэр. - Breeze
как отключить вновь созданный файл подкачки? - Breeze
получил его своп! - Breeze
Что делать, если у меня нет файла swapimage.img в этом месте? (и нигде в моей системе)? - PaulD


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

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

Легче загружать gparted-live-disk или живой диск Ubuntu (чтобы все /dev/sda разделы будут размонтированы). Если вы запустите живой диск Ubuntu, вам необходимо установить 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 ГБ чуть ниже расширенный раздел. Чтобы добавить это пространство в раздел linux-swap (который присутствовал в расширенном разделе), мы должны выполнить следующие шаги,

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

    enter image description here

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

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

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


30
2017-12-11 06:11



Отличный справочник по инструментам GUI, заслуживает того, что есть. Однако, возможно, должно быть некоторое предупреждение о возможных рисках, связанных с редактированием разделов. Простое руководство по резервированию MBR или ссылка на такой путеводитель были бы отличным дополнением, ошибки могут быть маловероятными, но затраты могут быть высокими + взятие Резервные копии MBR не будет потреблять слишком много времени или пространства и может сэкономить много работы, пространства и времени когда все сделано правильно. - Sampo Sarrala
Не забудьте swapon, щелкните правой кнопкой мыши раздел подкачки swapon - user3752281


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

# 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

Ресурсы:


19
2017-10-09 13:24



1-up для fallocate, намного лучше, чем dd если ваш fs поддерживает его. Те однострочники по-прежнему трудно читать, может быть легче изучить, если они будут разбиты на реальные команды? - Sampo Sarrala


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

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 МБ, как и ожидалось:


3
2018-04-27 12:03



Вы не должны использовать опасный флаг -r с командой rm для удаления одного файла. rm -f должно быть более чем достаточно. - Sampo Sarrala
@SampoSarrala Спасибо за головы, я изменил сценарий соответственно. - Besi


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

  1. Файл creat .img

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

note !: bs = 1M count = 1000 ==> 1GB

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

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

sudo dd if = / dev / zero of = / 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

2
2017-10-03 11:13



Обычно я устанавливаю метку на swap, например. msgstr "mkswap -L SWAP2". - Paul M