Ubuntu поддерживает динамический размер файла подкачки?
13
Я не могу себе представить, почему файл подкачки должен быть фиксированного размера. Почему бы не позволить ему динамически изменять размер, как файл образа жесткого диска для виртуальной коробки?
Linux не поддерживает динамические размеры пространства подкачки, если не считать возможность добавлять и удалять все пространства подкачки во время выполнения. (Между прочим, и Windows, и даже не последняя.)
Дэвид Фёрстер
Поддерживает ли Mac динамический обмен?
Том Мерсер
Я понятия не имею. Это совершенно другое ядро, которое я не изучал. Скорее всего, это похоже на пространство подкачки в Linux. В любом случае, не могли бы вы открыть новый вопрос Unix & Linux или Ask Different, если у вас есть новый или дополнительный вопрос о ядре Darwin OS X? Раздел комментариев не подходит или предназначен для новых вопросов или расширенного обсуждения. :-) Благодарность.
Похоже, Linux не поддерживает динамическое изменение размера файла подкачки (во всяком случае, я не смог обнаружить, что размер файла подкачки изменился без swapoff/ swapon).
Предположительно, проще предположить, что файл подкачки не меняет размер файла динамически при написании кода для его поддержки. Я тоже не вижу в этом особой пользы. Поскольку вы можете использовать несколько файлов подкачки, ничто не мешает вам создавать больше файлов подкачки по мере необходимости.
The swap file implementation in the kernel expects to be able to write
to the file directly, without the assistance of the filesystem. This
is a problem on preallocated files (e.g. fallocate(1)) on filesystems
like XFS or ext4, and on copy-on-write filesystems like btrfs.
Я думаю, что та же проблема будет применяться к файлу подкачки динамического размера.
Хотя он был выпущен 2 года назад , все версии для Ubuntu кажутся древними. Насколько хорошо это работает?
Муру
Я не могу представить, что метод, использованный для записи файла подкачки, изменился, но я не могу сказать наверняка. Отлично работает на Debian.
user231695
Я до сих пор голосую за ваш ответ, так как создать новое пространство так же просто.
user231695
Я попробую и доложу.
Том Мерсер
@ user231695 Хотя создать новое пространство подкачки просто, это ужасно неудобно и, возможно, совершенно неработоспособно в качестве решения. Единственный раз, когда пользователь хочет добавить новое пространство подкачки, это тот самый момент, когда существующий подкачка заполнена. Отсюда мой вопрос для динамического определения размера файла подкачки.
Том Мерсер
1
Я знаю, что уже поздно, но я думаю, что лучшее решение для динамического обмена - это:
Это не похоже на динамическое изменение размера свопа. Похоже на скрипт для инициализации файла подкачки определенного размера, который по умолчанию равен 2-кратному объему оперативной памяти.
Том Мерсер
Привет @TomMercer установил параметры swapfactor и maxswap в соответствии с комментариями в файле: «# установить размер в вычисляемое значение, в этот раз размер оперативной памяти, динамически адаптируемый, гарантирует, что достаточно подкачки, не тратя место на диске при избытке». «Динамически адаптируется» кажется, что вы ищете. Лучший
Денис Пицалис
Из-за этого размер моего файла подкачки изменяется, например, от 1 КБ до 16 ГБ, когда я использую ОС и заполняю ОЗУ? Вот что означает «динамическое изменение размера» подкачки. Создание файла подкачки, кратного размеру оперативной памяти, не является динамическим. Нет никакого смысла иметь файл подкачки вообще, пока ОЗУ не заполнится, и тогда вы захотите, чтобы файл подкачки точно соответствовал размеру VRAM, который вы используете. Если вы закрываете вкладки или огромное изображение, над которым работаете, файл подкачки должен динамически изменять размер вниз. Файл подкачки всегда должен быть полностью заполнен на 100% за счет динамического изменения размера.
Том Мерсер
0
Пространство подкачки можно добавить в работающую систему с помощью swaponкоманды. Требуется существующий (неиспользуемый) файл подкачки / раздел. Чтобы создать его, используйте ddкоманду для выделения смежного файла, а затем mkswapдобавьте правильную управляющую информацию в файл / раздел.
Чтобы удалить файл подкачки, используйте swapoff; файл может быть удален.
Я подозреваю, что это то, SwapSpaceчто делает демон @ user231695.
Обратите внимание, что swapoff может быть медленной операцией, если используется swapfile; все данные должны быть перенесены в другую область подкачки.
Ответы:
Похоже, Linux не поддерживает динамическое изменение размера файла подкачки (во всяком случае, я не смог обнаружить, что размер файла подкачки изменился без
swapoff
/swapon
).Предположительно, проще предположить, что файл подкачки не меняет размер файла динамически при написании кода для его поддержки. Я тоже не вижу в этом особой пользы. Поскольку вы можете использовать несколько файлов подкачки, ничто не мешает вам создавать больше файлов подкачки по мере необходимости.
Также обратите внимание на этот пункт из на
swapon
страницах руководства :Я думаю, что та же проблема будет применяться к файлу подкачки динамического размера.
источник
SwapSpace - это утилита, которая позволит вам динамически менять размер свопа, если это то, что вы ищете. Я верю, что это доступно в Ubuntu.
источник
Я знаю, что уже поздно, но я думаю, что лучшее решение для динамического обмена - это:
затем установить
CONF_SWAPFACTOR=2
в/etc/dphys-swapfile
и , наконец ,источник
Пространство подкачки можно добавить в работающую систему с помощью
swapon
команды. Требуется существующий (неиспользуемый) файл подкачки / раздел. Чтобы создать его, используйтеdd
команду для выделения смежного файла, а затемmkswap
добавьте правильную управляющую информацию в файл / раздел.Чтобы удалить файл подкачки, используйте
swapoff
; файл может быть удален.Я подозреваю, что это то,
SwapSpace
что делает демон @ user231695.Обратите внимание, что swapoff может быть медленной операцией, если используется swapfile; все данные должны быть перенесены в другую область подкачки.
источник