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

- Type — тип підкачки, може бути у вигляді файлу або дискового розділу.
- Size — розмір файлу підкачки.
- Used — кількість використаної пам’яті з файлу підкачки.
- Prio — приорітет, якщо в системі є кілька таких файлів.
Як розрахувати оптимальний розмір файлу підкачки Linux?
Розмір swapfile залежить від наступних факторів:
- рівня навантаженості системи;
- кількості оперативної пам’яті;
- кількості вільного простору на жорсткому диску.
Наприклад, якщо у вас 4 Гб оперативної пам’яті і система постійно виснажується, то оптимальним буде 6 Гб файлу підкачки. Тобто, додаємо трішки більше за розмір основної оперативної пам’яті. Але ви можете зустріти рекомендацію створювати swapfile об’ємом 20% від ОЗП. Така конфігурація не виправдала себе на практиці, тому я від неї відмовився. Також допустимо встановлювати файл підкачки у співвідношенні 1:1. Але, якщо на сервері високі навантаження, необхідно робити swapfile з запасом, тобто більшим.
Як збільшити файл підкачки в 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




