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

Эта страница на ubuntu.com имеет разбивку сертифицированных машин по производителю и типу модели.

1
задан 13 January 2014 в 10:14

4 ответа

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

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

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

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

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

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

На приведенном выше снимке экрана у меня было 11,4 ГБ нераспределенного пространства перед обменом linux и 12,8 ГБ после раздела подкачки. [!d8 ] Чтобы изменить размер, щелкните правой кнопкой мыши раздел подкачки (/ dev / sda9 здесь) и нажмите кнопку «Изменить размер / перемещение». Он будет выглядеть следующим образом: перетаскивая стрелки слайдера влево или вправо, затем нажмите кнопку «Изменить размер / перемещение». Ваш раздел подкачки будет изменен.

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

GParted partitions

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

[d21 ] Чтобы изменить размер, щелкните правой кнопкой мыши раздел подкачки (/ dev / sda9 здесь) и нажмите кнопку «Изменить размер / перемещение». Это будет выглядеть так:

Чтобы изменить размер, щелкните правой кнопкой мыши раздел подкачки (/ dev / sda9 здесь) и нажмите кнопку «Изменить размер / перемещение». Он будет выглядеть так:

Перетаскивая стрелки слайдера влево или вправо, нажмите кнопку «Изменить размер» / «Переместить».

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

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

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

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

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

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

29
ответ дан 25 May 2018 в 07:19

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

Простой [ f12] для добавления второго файла подкачки

Проверить ситуацию смены:

$ 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

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

Удалить, что swap

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

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

Ресурсы:

Официальная страница часто задаваемых вопросов по Ubuntu [!d1 7]
18
ответ дан 25 May 2018 в 07:19
  • 1
    1-up для fallocate, намного лучше, чем dd, если ваш fs поддерживает его. Те однострочники по-прежнему трудно читать, может быть легче изучить, если они будут разбиты на реальные команды? – Sampo Sarrala 24 January 2016 в 12:49

В моем случае у меня уже был файл подкачки, который, как я думал, составлял 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 МБ): [ ! d5]

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

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

3
ответ дан 25 May 2018 в 07:19
  • 1
    Вы не должны использовать опасный флаг -r с командой rm для удаления одного файла. rm -f должно быть более чем достаточно. – Sampo Sarrala 5 September 2016 в 23:05
  • 2
    @SampoSarrala Спасибо за головы, я изменил сценарий соответственно. – Besi 5 September 2016 в 23:58

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

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 / нуль = / swap.img bs = 10M count = 100

creat .img файл sudo dd if = / dev / zero of = / swap.img bs = 1M count = 1000 [!d3 ]

creat .img file

sudo swapon /swap.img добавить файл подкачки в fstab

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

/swap.img   none            swap    sw              0       0
1
ответ дан 25 May 2018 в 07:19
  • 1
    Обычно я устанавливаю метку на swap, например. " mkswap -L SWAP2 ". – Paul M 15 February 2018 в 17:30

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

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