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

108

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

    
задан Bruno 21.08.2012 в 22:20
источник

5 ответов

141

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

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

Измените /media/fasthdd/swapfile.img на все, что вам нравится, например, оно может быть /swap.img . /media/fasthdd/swapfile.img - это просто пример имени файла, если вы используете этот, тогда, конечно, должен быть каталог /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. Bake swap file:
Следующая команда собирается сделать «swap-файловую систему» внутри вашего нового файла подкачки.

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
    
ответ дан Sampo Sarrala 21.08.2012 в 22:59
источник
30

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    
ответ дан Avinash Raj 11.12.2013 в 07:11
21

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

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

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

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

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

Ресурсы:

ответ дан Jean-Christophe Meillaud 09.10.2014 в 15:24
4

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

Errno::ENOMEM: Cannot allocate memory - nodejs

Я создал свой файл подкачки, как описано здесь: Ссылка

Теперь строка, которая создает пустой файл с именем /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 МБ, как и ожидалось:

    
ответ дан Besi 27.04.2016 в 14:03
3

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

  1. creat .img file

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

note !: bs = 1M count = 1000 == > 1 Гб

(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
    
ответ дан Jonas 03.10.2015 в 13:13