Добавление 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

Cold pull — как вытащить засор из сопла и не сломать мозг

Cold pull — как вытащить засор из сопла и не сломать мозг

Знаете, что общего у принтера Flashforge 5M Pro и кофемашины, которая внезапно перестала варить кофе? Правильно — если в узком месте что-то застряло, всё остальное тут же идёт по одному месту. В 3D-принтерах это место — сопло. И когда оно забивается, без паники. Есть старый добрый способ — cold pull. А теперь по-человечески:

Проблемы с вводом-выводом на диск: что может пойти не так

Проблемы с вводом-выводом на диск: что может пойти не так

Разработка приложений, особенно тех, которые работают с файлами в транзакционных контекстах, требует учета различных сценариев, которые могут привести к ошибкам. Это особенно важно, когда речь идет о целостности данных, например, при редактировании данных на месте, а не при использовании подхода "копирование при записи". Рассмотрим несколько ситуаций, которые могут

Самохостниг (часть 10) - AudiobookShelf

Самохостниг (часть 10) - AudiobookShelf

AudiobookShelf - это бесплатный сервер аудиокниг и подкастов с открытым исходным кодом. Он позволяет вам организовать вашу коллекцию аудиокниг и подкастов, следить за прогрессом прослушивания и синхронизировать его между устройствами. В этой статье мы рассмотрим, как установить AudiobookShelf с помощью Docker Compose и настроить его работу через Traefik. Предварительные требования