У меня есть, по умолчанию, 250 МБ области подкачки в Ubuntu, и я хочу развернуть ее до большего размера. Мне нужны 800 МБ, которые я думаю, будет достаточно для открытия нескольких приложений, не имея необходимость поражать ограничение по току подкачки. Я надеюсь, что кто-то может помочь мне.
Вы всегда можете создать файл подкачки , чтобы добавить больше места для подкачки. Это не то же самое во всех аспектах, что и раздел подкачки, но это будет легко и динамично.
В следующих шагах измените /медиа/fasthdd/swapfile.img
на все, что вам нравится. Например, это может быть также /swap.img
. /медиа/fasthdd/swapfile.img
- это просто пример имени файла. Если вы используете это имя, тогда, конечно, должен быть каталог /media/fasthdd/
с достаточным количеством свободного места для вашего нового файла подкачки.
Используйте любое терминальное приложение для выполнения команд следующих шагов. Все команды должны выполняться с привилегиями root. Для этого вы можете либо добавить sudo
в начало каждой команды, либо запустить sudo bash
перед выполнением команд.
Создайте пустой файл:
Этот файл будет содержать содержимое виртуальной памяти, поэтому сделайте файл достаточно большим для ваших нужд. Этот файл создаст 1Гб, что означает +1Гб пространство подкачки для вашей системы:
dd if=/dev/zero of=/media/fasthdd/swap file.img bs=1024 count=1M
Если Вы хотите сделать файл 3GiB, то измените значение счетчика на count=3M
. Дополнительную информацию смотрите в man dd
.
Запекайте файл подкачки :
Следующая команда сделает "файловую систему подкачки" внутри вашего свежего файла подкачки.
mkswap /media/fasthdd/swapfile.img
Bring up on boot:
Чтобы убедиться, что ваше новое место подкачки активировано во время загрузки компьютера, вы должны добавить его в файл конфигурации файловой системы /etc/fstab
. Добавьте его в конец файла. Это рекомендуется, так как другие файловые системы (по крайней мере одна из которых содержит файл подкачки) должны быть смонтированы в режиме чтения-записи, прежде чем мы сможем получить доступ к каким-либо файлам.
# Добавьте эту строку в /etc/fstab
/медиа/fasthdd/swapfile.img swap swap swap swap 0 0
Активировать:
Перезагрузить компьютер или вручную активировать новый файл подкачки можно командой:
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
Вы также можете использовать 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
Стандартный способ создания и активации файла подкачки:
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
/ etc / fstab
Удалите строку, относящуюся к свопу, который вы хотите удалить.
Удалите и удалите файл подкачки.
sudo swapoff /mnt/swapfile && sudo rm /mnt/swapfile
В моем случае у меня уже был файл подкачки размером 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 МБ, как и ожидалось:
Как добавить файл подкачки
Создайте .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
Формат файла .img
sudo mkswap /swap.img
Включить файл подкачки
sudo swapon /swap.img
Добавьте файл подкачки в fstab
.
Добавьте эту строку в ваш fstab (/etc/fstab):
/swap.img no swap swap sw 0 0
Другой способ увеличить размер раздела подкачки - использовать Редактор разделов 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
Вы должны иметь возможность увеличивать размер раздела подкачки, только если есть нераспределенный пространство до или после раздела подкачки. Если не было нераспределенного пространства (пространства, которое мы пытаемся добавить с помощью раздела подкачки) ниже или выше раздела подкачки, то мы должны изменить размер разделов и получить это незанятое пространство.
На приведенном выше снимке экрана у меня было 11,4 ГБ нераспределенного пространства до linux-swap и 12,8 ГБ после раздела подкачки.
Чтобы изменить размер, щелкните правой кнопкой мыши раздел подкачки (здесь / dev / sda9 ) и выберите параметр «Изменить размер / переместить». Это будет выглядеть так:
Перетаскивая стрелки ползунка влево или вправо, нажмите кнопку Изменить размер / Переместить. Размер вашего раздела подкачки будет изменен.
На скриншоте выше нераспределенное пространство, которое мы хотим добавить к разделу подкачки, находилось между dev / sda7
и / dev / sda8
. Чтобы переместить нераспределенное пространство из этого раздела чуть выше раздела подкачки, мы должны выполнить простые шаги, указанные ниже:
Щелкните правой кнопкой мыши раздел / dev / sda8 и нажмите в параметре Изменить размер / Переместить .
щелкните и переместите ползунок в крайнее левое положение, чтобы нераспределенное пространство, которое было чуть выше раздела / dev / sda8
, оказалось ниже / dev / sda8
. После этого нажмите кнопку «Изменить размер / переместить».
И теперь нераспределенное пространство было чуть выше раздела подкачки, что было похоже на Случай 1 . Теперь следуйте варианту 1.
У меня было нераспределенное пространство 18 ГБ чуть ниже расширения ded partition . Чтобы добавить это пространство к разделу linux-swap (который находился внутри расширенного раздела), мы должны выполнить следующие шаги:
Щелкните правой кнопкой мыши расширенный раздел и выберите Изменить размер Параметр / Переместить , он будет похож на снимок экрана ниже.
Щелкните и перетащите стрелку в крайнее правое положение и щелкните Изменить размер / Переместить , чтобы Нераспределенное пространство размером 18 ГБ будет находиться в нижней части расширенного раздела. У меня уже было 14,80 ГБ незанятого пространства внизу, и теперь 18,34 ГБ объединены с этим, чтобы создать нераспределенное пространство (18,34 + 14,80 ГБ) в нижней части расширенный раздел.
Теперь было нераспределенное пространство чуть ниже раздела подкачки, это будет похоже на Случай 1 , затем следуйте варианту 1.
ПРИМЕЧАНИЕ: Не забудьте сделать резервную копию всех ваших важных данных перед выполнением вышеуказанных операций.
# 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
Я нашел следующее видео очень интересным и простым подходом к увеличению размера файла подкачки. Ознакомьтесь с этим коротким видеоуроком: Как увеличить объем подкачки в 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
, чтобы увидеть изменения.
Если вы хотите изменить размер раздела подкачки и не хотите создавать файл подкачки, тогда
Загрузите сеанс прямого доступа с установочного носителя Ubuntu, выбрав Попробуйте Ubuntu
Откройте GParted или другой менеджер разделов, если вы используете Kubuntu, Lubuntu и т. Д.
Измените размер основного раздела (в моем случае я делал это для / dev / sda2
), уменьшив его
Изменив размер раздела подкачки, увеличив его
Включите подкачку, используя то же контекстное меню и Кнопка Swapon
Перезагрузитесь в обычный сеанс Ubuntu
Откройте терминал и посмотрите, изменился ли размер подкачки:
$ sudo swapon --show
[sudo] пароль для пользователя:
ИМЯ ТИП РАЗМЕР ИСПОЛЬЗУЕМЫЕ ПРИО
/ dev / sda3 раздел 2G 129,3M -2
Это не изменилось. Чтобы изменить это, сделайте следующее:
Отключить своп:
$ sudo swapoff / dev / sda3
Восстановить своп:
$ sudo mkswap / dev / sda3
mkswap: / dev / sda3: предупреждение: стирание старой подписи подкачки.
Настройка пространства подкачки версии 1, размер = 10 ГиБ (10788794368 байт)
без метки, UUID = 2e315546-04f7-4db6-8ca9-25f36f4ee960
Включить своп:
$ sudo swapon / dev / sda3
Проверьте его размер:
$ free -m
общее количество использованных бесплатных общих баффов / кешей
Mem: 15948 13008 301 670 2638 2006
Своп: 10288 0 10288
Проверьте UUID раздела подкачки:
blkid | grep swap
Замените 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
.
У меня есть 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