Скільки має бути swap

Скільки має бути swap



SWAP

SWAP – один із механізмів віртуальної пам'яті, при якому окремі фрагменти пам'яті (зазвичай неактивні) переміщуються з ОЗП у вторинне сховище (окремий розділ або файл), звільняючи ОЗУ для завантаження інших активних фрагментів пам'яті.

Докладніше про механізм свопінгу можна прочитати у Вікіпедії.

Додатково SWAP використовується для організації режиму сну (hibernation або suspend to disk). При цьому SWAP зберігається образ оперативної пам'яті.

Розміщення

SWAP може бути розміщений на розділі диска, у файлі або RAM. Історично в Linux SWAP розміщувався на розділі, але в сучасних дистрибутивах продуктивність SWAP-файлу не поступається SWAP-розділу. Однак стандартний установщик Ubuntu (до версії 17.04) не вміє створювати SWAP-файл під час встановлення та видає попередження, якщо SWAP-розділ не визначено під час розмітки диска. Починаючи з версії 17.04, Ubuntu пропонує за замовчуванням створювати SWAP у файлі (обсяг визначається як 5% від вільного місця на диску, але не більше 2 Гб). Використання файлу SWAP має деякі переваги: ​​він не займає окремий розділ, його легко створити, змінити його розмір або видалити.

Додатково при виборі розміщення SWAP потрібно враховувати, що не всі файлові системи дають змогу використовувати пряму адресацію блоків SWAP-файлу. Так, наприклад, не можна використовувати SWAP у файлі на розділі з файловою системою btrfs (станом на середину 2017).

Безпека

При роботі з секретними/зашифрованими даними частина цих даних у процесі роботи або за глибокого сну може опинитися в SWAP в розшифрованому вигляді. У разі рекомендується шифрувати як дані, а й сам SWAP. Однак потрібно враховувати, що режим сну при шифруванні SWAP може виникнути складнощі.

Розмір

В Інтернеті можна знайти безліч рекомендацій щодо визначення розміру SWAP, однак універсальної відповіді не існує.

При визначенні розміру SWAP слід врахувати такі аспекти:

Залежно від відповідей на ці питання рекомендації щодо розміру SWAP значно відрізнятимуться.

Для машин із незначним об'ємом пам'яті (менше 2 Гб) рекомендується створювати SWAP розміром від 1,5 до 2-х розмірів оперативної пам'яті. І варто спробувати змінювати vm.swappiness, але краще знайти можливість збільшити обсяг оперативної пам'яті.
Для машин з об'ємом пам'яті 3-4 Гб потрібно вирішити, чи використовуватиметься suspend to disk. Якщо так, потрібно створювати SWAP розміром на 10-15% більше розміру оперативної пам'яті. Якщо suspend to disk використовуватися не буде, то можна створити SWAP невеликого розміру (розміром від половини до 1 об'єму оперативної пам'яті). Можна не створювати SWAP під час встановлення системи, а при необхідності додати його пізніше як файл.
На комп'ютерах з обсягами оперативної пам'яті більше 6Gb є сенс створити SWAP розміром наполовину від обсягу оперативної пам'яті. При цьому, якщо ви хочете використовувати глибокий сну, слід оцінити завантаження оперативної пам'яті в процесі роботи і задати величину SWAP, виходячи з цього. Наприклад, якщо обсяг оперативної пам'яті становить 16 ГБ, а робоче завантаження в середньому не перевищує 5-6 ГБ, величини SWAP-розділу в 8 ГБ вам вистачить для глибокого сну. При такому підході слід пам'ятати, що при використанні ресурсомістких програм (рендеринг зображення, компіляція величезних проектів і т.п.) оперативна пам'ять може заповнюватися повністю, а SWAP - використовуватися як підкачування. У таких ситуаціях розмір SWAP слід вибирати індивідуально.

Працюючи із секретними (зашифрованими) даними варто або шифрувати SWAP, або розглянути варіант із відмовою від SWAP зовсім (залежить від обсягу оперативної пам'яті). Варто також розглянути варіант із шифруванням всього диска.

Створення SWAP у розділі диска

Розібравшись із вимогами до SWAP, можна приступити до його створення або зміни.
Ядро Linux може працювати з кількома частинами SWAP. Тому якщо ви вирішили, що створеного при встановленні системи SWAP-розділу недостатньо, варто створити додатковий SWAP (виділити місце під розділ або файл). Однак потрібно враховувати, що для глибокого сну потрібний безперервний блок SWAP, який повинен мати розмір більший, ніж оперативна пам'ять.
Наприклад, ми маємо розділ /dev/sdc2 (ваше ім'я розділу може відрізнятися). Створимо на ньому необхідну структуру даних для роботи SWAP:

Підключимо розділ як SWAP:

Перевірити результат можна, подивившись на виведення команди

Зробимо автомонтаж SWAP-розділу при запуску системи. Дізнаємося про UUID розділу:

Тепер пропишемо рядок /etc/fstab

echo
"UUID= swap swap defaults,pri= 0 0"|
sudo
tee
-a
/etc/fstab

SWAP з динамічно змінюваним розміром

Якщо ви не хочете думати про обсяг SWAP, має сенс скористатися утилітою swapspace (Динамічний менеджер підкачки). Ця утиліта працює у фоновому режимі та динамічно керує підкачуванням. При необхідності swapspace автоматично створює додаткові файли підкачування потрібного розміру. Файли підкачки, що не використовуються, видаляються і не займають місце.
Однак, якщо ви працюєте із секретними документами, не забудьте вказати swapspace створювати SWAP-файли на зашифрованому диску або всередині шифрованого контейнера 1) .

Hibernate (suspend to disk, гібернація)

Про налаштування режиму глибокого сну можна прочитати тут.

Параметр vm.swappiness

Основний параметр, що впливає роботу системи зі swap, - це vm.swappiness. Дуже приблизно цей параметр можна визначити так: він задає відсоток вільною оперативної пам'яті, у якому починається використання подкачки. Точніше визначення сенсу цієї змінної можна усвідомити з опису, який було дано в розсилці kernel.org - стаття англійською.
Без особливої ​​потреби чіпати його не рекомендується.

Коригувати значення, застосовуване під час завантаження системи, можна, вказавши у файлі /etc/sysctl.conf значення vm.swappiness. Приклад:

echo
"vm.swappiness=30"|
sudo
tee
-a
/etc/sysctl.conf

Миттєво застосувати це налаштування можна за допомогою наступної команди:

Актуальне значення, що використовується ядром, можна переглянути або змінити в /proc/sys/vm/swappiness.

# cat /proc/sys/vm/swappiness
# echo 10 > /proc/sys/vm/swappiness

Зміни /proc/sys/vm/swappiness будуть скинуті при наступному перезавантаженні.

Значення vm.swappiness за промовчанням - 60.

Яке значення вибрати?

Маленьке значення vm.swappiness (мінімальне значення: 0) буде змушувати ядро ​​використовувати більше оперативної пам'яті під пам'ять процесів (на шкоду буферам та кешам), тоді як велике значення (максимальне значення: 100) виділятиме більше пам'яті під кеші та буфера (на шкоду пам'яті для процесів).

Потрібно розуміти, що жодне значення vm.swappiness не збільшить чарівним чином продуктивність комп'ютера багаторазово. Урізаєте кеші - знижуєте чуйність системи під час роботи з файлами, урізаєте пам'ять процесів - знижуєте чуйність системи при перемиканні завдань.

Потрібне вам значення, найімовірніше, варто підбирати експериментально.

Подібні статті

  • Скільки має бути дійсний паспорт для в'їзду до Єгипту
  • Скільки років має бути золотій рибці щоб розмножуватися
  • Скільки має бути атмосфер у балоні вуглекислоти
  • Скільки грам має бути хліб
  • Скільки креветок має бути в акваріумі
  • Скільки на скільки має бути будинок у Терарії
  • Скільки тернецій має бути в акваріумі
  • Скільки градусів має бути в тераріумі у черепахи
  • Останні статті

  • Який найвищий водоспад у Південній Америці
  • водоемульсійний лак
  • Який раціон має бути у вівчарки
  • Паливний насос високого тиску будова
  • скільки часу линяють качки
  • У чому плюс німецької вівчарки
  • гриби рядовки як приготувати
  • кімнатні рослини які не люблять світла
  • Категорії