> ## Documentation Index
> Fetch the complete documentation index at: https://wiki.lumiweb.cc/llms.txt
> Use this file to discover all available pages before exploring further.

# Своп-файл

> Подкачка при нехватке RAM

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

<Warning>
  Swap — не замена оперативной памяти. Диск в десятки раз медленнее RAM. Swap спасает от внезапных падений и сглаживает пики, но если сервер постоянно «сидит» в подкачке — это сигнал, что памяти реально мало.
</Warning>

## Проверить текущее состояние

Сначала посмотри, есть ли уже swap и сколько свободной памяти:

```bash theme={"system"}
free -h
swapon --show
```

`free -h` покажет строки `Mem` (RAM) и `Swap`. Если `swapon --show` ничего не выводит — подкачки нет.

## Создать swap-файл

Подключайся к серверу по SSH под `root` (IP и пароль — в карточке сервера в боте) и выполняй команды по шагам.

<Steps>
  <Step title="Создать файл нужного размера">
    Быстрый способ — `fallocate`:

    ```bash theme={"system"}
    fallocate -l 2G /swapfile
    ```

    Если `fallocate` недоступен или файловая система его не поддерживает, используй `dd`:

    ```bash theme={"system"}
    dd if=/dev/zero of=/swapfile bs=1M count=2048 status=progress
    ```

    `count=2048` при `bs=1M` даёт ровно 2 ГБ.
  </Step>

  <Step title="Закрыть доступ для посторонних">
    Swap-файл должен быть доступен только root, иначе система откажется его подключать:

    ```bash theme={"system"}
    chmod 600 /swapfile
    ```
  </Step>

  <Step title="Разметить как swap">
    ```bash theme={"system"}
    mkswap /swapfile
    ```
  </Step>

  <Step title="Включить">
    ```bash theme={"system"}
    swapon /swapfile
    ```

    Проверь, что подкачка появилась:

    ```bash theme={"system"}
    swapon --show
    free -h
    ```
  </Step>

  <Step title="Включить автозагрузку">
    Чтобы swap подключался после перезагрузки, добавь строку в `/etc/fstab`:

    ```bash theme={"system"}
    echo '/swapfile none swap sw 0 0' >> /etc/fstab
    ```

    Проверь, что строка добавилась один раз: `grep swapfile /etc/fstab` — дубли в `fstab` приводят к ошибкам при загрузке.
  </Step>
</Steps>

## Сколько выделять

Жёсткого правила нет, ориентир такой:

| RAM сервера    | Рекомендуемый swap        |
| -------------- | ------------------------- |
| 1–2 ГБ         | равен объёму RAM (1–2 ГБ) |
| 4–8 ГБ         | 2–4 ГБ                    |
| 16 ГБ и больше | 2–4 ГБ достаточно         |

Логика: на младших тарифах (VPS-0, VPS-1 с 1–2 ГБ RAM) swap реально выручает; на старших он скорее «страховка» от редких пиков, гнаться за объёмом смысла нет.

## Настроить swappiness

`vm.swappiness` (0–100) определяет, насколько охотно ядро уходит в подкачку. По умолчанию обычно `60`. Для сервера разумно снизить до `10` — тогда swap используется только при реальной нехватке памяти, а не «на всякий случай».

Текущее значение:

```bash theme={"system"}
cat /proc/sys/vm/swappiness
```

Применить сразу (до перезагрузки):

```bash theme={"system"}
sysctl vm.swappiness=10
```

Закрепить навсегда — добавить в `/etc/sysctl.conf`:

```bash theme={"system"}
echo 'vm.swappiness=10' >> /etc/sysctl.conf
```

<Note>
  Диски у Lumi на NVMe, поэтому swap здесь заметно быстрее, чем на обычных HDD/SATA-SSD. Но даже быстрый NVMe всё равно медленнее RAM. Если ты постоянно упираешься в память и swap «горит» — это не повод раздувать файл, а повод [апгрейдить тариф через поддержку](https://t.me/lumisup_robot).
</Note>

## Куда дальше

<CardGroup cols={2}>
  <Card title="Запустить LLM на сервере" icon="robot" href="/vps/llm">
    Ollama и локальные языковые модели на VPS.
  </Card>

  <Card title="VPS не работает" icon="triangle-exclamation" href="/vps/troubleshooting">
    Проблемы с подключением, нагрузка, другие частые ситуации.
  </Card>
</CardGroup>
