Как мне увеличить размер файла подкачки, не удаляя его в терминале?
Есть ли способ увеличить мой существующий "файл подкачки" без необходимости уничтожать и заново создавать его? Я хотел бы увеличить пространство подкачки с 1 ГБ до 2 ГБ. В настоящее время он настроен так:
$ sudo swapon -s
Filename Type Size Used Priority
/swapfile file 1048572 736640 -1
$ ls -lh /swapfile
-rw------- 1 root root 1.0G Nov 9 2016 /swapfile
Я использую Ubuntu 14.04.
4 ответа
Сначала отключите файл подкачки:
sudo swapoff /swapfile
Теперь давайте увеличим размер файла подкачки:
sudo dd if=/dev/zero of=/swapfile bs=1M count=1024 oflag=append conv=notrunc
Приведенная выше команда добавит 1 ГБ нулевых байтов в конец файла подкачки.
Настройте файл как "файл подкачки":
sudo mkswap /swapfile
включить обмен:
sudo swapon /swapfile
Вы должны добавить новый файл подкачки вместо изменения размера существующего, потому что вам это ничего не стоит. Чтобы изменить размер файла подкачки, вы должны сначала отключить его, который вытесняет содержимое подкачки в ОЗУ, что увеличивает нагрузку на ОЗУ и может даже вызвать убийцу OOM (не говоря уже о том, что вы могли перебивать диски в течение нескольких минут). Несколько файлов подкачки не проблема, просто установить еще один файл подкачки. Изменение размера файла подкачки по сравнению с добавлением другого буквально бесполезно.
dd if=/dev/zero of=/some/file count=1K bs=1M
mkswap /some/file
sudo chown root:root /some/file
sudo chmod 600 /some/file
sudo swapon /some/file
Общий ответ на вопрос "Как изменить размер файла подкачки":
От Богдана Корниану, здесь: https://bogdancornianu.com/change-swap-size-in-ubuntu/
[Цитата (ПОЧТИ ВЕРБАТИМ, только с некоторыми из моих дополнений комментариев) НАЧАТЬ]
В следующем примере мы расширим пространство подкачки, доступное в /swapfile, с 4 ГиБ до 8 ГиБ.
Отключить все процессы обмена
sudo swapoff -a
Изменить размер свопа
sudo dd if=/dev/zero of=/swapfile bs=1G count=8
if
= входной файлof
= выходной файлbs
= размер блока; Вот,1G
обозначает 1 Gibibyte, или GiB, который, согласноman dd
это G =1024*1024*1024 байтаcount
= множитель блоковСделайте файл пригодным для использования как своп
sudo mkswap /swapfile
Активировать файл подкачки
sudo swapon /swapfile
Проверьте количество доступных свопов
grep SwapTotal /proc/meminfo
[QUOTE END]
Вы можете создать другой файл подкачки, как я сделал:
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
- Убедитесь, что он работает с
sudo swapon --show
Чтобы сделать его постоянным, добавьте файл вfstab
типирование файла:echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
У меня хорошие результаты на моем Ubuntu 17.04, следуя совету Ариана Акосты из поста блога. Можно заменить 4G здесь sudo fallocate -l 4G /swapfile
с любым количеством гигабайт вы хотите. Например sudo fallocate -l 2G /swapfile
для ТС.
Вообще говоря, рекомендуемый размер файла подкачки в 2 раза больше объема оперативной памяти, но вы можете сделать его настолько большим, насколько вам нужно. Помните, что это не заменяет память, потому что производительность намного хуже, поскольку вещи хранятся на диске.
Я создал простой скрипт bash, который увеличивает размер файла подкачки до 4 ГБ, и протестировал его в Ubuntu 16.04.
Это можно запускать построчно или скриптом bash, но я использую его для установки без головы.
#!/bin/bash
echo "====== Current Swap ======"
sudo swapon -s
echo "====== Turning Off Swap ======"
sudo swapoff /swapfile
echo "====== Allocating 4GB Swap ======"
sudo fallocate -l 4G /swapfile
echo "====== Making Swap ======"
sudo mkswap /swapfile
echo "====== Setting Permissions to Root Only ======"
sudo chmod 600 /swapfile
echo "====== Turning On Swap ======"
sudo swapon /swapfile
echo "====== Current Swap ======"
sudo swapon -s
echo "====== Done! ======"
Вы также можете проверить разрешения. Другой способ сделать это:
# check your swap
free
# turn off swap
sudo swapoff /swapfile
# To create the SWAP file, you will need to use this.
sudo fallocate -l 4G /swapfile # same as "sudo dd if=/dev/zero of=/swapfile bs=1G count=4"
# Secure swap.
sudo chown root:root /swapfile
sudo chmod 0600 /swapfile
# Prepare the swap file by creating a Linux swap area.
sudo mkswap /swapfile
# Activate the swap file.
sudo swapon /swapfile
# Confirm that the swap partition exists.
sudo swapon -s
# check your swap again
free