Как увеличить пространство подкачки?
По умолчанию в 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 - незанятое пространство, присутствующее до или после раздела подкачки
На приведенном выше снимке экрана у меня было 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 МБ, как ожидалось:
Если вы хотите изменить размер раздела подкачки и не хотите создавать файл подкачки, тогда
Загрузите сеанс с установочного носителя Ubuntu в реальном времени, выбрав " Попробовать Ubuntu".
Откройте GParted или другой менеджер разделов, если вы используете Kubuntu, Lubuntu и т. Д.
Измените размер основного раздела (в моем случае я делал это для
/dev/sda2
), сжав егоИзмените размер раздела подкачки, сделав его больше
Включите свопинг, используя то же контекстное меню и кнопку Swapon
Перезагрузитесь в обычный сеанс Ubuntu
Откройте терминал и посмотрите, изменился ли размер свопа:
$ sudo swapon --show [sudo] password for user: NAME TYPE SIZE USED PRIO /dev/sda3 partition 2G 129.3M -2
Это не изменилось. Чтобы его изменить, сделайте следующее:
Отключить своп:
$ sudo swapoff /dev/sda3
Восстановить своп:
$ 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
Включить своп:
$ sudo swapon /dev/sda3
Проверьте его размер:
$ free -m total used free shared buff/cache available Mem: 15948 13008 301 670 2638 2006 Swap: 10288 0 10288
Проверьте UUID раздела подкачки:
blkid | grep swap
Заменить 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
вывод команды.
как добавить файл подкачки
создать файл.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
формат.img файл
sudo mkswap /swap.img
включить файл подкачки
sudo swapon /swap.img
добавить файл подкачки в 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