Swapfile в Linux

Як налаштувати файл підкачки swapfile в Linux?

Swapfile — це службовий файл, який дозволяє операційній системі Linux використовувати простір жорсткого диска (так званий “простір підкачки”) для розширення основної оперативної пам’яті (RAM) в разі переповнення буфера. Якщо файлу підкачки не існує, а оперативної пам’яті недостатньо, у момент перенавантаження всі процеси та служби в системі просто будуть зупинені або вбиті ядром Linux, що у підсумку спричинить падіння сервера. Тож Swapfile є додатковою умовою, котра покращує відмовостійкість операційної системи й допоможе утримати сервер в робочому стані при максимальному навантаженні.

Як перевірити файл підкачки в Linux?

Перевірити файл підкачки в операційній системі Linux можна двома командами:

free -m

Free memory in Linux

Якщо файлу підкачки не існує — в рядку Swap будуть просто нулі:

swapon --summary

  • Type — тип підкачки, може бути у вигляді файлу або дискового розділу.
  • Size — розмір файлу підкачки.
  • Used — кількість використаної пам’яті з файлу підкачки.
  • Prio — приорітет, якщо в системі є кілька таких файлів.

Як розрахувати оптимальний розмір файлу підкачки Linux?

Розмір swapfile залежить від наступних факторів:

  • рівня навантаженості системи;
  • кількості оперативної пам’яті;
  • кількості вільного простору на жорсткому диску.

Наприклад, якщо у вас 4 Гб оперативної пам’яті і система постійно виснажується, то оптимальним буде 6 Гб файлу підкачки. Тобто, додаємо трішки більше за розмір основної оперативної пам’яті. Але ви можете зустріти рекомендацію створювати swapfile об’ємом 20% від ОЗП. Така конфігурація не виправдала себе на практиці, тому я від неї відмовився. Також допустимо встановлювати файл підкачки у співвідношенні 1:1. Але, якщо на сервері високі навантаження, необхідно робити swapfile з запасом, тобто більшим.

ЧИТАЙТЕ ТАКОЖ:  ТОП мережевих команд ОС Windows

Як збільшити файл підкачки в Linux?

Необхідні спочатку вимкнути та видалити існуючий файл підкачки:

sudo swapoff /swapfilename
rm -f swapfile

Тепер створюємо новий swapfile з необхідними параметрами та виставляємо права доступу на файл:

sudo fallocate -l 10G /swapfile
sudo chmod 600 /swapfile

Форматуємо і потім вмикаємо файл підкачки:

sudo mkswap /swapfile
sudo swapon /swapfile

Тепер, щоби після перезвантаження системи файл підкачки не злетів, необхідно додати його у файл конфігурації fstab:

nano /etc/fstab

Додаємо у самий кінець рядок:

/swapfile none swap defaults 0 0

Якщо файлів підкачки декілька, виставляємо пріоритет:

/swapfile none swap defaults,pri=100 0 0

Зберігаємо файл і перезавантажуємо систему.

Як швидко створити файл підкачки (swapfile) в Linux?

Один із способів:

  • dd if=/dev/zero of=/swapfile count=2048 bs=1M – створення файлу підкачки розміром 2Гб і читанням 1Мб з допомогою команди dd (альтернатива fallocate). Потрібно буде трохи зачекати.
  • chmod 600 /swapfile – виставляємо права доступу
  • mkswap /swapfile – форматуємо
  • swapon /swapfile – активуємо
  • sudo echo "/swapfile none swap sw 0 0" >> /etc/fstab – додаємо в автозавантаження
  • swapon --summary – перевіряємо

Готово.

Скрипт створення swapfile на VPS-сервері

# 1. Створіть swap-файл (це займе ~1-2 хвилини)
sudo dd if=/dev/zero of=/swapfile bs=1M count=2048 status=progress

# 2. Встановіть правильні права доступу (важливо для безпеки!)
sudo chmod 600 /swapfile

# 3. Налаштуйте файл як swap
sudo mkswap /swapfile

# 4. Активуйте swap
sudo swapon /swapfile

# 5. Перевірте, що swap працює
free -m
```

Ви повинні побачити щось на кшталт:
```
              total        used        free      shared  buff/cache   available
Mem:           3853        1063         520         261        2269        2247
Swap:          2047           0        2047

# Додайте в /etc/fstab
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

# Перевірте, що запис додано
tail -1 /etc/fstab

# Встановіть swappiness=10 (використовувати swap тільки при необхідності)
sudo sysctl vm.swappiness=10

# Зробіть це налаштування постійним
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf

# Перевірте статус swap
swapon --show

# Перевірте використання пам'яті
free -h

Автор: © Konrad Ravenstone, KR. Laboratories Research Labs

Konrad Ravenstone// про автора

Кібермольфар, хакер, лінуксоїд, дослідник безпеки в KR. Labs Research

Сподобалася стаття? Поділитися в соцмережах:
KR. Labs Research
Рекомендоване:
Kali NetHunter — це безкоштовна платформа тестування на проникнення з…