OpenClaw
Yesterday

Настраиваем VPS-сервер для OpenClaw

Если вы уже прочитали сообщение "Устанавливаем OpenClaw на VPS", то уже понимаете, что OpenClaw не столько нужен мощный сервер, сколько сервер с достаточно большим объемом памяти. И тут возможны 2 варианты:

  1. Платить аж 400 рублей в месяц за VPS с 2 Гигабайтами оперативной памяти.
  2. Мучиться от того, что ваша OpenClaw будет тормозить.

"Но ведь есть и какой-то третий вариант?" - спросит меня пытливый читатель: "Такой, когда и тормозить сильно не будет, и платить лишние 200 рублей в месяц не придётся?".

Да, такой вариант есть. Но вам придётся самостоятельно настроить swap и архивацию памяти. Как это сделать, читайте ниже. Если для вас это сложновато, тогда лучше не пробуйте. Вы потом может быть сможете попросить саму OpenClaw, чтобы она это сделала. И она (может быть) это и сделает.

1. Настройка swap (или файла подкачки)

Тут будет много команд, все их надо будет выполнять в консоле.

Пару слов о том, что такое swap. Swap (пространство или раздел подкачки) в Linux — это специальная область на жестком диске (HDD, SSD или NVMe), которую операционная система использует как расширение оперативной памяти (ОЗУ / RAM).

Для начала надо проверить, что пока swap не настроен. Это можно сделать с помощью вот такой команды:

 free -h

Вам покажут примерно вот такое:

Как вы видите, swap отсутствует. Теперь надо для себя решить, какого размера swap вы хотите установить. Для VPS с Ubuntu и 1 ГБ ОЗУ оптимальный размер swap-файла составляет от 1 до 2 ГБ. Это стандартная и наиболее распространённая рекомендация для небольших серверов.

Но надо проверить, что на вашем VPS есть столько места на диске. Для этого используем вот эту команду:

df -h

Вам покажут что-то типа такого:

Тут видно, что размер диска на VPS - 15 Гигабайт, занято - 6.4 Гбайта, свободно - 7.6 Гбайт. OpenClaw нужно примерно 1 Гбайт на диске. Так что для данного случая можно смело отдать swap-у 2 Гигабайта.

Теперь начинаем настраивать swap. Но поскольку нам для этой настройки понадобиться текстовый редактор, рекомендую поставить редактор "nano". Для этого надо выполнить команду:

sudo apt install nano

Всё, все приготовления окончены, давайте наконец-то настроим swap.

Для этого последовательно выполните команды:

sudo fallocate -l 2G /swapfile

Если у вы хотите другой размер swap, просто измените цифру "2" в этой команде на нужную вам.

Теперь настройте доступ к файлу подкачки:

sudo chmod 600 /swapfile

Теперь надо пометить файл как пространство swap:

sudo mkswap /swapfile

И включить использование swap:

sudo swapon /swapfile

Чтобы swap всегда был после перезагрузки системы, добавьте его в файл /etc/fstab:

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

Теперь надо настроить параметр "swappiness". Этот параметр отвечает за то, как часто система использует swap (значение от 0 до 100). Рекомендуемое значение для серверов — 10:

sudo sysctl vm.swappiness=10

Чтобы сделать это изменение постоянным, добавьте строчку "vm.swappiness=10" в конец файла /etc/sysctl.conf. Для этого откройте этот файл в редакторе "nano". Для этого наберите команду:

nano /etc/sysctl.conf

Сейчас будет сложно! Для начала скопируйте "vm.swappiness=10". Выставляете курсор на нужно месте экрана и нажимаете "Shift + Insert". Строчка "vm.swappiness=10" появляется в файле. Теперь нажимаете "Ctrl + S" чтобы сохранить изменения, а потом "Ctrl + X" чтобы закрыть редактор.

На этом всё. В принципе, на этом вы можете и остановится.

Но есть ещё один способ увеличить оперативную память не увеличивая оперативную память. Звучит как бред, но это реально рабочий способ!

2. Как установить и настроить ZRAM

Пара слов о том, что такое ZRAM.

ZRAM — это модуль ядра Linux, который создает сжатое блочное устройство прямо в оперативной памяти. В Ubuntu и других дистрибутивах Linux он чаще всего используется в качестве высокоскоростного файла или раздела подкачки (SWAP). Вместо того чтобы сбрасывать неиспользуемые страницы памяти на медленный жесткий диск или изнашивать SSD (как делает обычный SWAP), система сжимает эти данные с помощью процессора и оставляет их в оперативной памяти. За счет алгоритмов сжатия удается эффективно «увеличить» доступный объем ОЗУ в 1.5–3 раза.

Как это работает простыми словами:

  1. Когда физическая оперативная память в вашей Ubuntu начинает заканчиваться, операционная система ищет, какие данные можно отправить в подкачку.
  2. Вместо записи на HDD/SSD, эти данные перенаправляются на виртуальное устройство /dev/zram0.
  3. Процессор мгновенно сжимает эти данные. В итоге массив данных, занимавший, к примеру, 1 ГБ, теперь занимает в памяти всего около 300–400 МБ.
  4. Когда эти данные снова требуются запущенной программе, процессор так же быстро их распаковывает.

Как установить ZRAM?

Перед тем, как перейти к установке, настоятельно рекомендую обновить всё ПО на вашем сервере. Для этого надо последовательно выполнить эти 4 команды:

sudo apt update
sudo apt upgrade -y
sudo apt autoremove -y
sudo apt autoclean

Теперь необходимо установить сам пакет ZRAM. Это делается с помощью этой команды:

sudo apt install zram-tools

После этого надо настроить параметры в файле /etc/default/zramswap. Для этого для начала выполняем команду:

nano /etc/default/zramswap

Тут задайте

  1. Процент оперативной памяти под ZRAM. Например, "PERCENT=50" (будет выбран процент от общей оперативной памяти) или "SIZE=512" (фиксированный размер в Мегабайтах). Но выберите что-то одно из двух, а второй параметр удалите или закоментируйте.
  2. Алгоритм сжатия: "ALGO=zstd" или "ALGO=lz4".
    zstd дает лучший уровень сжатия, но lz4 работает быстрее.
  3. Поскольку мы будем одновременно используем и swap, и ZRAM, надо задать в этом файле максимальный приоритет для ZRAM (100%) - "PRIORITY=100". То есть, у нас сначала будет работать ZRAM, но если серверу надо больше оперативной памяти, то будет дополнительно использоваться swap.

Сохраните изменения в файле, нажав "Ctrl + S", а затем выйдите из редактора, нажав "Ctrl + X".

Перезапустите службу:

sudo systemctl restart zramswap.service

Проверьте, что всё работает:

zramctl

Вы получите таблицу, в которой ключевыми являются следующие колонки:

  • DISKSIZE — максимальный виртуальный объем, который может вместить сжатый swap.
  • DATA — реальный (несжатый) объем данных, отправленных в ZRAM.
  • COMPR — фактический объем, который эти данные занимают в ОЗУ после сжатия.
  • TOTAL — общий объем памяти, выделенный под устройство (включая служебные данные).

Всё, подготовка закончена. Теперь вы готовы к установке OpenClaw. А как это сделать, расскажу в следующий раз.