Чи підтримує Ubuntu динамічне розмір файлів підкачки?


13

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


Linux не підтримує динамічні розміри простору підкачки, якщо ви не рахуєте можливість додавання та видалення цілих просторів під час заміни. (Ні Windows не працює, навіть остання.)
Девід Фоерстер,

Чи підтримує Mac динамічний своп?
Том Мерсер,

Я поняття не маю. Це зовсім інше ядро, яке я не вивчав. Можливо, він схожий на обмін місцями в Linux. У будь-якому випадку, чи можете ви відкрити нове запитання Unix & Linux або задати інше, якщо у вас є нове або додаткове запитання щодо ядра Дарвіна ОС X? Розділ коментарів не підходить і не призначений для нових питань або розширеного обговорення. :-) Спасибі.
Девід Фоерстер

@DavidFoerster в Windows ви можете встановити мінімальний і максимальний розміри для кожного файлу сторінки, а Windows при необхідності збільшить розмір файлу сторінки. tomshardware.com/news/…
phuclv

Відповіді:


11

Не схоже, що Linux підтримує динамічне розмір файлів підкачки (у будь-якому випадку, я не міг змусити його виявити, що файл swap змінив розмір без а swapoff/ swapon).

Імовірно, простіше припустити, що файл swap не змінює розмір файлу динамічно, коли пише код для його підтримки. Я також не бачу великої користі для цього. Оскільки ви можете використовувати кілька файлів підкачки, ніщо не заважає вам створювати більше файлів підкачки за потребою.

Також зверніть увагу на цей пункт з на 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.

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


Схоже, це правда, і swapspace навіть не динамічно змінює розмір свопу.
Том Мерсер

2

SwapSpace - це утиліта, яка дозволить вам робити своп динамічного розміру, якщо це те, що ви шукаєте. Я вірю, що це доступно в Ubuntu.


Незважаючи на те, що вийшов новий випуск 2 роки тому , всі версії, упаковані для Ubuntu, здаються старовинними. Наскільки добре це працює?
муру

Я не можу уявити, що метод, який використовується для запису файлу swap, змінився, але я не міг сказати точно. Відмінно працює на debian.
user231695

Я все ще голосую за вашу відповідь, оскільки створити новий простір так само просто.
user231695

Я спробую це і звіту.
Том Мерсер

@ user231695 хоча просто створити новий простір для обміну, це жахливо незручно і, можливо, абсолютно непрацездатне як рішення. Єдиний раз, коли користувач хоче додати нове місце для заміни - це той самий момент, коли наявний своп заповнений. Звідси моє запитання щодо динамічного розміру файлу swap.
Том Мерсер

1

Я знаю, що пізно, але я думаю, що найкращим рішенням для динамічного свопу є:

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

потім встановити CONF_SWAPFACTOR=2в /etc/dphys-swapfileі , нарешті ,

sudo service dphys-swapfile start

Не динамічно змінювати розмір свопу. Виглядає як сценарій для ініціалізації свопфайлу певного розміру, який за замовчуванням перевищує 2x ОЗУ.
Том Мерсер

Привіт @TomMercer налаштування swapfactor та maxswap, відповідно до коментарів у файлі: "# встановити розмір для обчисленого значення, цього разу розмір оперативної пам’яті, динамічно адаптується, гарантує достатню кількість свопів, не витрачаючи дискового простору на надлишки". "динамічно адаптується" здається, що ви шукаєте. Найкращий
Деніс Пітзаліс

Чи робить це мій swapfile різним розміром між, скажімо, 1 КБ і 16 ГБ, тоді як я використовую ОС і заповнюю оперативну пам’ять? Ось що означає "динамічно змінювати розміри" своп. Створення swapfile, що кратний розміру оперативної пам’яті, не є динамічним. Немає сенсу взагалі мати swapfile, поки оперативна пам’ять не заповниться, і тоді ви хочете, щоб свопфайл мав саме той розмір VRAM, який ви використовуєте. Якщо ви закриєте вкладки або величезне зображення, над яким працюєте, свопфіл повинен динамічно змінювати розмір назад вниз. Завдяки диспетчерському зміні себе розмір завжди повинен бути повністю заповнений на 100%.
Том Мерсер

0

Простір заміни можна додати до запущеної системи за допомогою swaponкоманди. Для цього потрібен існуючий (невикористаний) swapfile / розділ. Щоб створити його, використовуйте ddкоманду, щоб виділити суміжний файл, а потім mkswapдодати правильну керуючу інформацію до файлу / розділу.

Щоб видалити файл swap, використовуйте swapoff; файл можна потім видалити.

Я підозрюю, що це те, SwapSpaceщо робить той, що згадує @ user231695.

Зверніть увагу, що swapoff може бути повільним, якщо використовується swapfile; всі дані повинні бути передані в іншу область свопу.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.