Добавление SWAP в Ubuntu

Добавление SWAP в Ubuntu
Photo by Gabriel Heinzer / Unsplash

Что такое Swap и зачем он нужен?

Swap (подкачка) — это пространство на диске, которое используется, когда физической оперативной памяти (RAM) становится недостаточно. Когда система Linux исчерпывает доступную RAM, неактивные страницы памяти перемещаются в swap-пространство, освобождая место для активных процессов.

Swap может быть организован двумя способами:

  • Swap-раздел — выделенный раздел на диске
  • Swap-файл — обычный файл, используемый для подкачки

В современных версиях Linux (с ядром 2.6 и новее) производительность swap-файла практически не уступает swap-разделу, при этом файл гораздо удобнее в администрировании.

Создание swap-файла в Ubuntu

Шаг 1: Создание файла для swap

Откройте терминал (Ctrl+Alt+T) и выполните команду для создания файла размером 1 ГБ:

sudo fallocate -l 1G /swapfile

Если команда fallocate не работает (может возникать на некоторых файловых системах), используйте альтернативу:

sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576

Где:

  • bs=1024 — размер блока в байтах
  • count=1048576 — количество блоков (1024×1024 = 1 ГБ)

Шаг 2: Настройка прав доступа

Для безопасности ограничим доступ к файлу только для root:

sudo chmod 600 /swapfile

Шаг 3: Форматирование файла под swap

Инициализируем файл как swap-область:

sudo mkswap /swapfile

Шаг 4: Активация swap

Включим созданный swap-файл:

sudo swapon /swapfile

Шаг 5: Автоматическое подключение при загрузке

Отредактируем файл /etc/fstab, добавив в конец строку:

/swapfile none swap sw 0 0

Или используйте команду для автоматического добавления:

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

Проверка работы swap

Убедимся, что swap активен:

sudo swapon --show

Или посмотрим общую информацию о памяти:

free -h

Пример вывода:

              total        used        free      shared  buff/cache   available
Mem:           3.9G        1.2G        1.5G        123M        1.1G        2.3G
Swap:          1.0G          0B        1.0G

Настройка параметра swappiness

Swappiness — это параметр ядра Linux, определяющий, как часто система будет использовать swap. Значение может быть от 0 до 100:

  • 0 — система будет избегать использования swap
  • 100 — система будет активно использовать swap

Проверим текущее значение:

cat /proc/sys/vm/swappiness

По умолчанию обычно стоит 60. Для серверов часто рекомендуют уменьшить это значение:

sudo sysctl vm.swappiness=10

Чтобы изменение сохранилось после перезагрузки, добавьте в /etc/sysctl.conf:

echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf

Удаление swap-файла

Если swap-файл больше не нужен:

  1. Отключите swap:
sudo swapoff -v /swapfile
  1. Удалите запись из /etc/fstab
  2. Удалите сам файл:
sudo rm /swapfile

Рекомендации по размеру swap

Размер swap зависит от объема RAM и использования системы:

  • Для настольных систем:
    • До 4 ГБ RAM: минимум 2 ГБ swap
    • 4-8 ГБ RAM: равен объему RAM
    • Более 8 ГБ RAM: 0.5×RAM или меньше
  • Для серверов:
    • До 2 ГБ RAM: 2×RAM
    • 2-8 ГБ RAM: равен объему RAM
    • Более 8 ГБ RAM: 0.5×RAM или меньше

Для систем с hibernation (режим сна) swap должен быть не меньше объема RAM.

Заключение

Добавление swap-файла — простой способ увеличить доступную память системы без изменения разделов диска. Это особенно полезно для виртуальных машин и облачных серверов, где добавление swap-раздела может быть затруднено.

Помните, что swap — это не замена RAM, а лишь временное решение. Если система активно использует swap, стоит рассмотреть возможность увеличения физической памяти.

Read more

🔄 Своя Dropbox-альтернатива: Syncthing

🔄 Своя Dropbox-альтернатива: Syncthing

🧠 Зачем? Облачные сервисы — удобно, но: * не хочется платить Google/Dropbox за хранение своих файлов * хочется моментально синхронизировать фото, документы и заметки между устройствами * и делать это на своём сервере, без отправки данных «в облако» 👉 Решение — Syncthing: децентрализованный, зашифрованный, open source-синк между любыми устройствами. 🚀 Что ты получишь? * 📂 Автосинк папок между сервером,

🎧 Свой подкаст-сервер за 5 минут: Podgrab

🎧 Свой подкаст-сервер за 5 минут: Podgrab

✨ Зачем? Подкасты — отличный способ учиться, развлекаться и быть в курсе мира. Но что, если: * Хочется слушать подкасты офлайн * Хочется архивировать любимые шоу * Не устраивают сторонние сервисы, реклама и трекеры Решение: Podgrab — простой подкаст-граббер, который автоматически скачивает новые выпуски с любого RSS. А в связке с Audiobookshelf ты получаешь полноценный медиасервер.

Безопасное управление конфигурациями в Ansible: Полное руководство по использованию rescue и always

Безопасное управление конфигурациями в Ansible: Полное руководство по использованию rescue и always

Введение: Почему это важно В мире DevOps и системного администрирования существует простое правило: всё ломается. Особенно в самый неподходящий момент. Когда вы изменяете конфигурацию критического сервиса (например, Nginx), цена ошибки может быть очень высока — от простого даунтайма до потери данных. Ansible предлагает элегантное решение для безопасного внесения изменений через механизм

Использование ~/.ssh/authorized_keys для управления входящими SSH-соединениями

Использование ~/.ssh/authorized_keys для управления входящими SSH-соединениями

Файл ~/.ssh/authorized_keys позволяет настроить команды, которые будут выполняться при входящих SSH-соединениях. Это полезный инструмент для управления доступом и обеспечения безопасности, особенно при работе с резервным копированием данных. Настройка резервного копирования с использованием authorized_keys В данном примере рассматривается использование authorized_keys для настройки резервного копирования базы данных Bacula