Сколько RAM нужно для YunoHost
Официальный минимум YunoHost — 1 ГБ RAM, и формально дистрибутив на этой памяти действительно ставится и запускается. Вопрос не в том, стартует ли система, а в том, что происходит через неделю, когда поверх базового стека встанут Nextcloud, чат и почта, а ночной yunohost backup create наложится на входящее письмо со спамом. YunoHost — это не одна программа, а сразу LDAP-каталог, почтовый сервер, DNS-резолвер, база данных и веб-панель, работающие одновременно ещё до первого установленного приложения. Разберём, из чего складывается память в покое, что добавляет каждое приложение и какой запас закладывать на сервер.
Содержание
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Короткий ответ: сколько закладывать
Цифры для YunoHost 11 (Debian 12) на Ubuntu 24.04 или чистом Debian 12 — по памяти дистрибутивы ведут себя одинаково, так как YunoHost сам разворачивает поверх один и тот же стек.
| RAM | Что реально помещается | Честный комментарий |
|---|---|---|
| 1 ГБ | Голый YunoHost без приложений, тестовый стенд | Первая же установка Nextcloud или почтовый шторм уводят систему в swap |
| 2 ГБ | 1–2 человека, почта + 1–2 лёгких приложения (Wallabag, Baikal, VaultWarden) | Рабочий минимум для личного использования |
| 4 ГБ | Семья или маленькая команда, почта + Nextcloud + чат | Комфортный выбор по умолчанию |
| 8 ГБ | 10–20 человек, 4–6 приложений одновременно, антиспам-проверки под нагрузкой | Уже можно добавить Rocket.Chat или Mastodon без опаски |
| 16 ГБ | Полный набор личных сервисов + видеосвязь (Jitsi), поиск, аналитика | Нужен, когда одновременно активны 5+ тяжёлых приложений |
Ключевая разница с обычной VPS-панелью: у YunoHost есть фиксированная база, которая занимает память ещё до первого приложения — почтовые демоны, LDAP, SSO. Дальше каждое установленное из каталога приложение — это отдельный php-fpm-пул, отдельная база или отдельный процесс на Node/Python, и они складываются арифметически, а не делят общий пул, как в панелях с одним LEMP-стеком на всех.
Из чего состоит база YunoHost ещё до приложений
Сразу после установки, без единого пакета из каталога, в системе уже работает десяток сервисов. Замер на свежем YunoHost 11 на Ubuntu 24.04, 2 vCPU, покой:
| Компонент | Занято RAM | Зачем нужен |
|---|---|---|
slapd (OpenLDAP) | 25–40 МБ | Единая база пользователей для SSO |
| Postfix + Dovecot | 40–70 МБ | Почтовый сервер (SMTP/IMAP), включён всегда |
| MySQL/MariaDB | 150–250 МБ | Метаданные YunoHost и БД для приложений |
| Redis | 5–10 МБ | Кеш SSOwat и сессий |
| Nginx | 15–25 МБ | Обратный прокси перед всеми приложениями и почтой |
| Fail2ban | 15–25 МБ | Блокировка перебора паролей на SSH, SSO, почте |
yunohost-api + moulinette (Python) | 60–100 МБ | Бэкенд админ-панели, оживает при каждом действии в веб-интерфейсе |
| systemd, sshd, DNS-резолвер, cron | 150–220 МБ | Обвязка ОС |
Суммарно голая база занимает 450–650 МБ в покое — это тот минимум, который «съедается» даже если вы не поставили ни одного приложения. Проверить на своей машине:
free -m
total used free shared buff/cache available
Mem: 1959 612 98 18 1249 1180
Swap: 511 0 511
На 2 ГБ после чистой установки available уже показывает около 1,2 ГБ — именно этот остаток делится между приложениями, которые вы поставите дальше. Кто конкретно ест память, честнее покажет smem (в базовых репозиториях нет — ставится отдельно), где PSS учитывает разделяемые библиотеки один раз, а не в каждом процессе:
sudo apt install -y smem
sudo smem -t -k -P 'mysqld|slapd|postfix|dovecot|nginx|redis|python3' -c 'name pss rss'
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать серверПочему официальный минимум в 1 ГБ обманчив
В требованиях проекта заявлен 1 ГБ RAM — и это действительно нижняя граница, на которой инсталлятор install.yunohost.org отрабатывает без ошибок. Но сам процесс установки — не показатель повседневной работы: скрипт ставит пакеты последовательно, а не запускает их все одновременно под нагрузкой.
Проблема вскрывается на первом же серьёзном действии после установки: обновление системы (yunohost tools upgrade -t system) поднимает apt, распаковку пакетов и пересборку конфигов SSOwat одновременно — на 1 ГБ процесс регулярно уходит в swap на десятки минут; установка приложения из каталога сама разворачивает окружение Python или Node параллельно с уже работающими LDAP и MySQL; приём почты со спам-фильтрацией через Rspamd кратковременно добавляет десятки мегабайт на каждое одновременное соединение.
На дешёвом VPS с 1 ГБ и без swap любое из этих событий может закончиться в dmesg:
Out of memory: Killed process 892 (mysqld) total-vm:1048576kB,
anon-rss:186532kB, file-rss:0kB, shmem-rss:0kB, UID:112 oom_score_adj:0
Убивают обычно MySQL или slapd — самые крупные резиденты, хотя виновник запроса на память чаще другой процесс. После такого падения панель может частично не открываться, пока сервис не перезапущен вручную (systemctl restart mysql slapd). Вывод простой: 1 ГБ годится для теста «как это выглядит», но не для сервера, который вы планируете реально использовать хотя бы с двумя людьми и одним приложением.
Сколько добавляет каждое приложение из каталога
В отличие от классической LEMP-панели, где все сайты делят общий php-fpm-пул, в YunoHost у каждого приложения свой пул воркеров, а нередко и свой процесс рантайма.
| Приложение | Добавляет к базе | Особенность |
|---|---|---|
| Nextcloud | +300–600 МБ (свой пул php-fpm + прирост MySQL) | Самое частое первое приложение, требования близки к отдельному разбору по Nextcloud |
| VaultWarden (Bitwarden-совместимый) | +15–30 МБ | Написан на Rust, один из самых лёгких пакетов каталога |
| Wallabag / Baikal (RSS, CalDAV) | +40–80 МБ каждый | Лёгкие PHP-приложения, свой пул из 2-3 воркеров |
| WordPress | +80–150 МБ на воркер php-fpm | Плагины (WooCommerce, кеш) добавляют ещё 50–150 МБ на пик |
| Rocket.Chat | +500–800 МБ (Node.js + MongoDB) | Одно из самых тяжёлых приложений каталога, MongoDB держит свой WiredTiger-кеш |
| Gitea | +100–200 МБ | Go-бинарник, память растёт с числом одновременных клонов репозиториев |
| Mastodon | +1–1,5 ГБ (Ruby + Sidekiq + Redis + PostgreSQL) | Официально не рекомендуется на серверах слабее 4 ГБ даже под личный узел |
| Jitsi Meet (self-hosted) | +400–700 МБ на активную комнату | Видеотрафик процессорнее памяти, но JVB держит буферы на каждого участника |
Три и больше «средних» приложения (Nextcloud + чат + wiki) на 2 ГБ уже не помещаются одновременно — YunoHost их установит без ошибки, но в моменты, когда активны все сразу, система уйдёт в swap, а сама админка начнёт открываться заметно медленнее из-за конкуренции за CPU с moulinette. Список установленного и его вес прямо сейчас:
yunohost app list
Как замерить пик, а не текущее потребление
Тариф под YunoHost стоит подбирать по худшему моменту, а не по показанию free в спокойный час. В Ubuntu 24.04 и Debian 12 с cgroup v2 системные сервисы хранят пиковое потребление отдельно от текущего — подставьте имя юнита из systemctl list-units | grep <app>:
systemctl show -p MemoryCurrent --value mysql
cat /sys/fs/cgroup/system.slice/mysql.service/memory.peak
Второй источник правды — swap. Если он растёт день ото дня, а не только в окно ночного бэкапа, памяти не хватает системно, а не разово:
vmstat 1 5
Колонка si/so (swap in/out) вне окна бэкапа должна быть нулевой; постоянно ненулевые значения — сигнал поднимать тариф, а не оптимизировать конфиги дальше. Отдельно стоит заглянуть в /var/log/yunohost/operation.log — операции установки и обновления приложений упавшее из-за нехватки памяти действие покажет там раньше, чем в dmesg.
Что реально снижает потребление памяти
Официального «tuning-гайда» под низкую память у YunoHost, в отличие от голого Nextcloud, немного — панель сама управляет конфигами и не поощряет ручное вмешательство в сгенерированные файлы (следующий yunohost tools upgrade может их перезаписать). Но несколько вещей работают безопасно и переживают обновления:
- Не ставьте лишнее «на всякий случай». Каждое установленное приложение — это не только память в покое, но и постоянный процесс, который надо обновлять и который может сломаться при системном апгрейде. Снесённое неиспользуемое приложение освобождает память сразу:
yunohost app remove <id_приложения>
- MySQL под YunoHost. Панель выставляет
innodb_buffer_pool_sizeисходя из RAM на момент установки, но если сервер апгрейдили позже, буфер останется на старом значении. Проверить и поднять — через файл переопределения, а не системный конфиг, который перезапишет апдейт:
mysql -e "SHOW VARIABLES LIKE 'innodb_buffer_pool_size';"
# /etc/mysql/mariadb.conf.d/z-override.cnf
[mysqld]
innodb_buffer_pool_size = 512M
- Swap обязателен, а не опционален. Многие VPS-образы без него — проверьте
swapon --show, при пустом выводе добавьте файл подкачки:
fallocate -l 2G /swapfile && chmod 600 /swapfile && mkswap /swapfile && swapon /swapfile
echo '/swapfile none swap sw 0 0' >> /etc/fstab
sysctl vm.swappiness=10
Подробный разбор выбора размера — в статье про правильный размер swap для VPS. Это подушка на пик нагрузки, а не замена нехватающей памяти на постоянной основе — если swap используется каждый день, а не эпизодически, пора поднимать тариф.
- Разведите бэкапы и обновления по времени.
yunohost backup createиyunohost tools upgradeтяжёлые по памяти и диску; в одном окне через cron их суммарный пик заметно выше, чем по отдельности.
Какой сервер под YunoHost взять в MAATRIX
Честный минимум: 1 vCPU, 2 ГБ RAM, 30 ГБ NVMe. Годится для одного-двух человек с почтой и одним-двумя лёгкими приложениями (VaultWarden, Baikal, Wallabag). База YunoHost без приложений уже занимает 450–650 МБ, так что запас есть, но небольшой — тяжёлые пакеты вроде Rocket.Chat или Mastodon сюда не поместятся.
Комфортный вариант: 2 vCPU, 4 ГБ RAM, 60–80 ГБ NVMe. Разумный выбор по умолчанию для семьи или маленькой команды: почта, Nextcloud, один чат-сервис одновременно, без постоянного сползания в swap. Второе ядро заметно на этом сценарии — moulinette и MySQL периодически конкурируют за CPU при установке или обновлении приложений, и на одном ядре админка в этот момент подвисает.
Нужен полный набор личных сервисов: 4 vCPU, 8 ГБ, от 120 ГБ NVMe. Почта + Nextcloud + чат + Mastodon или Jitsi одновременно — ровно тот случай, где арифметика по таблице выше уже даёт 3–4 ГБ только на приложения сверх базы.
Локация — по получателям почты. YunoHost прежде всего почтовый сервер, и здесь важна не задержка, а репутация IP: письма с новых адресов иностранных дата-центров иногда чаще попадают в спам у Mail.ru и Яндекса, чем с российского IP, и наоборот для Gmail и европейских провайдеров. Основные получатели в России — берите российскую площадку, аудитория смешанная или в Европе — Лондон.
YunoHost в каталоге apps.maatrix.io разворачивается на сервер автоматически при заказе — база из LDAP, Postfix, MySQL и SSOwat поднимается сама, вам остаётся привязать домен и поставить приложения из каталога. Адрес и данные для входа появляются в личном кабинете, в разделе «Доступ». Оплата — картами российских банков, по СБП, криптовалютой или токеном MAAT, иностранная карта не нужна и для европейской площадки.
Установка с нуля, включая DNS и SSL, разобрана в статье про установку YunoHost на Ubuntu 24.04, а общий подход к расчёту запаса — в статье сколько оперативной памяти закладывать с запасом.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать серверНужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.
Частые вопросы
Хватит ли 1 ГБ RAM для YunoHost?
Для теста «посмотреть, как это выглядит» — да. Для реального использования хотя бы с одним приложением и почтой — нет: база сама занимает 450–650 МБ, и первое обновление системы или установка приложения с высокой вероятностью уйдёт в swap или закончится Killed process в dmesg.
Почему YunoHost требует больше памяти, чем просто Nextcloud на голой Ubuntu?
Потому что вы получаете не одно приложение, а сразу LDAP, полноценный почтовый сервер, DNS-резолвер, SSOwat и панель управления — весь стек работает постоянно, даже если из каталога поставлено всего одно приложение.
Можно ли снизить потребление отключением почты, если она не нужна?
Postfix и Dovecot штатно не отключить — YunoHost считает почту частью ядра, адреса пользователей строятся вокруг неё. Реально работает другое: не устанавливать лишнее и сносить неиспользуемое через yunohost app remove.
Сколько памяти добавляет каждый новый пользователь?
Сама учётная запись в LDAP — считаные килобайты, но активный пользователь — это IMAP-сессия в Dovecot и, если открыт Nextcloud, отдельный php-fpm-воркер. Планируйте память по числу одновременно активных людей, а не по общему числу аккаунтов.
Стоит ли ставить YunoHost на 512 МБ для разового личного проекта?
Не стоит — это ниже официального минимума, и установка нестабильна: инсталлятор разворачивает slapd, MySQL и Postfix почти одновременно, и без запаса OOM-killer прерывает процесс на середине.
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →