Настраиваем VPS-сервер для OpenClaw
Если вы уже прочитали сообщение "Устанавливаем OpenClaw на VPS", то уже понимаете, что OpenClaw не столько нужен мощный сервер, сколько сервер с достаточно большим объемом памяти. И тут возможны 2 варианты:
- Платить аж 400 рублей в месяц за VPS с 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 раза.
Как это работает простыми словами:
- Когда физическая оперативная память в вашей Ubuntu начинает заканчиваться, операционная система ищет, какие данные можно отправить в подкачку.
- Вместо записи на HDD/SSD, эти данные перенаправляются на виртуальное устройство
/dev/zram0. - Процессор мгновенно сжимает эти данные. В итоге массив данных, занимавший, к примеру, 1 ГБ, теперь занимает в памяти всего около 300–400 МБ.
- Когда эти данные снова требуются запущенной программе, процессор так же быстро их распаковывает.
Как установить 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
- Процент оперативной памяти под ZRAM. Например, "PERCENT=50" (будет выбран процент от общей оперативной памяти) или "SIZE=512" (фиксированный размер в Мегабайтах). Но выберите что-то одно из двух, а второй параметр удалите или закоментируйте.
- Алгоритм сжатия: "ALGO=zstd" или "ALGO=lz4".
zstd дает лучший уровень сжатия, но lz4 работает быстрее. - Поскольку мы будем одновременно используем и 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. А как это сделать, расскажу в следующий раз.