Додавання області підкачки (swap) на Ubuntu

Якщо недостатньо RAM пам’яті то можно додати підкачку Swap. На більшості серверів Swap не налаштовано.

Для початку потрібно перевірити версію Ubuntu

$ lsb_release -a

В результаті ви отримаєте ось таке

No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.2 LTS
Release: 18.04
Codename: bionic

Щоб дізнатися про поточну конфігурацію вводимо

$ sudo swapon --show

Якщо в системі зараз немає області підкачування, то після цієї команди нічого не відбувається.

Також переконатися у відсутності активного підкачування можна за допомогою утиліти free:

$ free -h

У рядку Swap видно, що в системі відсутня активна підкачка.

total used free shared buff/cache available
Mem: 985M 492M 222M 50M 270M 289M
Swap: 0B 0B 0B

Перевіряємо вільний простір

$ df -h

тепер у стовпці Mounted on шукаємо пристрій /. Наприклад

Filesystem Size Used Avail Use% Mounted on
udev 480M 0 480M 0% /dev
tmpfs 99M 1016K 98M 2% /run
/dev/vda1 25G 8.4G 16G 35% /
tmpfs 493M 0 493M 0% /dev/shm

У цьому випадку використовую лише 8.4G. Тепер знаю скільки вільного місця. Тепер виділяю 2G на підкачування.

$ sudo fallocate -l 2G /swapfile

Тепер перевіряю правильність виділеного об’єму пам’яті

$ ls -lh /swapfile

Тепер потрібно, щоб тільки користувачі з правами root могли читати його вміст. Щоб передати всі права доступу користувачам root

$ sudo chmod 600 /swapfile

І перевіряємо зміни

$ ls -lh /swapfile

Після побачимо

-rw——- 1 root root 2.0G Dec 23 15:52 /swapfile

Тепер можемо відзначити файл як простір підкачки

$ sudo mkswap /swapfile

У відповіді

Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
no label, UUID=293fc4b0-159d-473b-8a53-80244d6492a6

Тепер можна активувати файл підкачки, щоб система могла його використовувати

$ sudo swapon /swapfile

Тепер перевіряємо, що простір підкачки активований

$ sudo swapon --show

У відповіді

NAME TYPE SIZE USED PRIO
/swapfile file 2G 0B -2

Щоб підтвердити наші висновки, можемо знову перевірити відповідь утиліти free:

$free -h

У відповіді

total used free shared buff/cache available
Mem: 985M 516M 189M 50M 279M 266M
Swap: 2.0G 0B 2.0G

Наразі файл підкачки доступний у поточній сесії і не буде доступний після перезавантаження комп’ютера. Тепер потрібно зробити файл підкачування постійним. Потрібно зробити резервну копію файлу /etc/fstab на випадок, якщо щось піде не так:

$ sudo cp /etc/fstab /etc/fstab.bak

Додайте інформацію про файл підкачки в кінець файлу /etc/fstab

$ echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Перезавантажуємо та перевіряємо.