Сколько RAM нужно для OnlyOffice
Открыть общий документ в браузере, увидеть, как коллега печатает в реальном времени, и не платить за подписку на облачный офисный пакет — ради этого OnlyOffice чаще всего и ставят на свой сервер. Проблема в том, что официальные «минимальные требования» на сайте разработчика написаны для сферического сервера в вакууме: сервис на них запустится, но при первой же совместной правке большого файла упадёт в OOM или начнёт тормозить так, что проще вернуться в Google Docs. Разберёмся, сколько памяти реально закладывать под разные сценарии — от одиночного редактора документов до полноценного портала с почтой и CRM.
Содержание
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Из чего состоит OnlyOffice и почему это не один процесс
Под именем OnlyOffice скрываются два разных продукта, и требования к RAM у них отличаются в разы.
OnlyOffice Docs (Document Server) — это движок редактирования: сервис, который открывает файл, рендерит его в браузере, синхронизирует правки между участниками и конвертирует форматы. Сам по себе он не хранит документы и не имеет интерфейса файлового менеджера — его подключают как «редактор» к внешнему хранилищу: Nextcloud, ownCloud, Confluence, Moodle или собственному приложению через API.
OnlyOffice Workspace — это уже полноценный портал: Community Server (файлы, календарь, чат), Mail Server, CRM, модуль проектов и тот же Document Server внутри как компонент для редактирования. Это набор из нескольких контейнеров/сервисов, каждый со своей базой и очередью, а не одна программа.
Если вам нужно «просто редактировать docx в браузере поверх своего Nextcloud» — хватит Document Server. Если нужна замена целому Google Workspace с почтой и CRM — придётся поднимать Workspace, и бюджет памяти будет совсем другой.
Сколько RAM нужно: по сценариям
Цифры ниже — не лабораторный бенчмарк, а практический ориентир, собранный из документации разработчика и структуры сервисов, которые реально работают в фоне. У вас может получиться иначе в зависимости от размеров документов и числа одновременных правок — относитесь к ним как к стартовой точке, а не к гарантии.
| Сценарий | Что разворачиваем | RAM для старта | RAM с запасом | vCPU |
|---|---|---|---|---|
| Один человек, редко правит документы | Document Server один, без внешней БД | 4 ГБ | 6 ГБ | 2 |
| Небольшая команда, 5–15 человек | Document Server + Nextcloud на одном VPS | 8 ГБ | 12 ГБ | 4 |
| Команда 15–50 человек, активная совместная работа | Document Server отдельно, Nextcloud на соседнем сервере | 10–12 ГБ (сам Document Server) | 16 ГБ | 4–6 |
| Полноценный портал OnlyOffice Workspace | Community Server + Mail Server + Document Server + PostgreSQL | 16 ГБ для теста | 24–32 ГБ на рабочую команду до ~30–50 человек | 6–8 |
Ключевой момент, который многие упускают: официальный минимум разработчика (в районе 2–4 ГБ для Document Server, в зависимости от версии — проверяйте актуальное значение в документации на момент установки) — это порог, при котором контейнер стартует и не падает сразу. Он не учитывает несколько параллельно открытых больших файлов, конвертацию из/в форматы вроде .doc или .odt и работу spellchecker'а. На практике 4 ГБ хватает буквально одному-двум людям, которые не держат документы открытыми часами.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать серверЧто съедает память внутри Document Server
Образ onlyoffice/documentserver — это не один процесс, а несколько, управляемых supervisord:
- docservice — держит состояние каждого открытого документа и синхронизирует правки между вкладками; чем больше одновременно открытых файлов, тем больше её аппетит;
- converter — конвертация форматов (docx→pdf, xlsx→ods и обратно) через LibreOffice-совместимый движок; конвертация больших файлов даёт кратковременные всплески потребления памяти;
- spellchecker — словари проверки орфографии, держатся в памяти постоянно;
- nginx — фронт, лёгкий, обычно не проблема;
- если не подключены внешние сервисы — PostgreSQL, RabbitMQ и Redis внутри того же контейнера. Это удобно для быстрого теста, но именно эта связка съедает заметную часть базовых 2–3 ГБ ещё до того, как кто-то открыл первый документ.
Отсюда практический вывод: на продакшене выносите PostgreSQL, RabbitMQ и Redis наружу отдельными контейнерами (или используйте управляемые сервисы) — это не экономит суммарную память, но даёт контроль над лимитами каждого компонента и упрощает диагностику, когда что-то распухает.
Установка через Docker Compose с лимитами памяти
Минимальный рабочий docker-compose.yml для Document Server с вынесенными БД и очередью и явными ограничениями по памяти:
services:
postgres:
image: postgres:15
restart: always
environment:
POSTGRES_DB: onlyoffice
POSTGRES_USER: onlyoffice
POSTGRES_PASSWORD: change_me_strong
volumes:
- postgres_data:/var/lib/postgresql/data
mem_limit: 1g
rabbitmq:
image: rabbitmq:3-management
restart: always
mem_limit: 512m
redis:
image: redis:7-alpine
restart: always
mem_limit: 256m
documentserver:
image: onlyoffice/documentserver:latest
restart: always
depends_on:
- postgres
- rabbitmq
- redis
environment:
DB_TYPE: postgres
DB_HOST: postgres
DB_PORT: 5432
DB_NAME: onlyoffice
DB_USER: onlyoffice
DB_PWD: change_me_strong
AMQP_URI: amqp://guest:guest@rabbitmq
REDIS_SERVER_HOST: redis
JWT_ENABLED: "true"
JWT_SECRET: change_me_random_secret
ports:
- "8443:443"
volumes:
- ds_data:/var/www/onlyoffice/Data
- ds_log:/var/log/onlyoffice
- ds_fonts:/usr/share/fonts/truetype/custom
mem_limit: 4g
volumes:
postgres_data:
rabbitmq_data:
ds_data:
ds_log:
ds_fonts:
JWT_ENABLED и JWT_SECRET обязательны, если Document Server смотрит наружу интернетом хоть частично — без них любой, кто узнает URL, сможет подсунуть свой документ на конвертацию. mem_limit: 4g на самом Document Server — стартовая точка для команды из нескольких человек; если контейнер регулярно упирается в лимит (смотрите docker stats), поднимайте его, а не убирайте вовсе — без ограничения один зависший процесс конвертации может забрать всю память сервера.
Перед установкой убедитесь, что Docker вообще стоит: инструкция по установке — ubuntu-24-04-ustanovka-docker-s-nulya.
Интеграция с Nextcloud: считаем бюджет целиком
Чаще всего OnlyOffice ставят не сам по себе, а как редактор для Nextcloud — через официальное приложение «ONLYOFFICE» из каталога Nextcloud, которое дёргает Document Server по API при открытии файла. Здесь важно не забыть, что это два независимых по памяти сервиса на одном сервере:
- Nextcloud (PHP-FPM, веб-сервер, своя БД) — минимум 4 ГБ на не самую большую инсталляцию, подробный расчёт в статье skolko-ram-nuzhno-dlya-nextcloud;
- Document Server поверх — ещё от 4 ГБ по таблице выше.
Итого для связки «Nextcloud + OnlyOffice на одном VPS» реалистичный старт — 8 ГБ, комфортный вариант для активной команды — 12–16 ГБ. Если Nextcloud уже сам по себе работает медленно, добавление Document Server ситуацию не улучшит — сначала разберитесь с базовой производительностью Nextcloud (см. nextcloud-medlenno-rabotaet-prichiny-i-reshenie), а уже потом добавляйте редактор. На нагруженных инсталляциях Document Server стоит вообще вынести на отдельный VPS — так проще масштабировать каждый компонент независимо и не гадать, кто именно съел память при следующем зависании.
Что делать, если памяти не хватает
Признаки нехватки RAM у OnlyOffice узнаваемы: документ долго открывается, курсор соседей «прыгает» с задержкой, конвертация в PDF зависает или контейнер documentserver периодически перезапускается сам.
Порядок диагностики:
# общая картина по серверу
free -h
# что именно ест память по контейнерам прямо сейчас
docker stats --no-stream
# проверить, не убивал ли ядро процессы по нехватке памяти
dmesg | grep -i "killed process"
journalctl -k | grep -i "oom"
Если dmesg показывает oom-killer рядом с процессом docservice или converter — это не баг настройки, а прямое указание добавить памяти серверу или контейнеру. Своп здесь не спасение, а временная подушка: он не даст серверу упасть мгновенно, но конвертация большого файла на своп будет идти минутами вместо секунд. Настроить своп как страховку на случай пиковых нагрузок стоит в любом случае — как это сделать, описано в ubuntu-24-04-nastrojka-swap-i-proizvoditelnosti-s-nulya, но полагаться на него как на постоянное решение нехватки RAM не стоит.
Если апгрейд тарифа не вариант, а нагрузка нерегулярная — можно ограничить число одновременных подключений к Document Server через параметр DOCUMENT_SERVER_LIMIT (актуальное имя переменной проверяйте в документации вашей версии образа) или просто честно предупредить команду, что редактировать одновременно больше N файлов сервер не потянет.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать серверНужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.
Частые вопросы
Хватит ли 2 ГБ RAM для OnlyOffice?
Для теста «просто запустить и посмотреть» — контейнер, скорее всего, стартует. Для реальной работы даже одного человека — нет: PostgreSQL, RabbitMQ и Redis внутри контейнера уже съедают заметную часть этого объёма, и любая конвертация файла выталкивает сервис в своп или OOM.
В чём разница между OnlyOffice Docs и Workspace по требованиям к памяти?
Docs (Document Server) — один сервис-редактор, от 4 ГБ. Workspace — набор из нескольких порталов (документы, почта, CRM) с отдельными БД под каждый, реалистичный старт — от 16 ГБ.
Можно ли поставить OnlyOffice и Nextcloud на один сервер?
Можно и часто так делают на небольших командах — но считайте память отдельно для каждого сервиса и берите VPS с запасом от 8 ГБ, а не впритык.
Сколько памяти добавляет каждый параллельно открытый документ?
Точную цифру дать нельзя — она зависит от размера файла, числа участников и того, идёт ли конвертация. Ориентируйтесь не на формулу, а на мониторинг: смотрите docker stats под реальной нагрузкой вашей команды и добавляйте память, когда контейнер стабильно упирается в лимит.
Нужен ли отдельный сервер под Document Server, если команда небольшая?
Нет, до 10–15 человек его обычно спокойно держат на одном VPS вместе с Nextcloud — разносить по разным серверам имеет смысл, когда команда растёт или Document Server начинает регулярно упираться в лимит памяти.
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →