Динамически растущий файл подкачки в Debian


10

Я знаю, как создать файл подкачки и использовать его как своп. Но мне нужно заранее настроить размер файла и использовать место на диске, если используется своп или нет.

Как создать своп, который имеет начальный размер 0 и увеличивается по требованию?


@Gilles: Мне просто любопытно - почему вы редактировали заголовок (кроме опечатки)? Разве не желательно, чтобы здесь были полностью сформулированные вопросы?
— rubo77

1
Лучше избегать бесполезных слов, особенно в начале заголовка, где люди обращают больше всего внимания. См. Как мне написать хорошее название? , «Динамически растущий своп» дает основную идею. «Как я создаю» не начинает указывать, о чем идет речь. Есть люди, которые предпочитают задавать вопросы с названиями вопросов, потому что это вопросы, но это глупая причина: название также является названием ответов.
— Жиль "ТАК ... перестать быть злым"

Ответы:


3

Swapspace устарел и не поддерживается, и однажды может привести к проблемам в современных системах. Я думаю, что лучшим решением для динамического обмена является:

sudo apt install dphys-swapfile
sudo update-rc.d dphys-swapfile enable

затем установить CONF_SWAPFACTOR=2в /etc/dphys-swapfileи , наконец ,

sudo service dphys-swapfile start

Это работает, но имейте в виду, что вам было бы лучше без свопа, см. Unix.stackexchange.com/a/136133/20661
— rubo77

10

SwapSpace - это утилита, которая создает «динамический файл подкачки», который в соответствии с требованиями операционной системы меняет свой размер.

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

Вы также можете использовать «Swapspace» бок о бок с созданным вручную файлом подкачки, а при заполнении вручную «Swapspace» автоматически создаст другой файл для ОС, поэтому у ОС всегда будет пространство подкачки, что повысит стабильность.

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

Установить с

sudo apt-get install swapspace

И настроить файл конфигурации в соответствии с вашими потребностями. Я установил минимум 0на моей машине с Debian VM только с 8 ГБ HDD


Кроме того, я также установил перестановку, чтобы 0минимизировать использование драгоценного пространства жесткого диска на моей виртуальной машине :

Чтобы изменить значение системной подкачки, откройте /etc/sysctl.confкак root. Затем измените или добавьте эту строку в файл:

vm.swappiness = 0

(Перезагрузитесь, чтобы изменения вступили в силу)


Это не будет поддерживать swsusp / suspend для файла подкачки, если только размер созданного файла подкачки уже не достаточно велик, чтобы содержать дамп памяти.
— soze

Итак, как мы можем убедиться, что файл подкачки становится достаточно большим, чтобы вместить оперативную память?
— rubo77

Имейте один файл подкачки фиксированного размера размером ОЗУ для приостановки, а затем используйте пространство подкачки для динамического подкачки
— Том Хейл,

Это сработало для меня. Это очень полезно для небольших дисков SSD.
— Адриан Лопес

0

Afaik, любой раздел подкачки, который вы создадите, например, с помощью fdisk, будет нуждаться в любом пространстве больше 0, так как вы изменяете пространство с существующего диска и перераспределяете его в другое место.

В любом случае, отвечая на ваш вопрос, вы можете легко создать небольшой раздел, назначить его как swap под fdisk, а затем:

1) отключить обмен с помощью swapoff -v 2) изменить размер раздела с помощью lvresize 3) отформатировать раздел с помощью mkswap 4) повторно включить пространство подкачки с помощьюswapon -v

После этого вы можете использовать, cat /proc/swapsчтобы проверить, был ли он обновлен или нет. Вы можете легко использовать это в сценарии, в зависимости от характеристик вашей системы, и запускать его по требованию всякий раз, когда вам нужно увеличить это пространство подкачки. Что-то типа:

$ swapoff -v /dev/swapvol1
$ lvresize /dev/swapvol1 -L +1G
$ mkswap /dev/swapvol1
$ swapon -v /dev/swapvol1

1
Это не отвечает на вопрос, потому что размер свопа изменяется вручную, а не по требованию. Кроме того, изменение размера LV не полезно: где вы найдете пространство для роста? как освободившееся место при усадке не теряется? Вопрос касается файла подкачки, который решает проблему свободного места - он доступен для других файлов.
— Жиль "ТАК ... перестать быть злым"

Хорошим вариантом является изменение размера подкачки по требованию, но пространство подкачки не охватывает сценарий использования swsusp для поддержки гибернации. Я считаю, что этот ответ может быть более вменяемым для тех пользователей, которым нужна поддержка гибернации. Пока swapspace справится с этим лучше, конечно.
— соз
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.