Главная
» МАЙКРОСОФТ ОФИС
»
Устранение проблемы с нехваткой памяти в ONLYOFFICE Document Server на VPS
Устранение проблемы с нехваткой памяти в ONLYOFFICE Document Server на VPS
Для начала проверьте, не превышает ли хост Linux или контейнер ONLYOFFICE лимит памяти. В текущих рекомендациях ONLYOFFICE Docs Community Edition указаны базовые требования: 4 ГБ ОЗУ и не менее 4 ГБ файла подкачки. На странице устранения неполадок Docker говорится, что использование 2–4 ГБ ОЗУ может быть нормой для нескольких десятков активных пользователей, поскольку использование памяти возрастает с открытием документов и количеством одновременно работающих пользователей. В таблице аппаратного обеспечения рекомендуется использовать Kubernetes для развертываний с количеством одновременно работающих пользователей более 400. Это лишь ориентировочные данные, а не гарантия того, что каждый VPS справится с одинаковой нагрузкой: также важны операционная система хоста, другие контейнеры, размер документов и ограничения поставщика VPS.
Это руководство посвящено стандартной установке Docker на VPS под управлением Linux. Выполните четыре шага по порядку: измерьте нагрузку на хост и контейнеры, проверьте журналы и кэш забытых файлов, уменьшите избыточную нагрузку или исправьте слишком низкий лимит контейнеров, затем перезапустите только при необходимости и проверьте работу в обычном режиме. В примерах команд используется <CONTAINER_ID>в качестве заполнителя; замените его идентификатором или именем из docker ps. Сделайте резервную копию и запланируйте техническое обслуживание перед остановкой редактора с активными пользователями.
1. Определите, где именно возникает нехватка памяти.
Первые команды выполняйте на VPS-хосте, а не внутри контейнера ONLYOFFICE:
free -h
swapon --show
docker stats --no-stream
free -hОтображает доступную память хоста и файл подкачки. swapon --showПодтверждает, активен ли файл подкачки. В таблице docker statsсравнивается использование памяти ONLYOFFICE с отображаемым лимитом. Если на хосте почти нет доступной памяти, а несколько служб используют оперативную память, возможно, VPS недостаточно мощный. Если на хосте еще есть запас памяти, но контейнер ONLYOFFICE близок к гораздо меньшему лимиту, непосредственной причиной может быть ограничение емкости контейнера. Почти заполненный файл подкачки, постоянное использование файла подкачки или интенсивная дисковая активность могут замедлить редактирование еще до того, как хост завершит какой-либо процесс.
Шаг 1: выполните команды free -h и swapon --show на VPS-хосте, чтобы увидеть доступную оперативную память и активен ли файл подкачки.Шаг 1: команда `docker stats --no-stream` сравнивает текущее использование памяти контейнером ONLYOFFICE с его лимитом.
Первая команда выводит параметры памяти и памяти плюс файл подкачки в байтах. Нулевой лимит памяти обычно означает, что явное ограничение памяти контейнера не задано; это не означает, что VPS имеет неограниченный объем оперативной памяти. Параметр памяти и файла подкачки в Docker представляет собой комбинированный потолок памяти и файла подкачки, поэтому не следует интерпретировать его как ограничение только файла подкачки. Вторая команда сообщает, зафиксировал ли Docker завершение работы контейнера из-за нехватки памяти (OOM) и его последний код завершения. Docker документирует эти ограничения как элементы управления, применяемые хостом Linux, и общехостовая нехватка памяти может повлиять на более чем один контейнер.
2. Проверьте журналы контейнеров и известные сценарии интенсивного использования ONLYOFFICE.
Перед изменением настроек или удалением файлов ознакомьтесь с последними логами:
docker logs --since 1h <CONTAINER_ID>
Обратите внимание на повторяющиеся перезапуски, ошибки запуска базы данных и сообщения, появившиеся примерно в то же время, когда редактор стал недоступен. Также проверьте журнал ядра хоста на наличие событий, связанных с нехваткой памяти, если у вас есть соответствующие права:
На странице устранения неполадок Docker на сайте ONLYOFFICE специально рекомендуется проверять наличие зависших или забытых документов, /var/lib/onlyoffice/documentserver/App_Data/cache/files/forgotten/если использование памяти кажется неожиданно высоким. Сначала проверьте размер и содержимое каталога; не удаляйте его файлы бездумно. Они могут быть важны для восстановления или устранения неполадок. Если каталог большой или продолжает расти, сохраните файлы и журналы, а затем следуйте официальным рекомендациям по устранению неполадок или обратитесь в службу поддержки ONLYOFFICE, чтобы узнать, что безопасно удалить для вашей версии.
Шаг 2: перед сменой VPS или удалением кэшированных файлов проверьте последние журналы контейнера.
3. Снизить избыточный спрос и исправить слишком маленький лимит Docker.
В рекомендациях ONLYOFFICE по определению размера ресурсов «активным пользователем» считается тот, у кого открыт документ в редакторе, включая тех, кто только его просматривает. Пользователи, просто вошедшие в интегрированную платформу без открытого документа, учитываются иначе. Попросите пользователей закрыть неиспользуемые вкладки документов и избегайте планирования больших циклов редактирования на небольшом VPS. Если нагрузка возникает после одновременного открытия нескольких больших электронных таблиц или сложных файлов, сравните объем памяти при низкой активности и в пиковый момент, а не оценивайте его только по количеству учетных записей.
Если на VPS отключен файл подкачки, его добавление может обеспечить кратковременную защиту от резкого скачка нагрузки. В текущем руководстве по установке Docker от ONLYOFFICE указано, что требуется не менее 4 ГБ файла подкачки, и отмечается, что этот объем зависит от операционной системы хоста. Файл подкачки работает на диске и намного медленнее оперативной памяти, поэтому он не заменяет достаточный объем физической памяти. Перед созданием файла подкачки убедитесь, что он еще не существует, проверьте свободное место на диске и подтвердите, что ваша файловая система и VPS-провайдер поддерживают этот метод. В типичной файловой системе Linux, поддерживающей файл подкачки, пример выглядит так:
Не выполняйте эти команды поверх существующего файла /swapfileподкачки. Чтобы сохранить вновь созданный файл подкачки после перезагрузки, добавляйте одну соответствующую запись в файл подкачки /etc/fstabтолько после проверки наличия существующей записи:
/swapfile none swap sw 0 0
Если Docker показывает низкий лимит памяти для контейнера, проверьте файл Compose или панель развертывания, создавшую контейнер. Увеличивайте или уменьшайте лимит только после проверки общего объема оперативной памяти VPS и памяти, используемой ОС, базой данных, интеграционной платформой и другими службами. Не выделяйте всю оперативную память хоста только для ONLYOFFICE. Если память хоста исчерпана, изменение лимита Docker не приведет к увеличению физической памяти; измените размер VPS или переместите другие службы на другой хост. Compose поддерживает ограничения памяти, но настроенный лимит должен соответствовать фактическому режиму развертывания и доступной памяти хоста.
VPS с 2 ГБ оперативной памяти, на котором работает ONLYOFFICE вместе с Nextcloud или другими сервисами, не соответствует заявленному производителем базовому объему в 4 ГБ. VPS с 4 ГБ оперативной памяти также может испытывать нехватку памяти, если она используется совместно операционной системой хоста и стеком интеграции. В таких случаях более надежным вариантом будет использование более крупного VPS или выделенного сервера документов, чем многократный перезапуск контейнера. Для более чем 400 одновременно активных пользователей в текущей таблице ONLYOFFICE рекомендуется развертывание Kubernetes и обращение в ONLYOFFICE за консультацией по выбору объема памяти; это не та нагрузка, которую можно решить, добавив небольшой файл подкачки на один VPS.
Шаг 4: перед запланированным перезапуском контейнера запустите подготовленный скрипт ONLYOFFICE, чтобы активные сеансы редактирования могли корректно отключиться.
4. Перезагрузите систему в безопасном режиме, затем проверьте результат.
Не перезапускайте Document Server во время редактирования пользователями, если только отключение не является неизбежным. ONLYOFFICE поясняет, что документ сохраняется после того, как все пользователи, редактирующие его, закроют его. Перед плановой остановкой контейнера руководство по устранению неполадок рекомендует использовать приведенный ниже скрипт подготовки; это может занять до пяти минут, пока пользователи отключаются. Предупредите пользователей заранее, сохраните резервные копии и следуйте стандартной процедуре технического обслуживания.
Если вы используете Docker Compose, внесите постоянные изменения в конфигурацию Compose или панель управления и используйте обычный процесс перезапуска проекта. Однократное изменение работающего контейнера может исчезнуть при его повторном создании. Не используйте --oom-kill-disableэкстремальный приоритет OOM для поддержания работы ONLYOFFICE; Docker предупреждает, что исчерпание памяти хоста может поставить под угрозу VPS и другие сервисы.
После перезапуска VPS или контейнера убедитесь, что контейнер остается работоспособным, редактор открывает и сохраняет тестовый документ, память хоста остается доступной, и контейнер не перезапускается повторно. Наблюдайте за использованием памяти хоста и контейнера в течение типичного периода высокой загрузки. Если после закрытия документов объем памяти постоянно увеличивается, увеличивается размер каталога "забытых файлов" или возвращаются события нехватки памяти (OOM), соберите вывод команд free -h, swapon --show, docker stats, docker inspect, и последние журналы для подтверждения. Не рассматривайте один успешный перезапуск как доказательство того, что емкость памяти зафиксирована.
Краткое руководство по принятию решений
Что вы наблюдаете
Наиболее полезный следующий ход
Оперативная память хоста исчерпана, и это также влияет на работу других служб.
Обновите VPS или перенесите сервисы, не относящиеся к редактору. В настройках контейнера нельзя добавить оперативную память хоста.
На хосте достаточно места, но ONLYOFFICE достигла низкого лимита Docker.
Проверьте лимит Compose или лимит провайдера и повышайте его только в пределах безопасного запаса для хоста.
Использование программы возрастает при открытии документов, а затем снижается при их закрытии.
Сравните с ожидаемым уровнем параллельного выполнения и типами документов; рассмотрите возможность увеличения объема оперативной памяти, если обычные пиковые нагрузки приводят к ошибке нехватки памяти (OOM).
Уровень использования остается необычно высоким даже после снижения активности.
Просмотрите последние журналы и кэш забытых файлов; сохраните данные и проведите расследование перед очисткой.
Более 400 пользователей одновременно открыли документы.
Используйте предложенный поставщиком алгоритм расчета размера кластера/Kubernetes, а не один небольшой VPS.