Динамически растущий файл подкачки в 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.