Функції створення та підключення файлу свопу до Linux
- 944
- 37
- Hubert Hintz
Кількість оперативної пам’яті в комп’ютері обмежена. Найчастіше для фінансових міркувань, хоча технічно технічно ви не можете встановити більше на певній материнській платі, ніж це передбачено його специфікаціями. І якщо так, то ситуації, коли нечасто не рідкість, особливо для багатосезонних операційних систем. Сюди входить Linux, і хоча він вважається менш вимогливим до ресурсів ПК, його також не можна назвати ідеальним. Дефіцит оперативної пам’яті вирішується по -різному. Одним з найбільш оптимальних з них є використання файлу або розділу на диску, де дані тимчасово зберігаються, які витягуються у фізичній пам'яті за необхідності.
Що таке своп
ОС -схожа на Linux під свопом розуміє механізм організації віртуальної пам’яті, в якій частина даних, що зберігаються в оперативній пам’яті (зазвичай рідко використовуються) переміщується на тимчасове зберігання у спеціальному розділі або файлі на твердій або твердій державі диск.
Весь гучність фізичної пам'яті в Linux поділяється на сторінки. За необхідності, вміст окремих сторінок переміщується на виділений диск під назвою Swap Space або до окремого файлу (аналог накачування файлу у Windows). Процес звільнення самого ОП називається обміном, а загальний розмір фізичної та своп -пам'яті називається - гучність доступної віртуальної пам'яті.
Що таке своп для
Багатозадачність не означає одночасне відкриття багатьох програм. Навіть якщо ми запустимо браузер, він сам використовує багато бібліотек, кожна з яких використовує власну область пам'яті. Кожна нова вкладка, кожен відкритий документ - це все більше і більше сторінок пам'яті, що може бути недостатньо в певний момент часу.
І якщо для нової вкладки немає безкоштовних сторінок, операційна система змушена брати участь у випуску пам'яті. А що звільнити, якщо всі сторінки зайняті необхідними даними або кешею? Який використовується рідше. Але рано чи пізно знадобиться вивантажений фрагмент коду, але він не буде в пам'яті. Ця ситуація називається виною сторінки, і ОС доведеться обробити її новою. Якщо відсутні дані про диск не знайдені, процес закінчить надзвичайну ситуацію. Якщо це так, система завантажить код з диска, але для цього вам потрібно буде звільнити певну кількість інших сторінок пам'яті. Як результат, починається процес, який називається сміттям.
Наявність файлу своп просто вирішує цю дилему. Замість того, щоб просто очистити сторінки пам'яті, система опускає їх вміст на диск, який, як би, розширює об'єм фізичної оперативної пам’яті. У той же час, сміття замінюється однією процедурою читання/запису.
Звичайно, ми описали процес досить схематично, насправді він має багато нюансів та досить складного алгоритму реалізації. У будь -якому випадку, зображення таке: якщо ви зробите файл заміни досить великим, рідко використовуються та незмінні дані, коли дефіцит від оперативної пам’яті "залишає" на диск, де, якщо потрібно, їх можна видаляти стільки разів, як необхідний.
Якщо розділ файлу/гойдалки невеликий, від нього буде мало, адже рано чи пізно на ньому буде вичерпано вільний простір, а потім "танцювати" з постійними операціями запису у файлі перцю розпочнеться знову, що буде дуже сповільнено, що буде дуже сповільнена система.
Відповідаючи на запитання про необхідність обміну в Linux, можна стверджувати:
- Це допомагає вивантажити систему, коли програма вимагає обсягу фізичної пам'яті, якої немає в системі. У таких випадках ядро Linux аналізує, які сторінки апеляція відбувається рідше, опускає їх вміст на диск і відрізняє необхідну кількість сторінок до поточного процесу;
- Особливість багатьох програм полягає в тому, що на момент запуску частини сторінок зайнятий даними, які використовуються лише під час ініціалізації процесу/застосування. Система може і повинна скинути ці сторінки в своп, вивантажуючи OP.
Але не все так просто. Swap також не позбавлений недоліків, головним з яких є швидкість запису/читання з диска. Досить сказати, що при транзакціях з фізичною пам’яттю ця швидкість вимірюється в наносекундах (просто подивіться на характеристики чіпів Ом), а на жорсткому диску це мілісекунд, тобто на кілька порядків. Курс обміну даними SSD має набагато більше курсу обміну даними, але через повільний інтерфейс вони все ще незрівнянні з показниками оперативної пам’яті. Отже, виявляється, що при частому розряді сторінок пам'яті в свопі система також може працювати повільніше.
Це особливо часто, якщо комп'ютер використовується як сервер, а з Linux це більшість ПК. З відсутністю пам’яті бази даних зазвичай потрапляють у кількість перших жертв, і якщо це MySQL, то його падіння загрожує недоступності сайту або його сторінок, тому для серверів так важливо мати великий обмін обсягом Розділ - Нехай сайт працює краще, ніж він буде абсолютно недоступним.
Як створити та налаштувати файл Swing, використовуючи приклад Ubuntu
Процедура створення накачувального файлу досить складна, вимагає певних навичок роботи з командним рядком.
І перший етап - нам потрібно з’ясувати, чи є розділ чи файл, вибраний під свопом у системі.
Перевірка наявності свопу в Ubuntu
Ми використовуємо команду:
Swapon -s
або
безкоштовно -m
Якщо своп відсутній, у першому випадку ви отримаєте порожню отриману лінію, у другому - таблиця використання віртуальної пам’яті, в якій лінія свопу буде містити нулі.
Якщо немає насосного файлу, вам потрібно вирішити, чи можна його створити.
Перевірка наявності вільного простору на диску
Ми виконуємо команду
Df -h
Відобразиться таблиця приблизно наступного вмісту:
Диск має близько 23 ГБ вільного простору, цього більш ніж достатньо, щоб створити файл заміни.
Який розмір для створення заміни
Розмір насосного файлу залежить від багатьох факторів:
- Скільки оперативної пам’яті в системі;
- Який склад використовуваних програм/програм;
- Ви маєте намір використовувати режим сну;
- Чи будуть використовуватися секретні файли.
Звичайно, головний аспект - це обсяг фізичної пам’яті. Якщо він менше 2 ГБ, файл SAWP потрібен більше 1,5-2 разів більший, тобто до 4 ГБ.
Якщо у вас 3-4 ГБ оперативної пам’яті, спочатку вирішіть, чи будете ви використовувати режим сну. Якщо так, то доцільно вибрати об'єм насосного файлу з обчислення 110-115% від кількості оперативної пам’яті, якщо ні, ідеальним варіантом є файл свопу того ж тома.
Якщо у вас потужний комп'ютер і обсяг ОП перевищує 6 ГБ, розмір файлу Swap у Linux виберіть з обчислення половини кількості оперативної пам’яті. Якщо планується використовувати режим сплячки, може знадобитися експеримент, щоб дізнатися, скільки оперативної пам’яті використовується для режиму сну, і вибрати значення на основі отриманих результатів. На щастя, ви можете сформувати файл Swing у будь -який час, не обов'язково на етапі встановлення Linux.
Рекомендовані розміри файлу Swap у Linux у документації Fedora
Створення файлу своп у Linux
Процедура створення насосного файлу в Linux має кілька варіантів, одна з яких вважається традиційною, а інша прискорюється.
Для початку ми знайдемо швидкий шлях, який полягає у використанні однієї команди:
Fallocate -l 2g/swapfile
Тут другий параметр вказує розмір створеного файлу, вираженого в ГБ (якщо лист не буде вказано, система буде інтерпретувати параметр у бюро проектування, це потрібно враховувати).
У цьому випадку файл буде створений та доступний відразу після виконання команди, тому доцільно використовувати цей конкретний метод.
Другий варіант, традиційний:
Dd if =/dev/zero of =/swapfile bs = 1 м кількість = 2096
Тут параметр BS вказує, в яких одиницях ми встановлюємо розмір одного блоку для файлу Swap. У цьому випадку - 1 мегабайт. Параметр підрахунку вказує кількість таких блоків, виділених на насосний файл, а кількість 2 ГБ отримується загалом, як у першій версії.
Сама команда DD в Linux означає копію кроку, параметр IF вказує, де копіювати, у нашому випадку це /dev /Zero- Спеціальний файл з нульовими байтами. Параметр вказує на те, що ми будемо записувати ці нульові байти у файлі /swapfile.
Зауважте, що при використанні цієї команди помилка неприйнятна. Якщо ви неправильно вказуєте параметр, то є шанс пошкодження важливих даних.
Якщо ви вказали недостатній розмір насосного файлу (це може дізнатись набагато пізніше), збільшити або просто змінити розмір свопу Ubuntu, ви можете вимкнути поточний (як це зробити, ми розкажемо вам пізніше) і Створення його знову відповідно до алгоритму, наведеного тут з правильним розміром.
Як підключити файл заміни
Насосний файл важливий з точки зору операційної системи, і її редагування може призвести до її колапсу. Тому важливо обмежити доступ до обміну наступною командою:
Chmod 600 /swapfile
Як результат, лише кореневий користувач (аналог адміністратора в Windows) матиме право читати та записувати в ньому).
Подальше налаштування файлу Swap - це перетворення /swapfile у насосний файл за допомогою команди
Mkswap/swapfile
І фінальна команда, дія якої полягає в тому, щоб підключити своп до системи (її включення):
Swapon/swapfile
Тепер він повністю готовий до роботи.
Додавання свопу до автоматичного завантаження
Так що після кожного перезавантаження, щоб не підключати накачальний файл до системи до останньої команди попереднього розділу, ми вводимо у файл /etc /fstab за допомогою будь -якого текстового редактора, який буде використовуватися при кожному завантаженні Linux:
/Swapfile none swap за замовчуванням 0 0
Після перезавантаження комп'ютера ви можете перевірити правильну роботу команди Free -M.
Як очистити своп в ubuntu
Іноді може знадобитися тимчасово звільнити простір на диску, і часто саме це насосний файл є єдиним справжнім кандидатом для цих цілей.
Очищення обміну (а точніше, відключення) здійснюється командою
Swapoff -a
Включення здійснюється командою
Swapon -a
ПОРАДА. Таким чином не рекомендується відключити своп, оскільки дані просто нульові, без передачі в оперативну пам’ять. Якщо ті, які використовуються системними процесами, можуть слідувати краху системи.
Якщо ви вирішили повністю відмовитись від використання накачування, ви можете видалити обмін наступним чином:
CAT/PROC/SWAPS (Визначте місце розташування файлу SWAP)
Swapoff/dir/swapxxxxx (вимкніть файл Swing, тут DIR є результатом виконання попередньої команди, тобто каталог з файлом, а swapxxxxx - це ім'я самого файлу Swing)
Rm /dir /swapxxxxx (видаліть файл з диска)
Якщо ви додали своп до навантаження на шину, вам потрібно видалити його звідти, видаливши відповідний рядок у файлі /etc /fstab (наприклад, редактор GEDIT).
Але нагадайте, що без наявності файлу заміни система може працювати нестабільною, особливо з невеликою кількістю оперативної пам’яті, тому видаляйте файл Swing без створення нового, настійно рекомендується.