Яка файлова система є свопом в Linux


14

В Linux ви можете вибрати такі речі, як ext3 та reiserfs для розділів. Для розділу swap ви просто вибираєте "swap". Що це за файлова система? Чи можете ви просто створити розділ ext3 і зробити його розділом swap? Як би це було інакше?


Файлова система Swap в Linux, схоже, називається Linux файлова система Swap. Якщо мені вдасться знайти реальну інформацію про це, я опублікую відповідь. Поки я читав з en.wikipedia.org/wiki/Paging, що ядро ​​обходить файлову систему на файлах підкачки. Те саме може бути і зі своп-розділами.
AndrejaKo

1
Неймовірні люди на форумах Gentoo надали мені це посилання! Все, здається, добре пояснено. О, і завдяки John R. Graham.
AndrejaKo

Відповіді:


26

Swap - це фактична файлова система. Це просто зарезервована частина диска, яка є сирою адресною пам'яттю без особливої ​​структури.

mmwp створює заголовок для області заміни з деякою додатковою інформацією. З swapheader.h пакету util-linux-ng:

struct swap_header_v1 {
    char         bootbits[1024];    /* Space for disklabel etc. */
    unsigned int version;
    unsigned int last_page;
    unsigned int nr_badpages;
    unsigned int padding[125];
    unsigned int badpages[1];
};

Версія 1 заголовка - це використовується в даний час. Ось про всю магію, що стоїть за сирою структурою свопу.


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

5
Ні. Ви просто повинні вирішити шматки пам'яті. Саме це і є сторінки. Це тому, що ви не зберігаєте дані зі складною структурою або додатковою інформацією, як у реальних файлових системах, де дозволи та дати зберігаються поряд із даними.
matthias krull

6
Ви все ще можете адресувати блоки, якщо у вас немає файлової системи.
matthias krull

8

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


2
це точно не віртуальне місце оперативної пам'яті. це (як таран) пам'ять, яку можна відобразити у віртуальній пам'яті процесу.
matthias krull

4

Linux має дві форми простору swap: розділ swap та файл swap. Розділ swap - це незалежна секція жорсткого диска, що використовується виключно для заміни; жодні інші файли там не можуть проживати. Файл swap - це спеціальний файл у файловій системі, який знаходиться серед вашої системи та файлів даних.

Обмін необхідний з двох важливих причин. По-перше, коли системі потрібно більше пам’яті, ніж фізично доступно, ядро ​​замінює менш використані сторінки та надає пам’ять поточному додатку (процесу), який потребує пам'яті негайно. По-друге, значна кількість сторінок, які використовує додаток під час фази запуску, може використовуватися лише для ініціалізації, а потім ніколи більше не використовуватися. Система може замінити ці сторінки та звільнити пам'ять для інших програм або навіть для кеш-диска.


2
Відповідь справді приємна і пояснює суть проблеми, але це відповідь на питання "Що таке своп у GNU / Linux?" То що тут робиться? Також посилання, пов’язане з linux.com/news/software/applications/…
AndrejaKo

Я знаю, що таке своп.
tony_sid

... не знав про параметр swap-file
MrCalvin

-1

Існує два способи створення простору своп: підміна файлової системи та обмін пристроєм (або необроблений). За допомогою файлової системи swap ви створюєте файл у файловій системі та використовуєте його як простір підкачки (так, як ви побачили у Windows із pagefile.sys). За допомогою підкачки на пристрої ви переходите на розділ, створений спеціально для swap.

Який краще:

Ця дискусія була набагато цікавішою у "старі" дні, оскільки:

Чому заміна пристрою "краща": оскільки ви переходите на необроблений розділ, це швидше, оскільки вам не доведеться мати справу з усіма додатковими накладними витратами файлової системи з накладними та іншими файловими системами

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

Чому своп файлової системи "кращий": набагато простіше змінити розміри. При зміні розмірів розділів це набагато складніше, ніж просто створення нових файлів.

Однак сьогодні, коли багато людей, які використовують LVM замість сирих розділів, легко зменшити і збільшити свій обмінний простір

Сьогодні це ще більше суперечок: Більшість серверів сьогодні з міркувань продуктивності варто коштувати, просто підключивши його до повної пам’яті. (Ця дискусія була набагато популярнішою, коли до оперативної пам'яті було важче підійти, і на сервері прийнято було розміщувати лише 4 ГБ до 8 ГБ ОЗУ)

ЧОМУ Я ВИКОРИСТУЮ ФАЙЛИСТИЧНИЙ SWAP (і взагалі міняйте місцями)

У наші дні я доручаю нашим хлопцям встановлювати за допомогою 4gig swap onl, і ми використовуємо однаковий конфігурацію / зображення для всіх наших встановлень Linux. Встановлення Oracle вимагає більшого використання swap, тому для систем, які матимуть Oracle I, потім створіть решту за допомогою файлової системи swap. Цілком можливо, що у вашій програмі може виникнути вимога swap; в такому випадку ви можете потім додати її за допомогою файлової системи swap.

Чи допомагає це?

У мене є детальні інструкції, як це зробити в Linux тут: http://geekswing.com/geek/how-to-add-filesystem-swap-on-linux-and-unix-systems/


1
"Однак сьогодні цей аргумент насправді не відповідає. З розвитком того, наскільки швидким є доступ до диска в ці дні, своп пристроїв не купує у вас набагато більше часу, ніж підміна файлової системи ". - це не причина. Ідея тут полягає в тому, що місце для заміни може бути негайно затребуваним. Проходження файлової системи включає каталоги, блоки, вставки, кеш-пам'ять буфера тощо, які є кодовими шляхами, які самі потребують більшої кількості пам'яті, що призводить до циклу. Ось чому своп найкраще робити на необмеженому блоковому пристрої. Це також дозволяє уникнути фрагментації swapfile.
mirabilos

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