MAATRIX / Блог / Сколько RAM нужно для OnlyOffice

Сколько RAM нужно для OnlyOffice

MAATRIX

Открыть общий документ в браузере, увидеть, как коллега печатает в реальном времени, и не платить за подписку на облачный офисный пакет — ради этого 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 на одном VPS8 ГБ12 ГБ4
Команда 15–50 человек, активная совместная работаDocument Server отдельно, Nextcloud на соседнем сервере10–12 ГБ (сам Document Server)16 ГБ4–6
Полноценный портал OnlyOffice WorkspaceCommunity Server + Mail Server + Document Server + PostgreSQL16 ГБ для теста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 ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →