Оглавление
Swap – это раздел на жестком диске, в котором система временно хранит данные, которые она больше не может удерживать в RAM. Это позволяет увеличить количество информации, хранящейся в рабочей памяти, но с некоторыми нюансами. Пространство жесткого диска будет использоваться, главным образом, когда оперативной памяти уже недостаточно для передачи данных.
Проверка системы на swap
Чтобы узнать, есть ли активное swap-пространство в этой системе, введите:
swapon --show
Если команда не вернула результатов, в текущей системе нет swap-пространства.
Еще один способ проверить swap – утилита free, которая показывает использование памяти системы:
free -h
total used free shared buff/cache available Mem: 1.9Gi 149Mi 1.5Gi 1.0Mi 294Mi 1.6Gi Swap: 0B 0B 0B
Проверка свободного пространства на жёстком диске
Теперь нужно узнать текущее состояние диска. Чтобы получить эти данные, введите:
df -h
Filesystem Size Used Avail Use% Mounted on udev 984M 0 984M 0% /dev Filesystem Size Used Avail Use% Mounted on udev 950M 0 950M 0% /dev tmpfs 199M 1.1M 198M 1% /run /dev/mapper/ubuntu--vg-ubuntu--lv 20G 2.8G 16G 15% / tmpfs 994M 0 994M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 994M 0 994M 0% /sys/fs/cgroup /dev/loop0 56M 56M 0 100% /snap/core18/2128 /dev/loop3 33M 33M 0 100% /snap/snapd/13170 /dev/loop2 71M 71M 0 100% /snap/lxd/21029 /dev/loop1 68M 68M 0 100% /snap/lxd/21545 /dev/loop4 62M 62M 0 100% /snap/core20/1081 /dev/loop5 33M 33M 0 100% /snap/snapd/12704 /dev/sda2 976M 203M 707M 23% /boot tmpfs 199M 0 199M 0% /run/user/1000
Существует много различных мнений о «правильном» размере swap-пространства. В целом это зависит от личных предпочтений пользователя и требований приложения. Как правило, swap-пространство должно быть равно или вдвое больше объема оперативной памяти системы. В этом вопросе нужно ориентироваться на свободное дисковое пространство. Например, если RAM системы – 4 гигабайта, то вдвое большее swap-пространство (т.е., 8 гигабайт) займет существенную часть диска, а значит swap должен быть не более 4 гигабайт.
Создание swap-файла
Создадим файл с именем swapfile и расположением в root-каталоге (/).
Быстрее всего такой файл создаёт программа fallocate:
fallocate -l 4G /swapfile
Чтобы проверить выделенный объём памяти, введите команду:
ls -lh /swapfile
-rw-r--r-- 1 root root 4.0G Oct 4 08:17 /swapfile
Файл был создан
Включение swap-пространства
Теперь нужно отформатировать созданный файл, а затем включить его.
Прежде всего нужно изменить права на файл, чтобы право на чтение имел только root:
chmod 600 /swapfile
Снова проверим права на файл:
ls -lh /swapfile
-rw------- 1 root root 4.0G Oct 4 08:17 /swapfile
Теперь только root может читать файл и вносить в него изменения.
Далее, нужно указать системе на swap-пространство с помощью команды:
mkswap /swapfile
Setting up swapspace version 1, size = 4 GiB (4294963200 bytes)
no label, UUID=8bd07e8d-b617-48ef-a32e-ae18cceb4bfb
Чтобы включить swap-пространство, введите команду:
swapon /swapfile
Убеждаемся что операция прошла успешно:
swapon --show
NAME TYPE SIZE USED PRIO /swapfile file 4G 0B -2
Также можно использовать утилиту free:
free -h
total used free shared buff/cache available
Mem: 1.9Gi 151Mi 1.5Gi 1.0Mi 295Mi 1.6Gi
Swap: 4.0Gi 0B 4.0Gi
Теперь система знает о включенном swap-пространстве.
Автозагрузка swap
Итак, теперь swap-пространство включено, но оно будет действительно только в текущей сессии. При перезапуске сервер не будет запускать его автоматически. Чтобы изменить это, отредактируйте файл fstab. Создайте резервную копию файла на всякий случай:
cp /etc/fstab /etc/fstab.bak
Добавьте данные о swap в конец файла:
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab