Как исправить проблему с высокой загрузкой ЦП в Collabora Online из-за loolwsd / coolwsd

Когда Collabora Online внезапно начинает использовать большую часть ресурсов ЦП сервера, важнейшим первым шагом является предотвращение многократных перезапусков или немедленного установления очень низкого лимита использования ЦП. Сначала определите, вызвана ли нагрузка обычной работой с документами, одной проблемной сессией с документами, слишком большим объемом параллельной работы, простаивающей сессией, которая не очищается, или регрессией, специфичной для конкретной версии. Имя процесса может отличаться coolwsdв текущих и loolwsdболее старых версиях.

Иллюстративный сценарий: представьте себе сервер с 8 виртуальными процессорами, на котором работает Collabora Online за Nextcloud. Кажется, что документы редактируют лишь несколько человек, но контейнер Collabora загружается на 250-350% ЦП в течение нескольких минут. Это гипотетический пример, используемый в данном руководстве, а не измеренный бенчмарк или отчет о реальном развертывании.

По состоянию на октябрь 2026 года текущая стабильная ветка Collabora — 26.04, а в официальных примечаниях к выпуску указано, что Collabora Online 26.04.3.3 была выпущена 14 сентября 2026 года. Текущие шаблоны конфигурации используют это coolwsdимя. Инструменты миграции Collabora по-прежнему указывают старый /etc/loolwsd/loolwsd.xmlпуть для установок версии 6.4 и более ранних, поэтому администраторы могут по-прежнему сталкиваться с обоими именами.

1. Подтвердите, какой именно процесс потребляет ресурсы ЦП.

Начните с уровня операционной системы или контейнера. Высокое значение рядом с параметром coolwsdне означает автоматически, что весь ресурсоемкий процесс работы с документами выполняет сам координирующий демон. Collabora также запускает процессы kit/forkit для сеансов работы с документами, поэтому перед изменением конфигурации вам потребуется дерево процессов и данные об использовании ЦП каждым процессом.

ps -eo pid,ppid,pcpu,pmem,etime,cmd --sort=-pcpu | head -n 25
top -H -p $(pgrep -d, -f 'coolwsd|loolwsd|coolkit|loolkit|forkit')

В случае с Docker проверьте также контейнер в целом:

docker stats --no-stream
Вид сверху на Linux, демонстрирующий загруженный процесс Collabora coolwsd и несколько процессов kit, использующих ЦП.
Представление на уровне процессов помогает отделить основной демон Collabora от процессов, связанных с обработкой документов, прежде чем предпринимать какие-либо попытки оптимизации.
В статистике Docker видно, что контейнер Collabora использует значительно больше ресурсов ЦП, чем соседние сервисы.
Показатель загрузки ЦП на уровне контейнера полезен для подтверждения того, что источником нагрузки на хост является Collabora, но он не позволяет определить документ или дочерний процесс, ответственный за это.

В приведенном примере предположим, что загрузка ЦП контейнера приближается к 300%, и один из процессов комплекта постоянно находится в верхней части списка процессов. Это указывает на конкретную активную сессию документа, а не на общее предположение о перегрузке всего сервера.

2. Проверяйте собственные показатели Collabora, а не полагайтесь только на лучшие из них.

Collabora Online предоставляет доступ к метрикам, совместимым с Prometheus, по адресу [адрес] /cool/getMetrics. В текущем руководстве по SDK указано, что эта конечная точка может сообщать об использовании ЦП и памяти, запущенных процессах комплекта, представлениях и других данных об использовании сервера. Она использует ту же аутентификацию, что и консоль администратора, если только метрики явно не настроены для неаутентифицированного доступа.

Не следует публично раскрывать конечную точку метрик только для упрощения поиска и устранения неисправностей. В официальной конфигурации Helm даже есть примеры блокирующих /cool/getMetricsи административных URL-адресов на входе. По возможности используйте аутентифицированный внутренний путь.

В браузере отображается полезная конечная точка Collabora Online getMetrics с метриками процессов и документов.
Конечная точка метрик Collabora предоставляет контекст на стороне сервера, дополняющий измерения загрузки ЦП в Linux или Docker.

Найдите взаимосвязь между загрузкой ЦП и количеством активных документов или представлений. Если загрузка ЦП повышается и понижается в зависимости от активности редактирования, возможно, у вас проблема с производительностью или параллельным доступом. Если загрузка ЦП остается высокой без соответствующей интерактивной работы, проверьте наличие устаревших сессий, проблемного документа, повторяющейся фоновой работы или проблемы с программным обеспечением.

3. Прочитайте журналы событий в момент, когда загрузка ЦП резко возрастает.

Для установки пакетов, управляемой systemd:

journalctl -u coolwsd --since "15 minutes ago" --no-pager
journalctl -u coolwsd -f

Для Docker:

docker logs collabora --since 15m
docker logs -f collabora

Если у вашей службы или контейнера другое имя, замените его. Проверьте наличие повторяющихся загрузок документов, повторных созданий комплектов, неудачных сохранений, сбоев, циклов переподключения или повторяющегося появления одного и того же ключа документа. Кратковременное увеличение загрузки ЦП во время открытия, пересчета, рендеринга, преобразования или экспорта документа может быть законным признаком. Более серьезным предупреждающим сигналом является устойчивая загрузка ЦП без какого-либо полезного прогресса или повторяющаяся ошибка.

Журнал контейнера Collabora, отображающий создание комплекта, активность документов, записи автосохранения и предупреждения о высокой загрузке ЦП.
Сопоставьте данные журналов со временем скачка загрузки ЦП, чтобы отличить нормальную активность документа от повторяющейся или зависшей работы.

4. Воспроизведите пик, обрабатывая по одному документу за раз.

Вернитесь к гипотетическому серверу. Если один из процессов набора инструментов работает с высокой нагрузкой, закройте или изолируйте подозрительный документ и понаблюдайте, снизится ли загрузка ЦП. Затем откройте тот же файл в спокойный период, отслеживая список процессов и метрики. Повторите то же самое с простым тестовым документом.

Это сравнение более полезно, чем немедленный перезапуск всей службы:

  • Если всплеск активности надежно вызывает только один файл, то более вероятной причиной является его содержимое, формулы, встроенные объекты, нагрузка на рендеринг или ошибка, специфичная для данного документа.
  • Если при одновременной активности нескольких пользователей каждый файл вызывает схожую нагрузку, следует проверить пропускную способность сервера и количество параллельных запросов.
  • Если после прекращения всей активности пользователей загрузка ЦП остается высокой, следует сосредоточиться на очистке, устранении устаревших наборов данных, повторяющихся фоновых задач или регрессии.
  • Если проблема возникла сразу после обновления, запишите старую и новую версии, прежде чем изменять многие другие параметры.

5. Сократите параллельную обработку отдельных документов, если один документ может монополизировать ресурсы ядер процессора.

В текущем шаблоне конфигурации Collabora указано per_document.max_concurrencyмаксимальное количество потоков, используемых при обработке документа. Значение по умолчанию в шаблоне — 4. На небольших хостах или в случаях, когда один сложный документ может занимать большую часть ресурсов машины, уменьшение этого значения может сделать использование ЦП более предсказуемым.

Например, вы можете проверить значение 2:

<per_document>
    <max_concurrency>2</max_concurrency>
</per_document>
В файле coolwsd.xml подсветка синтаксиса для каждого документа, параметр max_concurrency установлен на 2.
Снижение параллельной обработки каждого документа — это компромисс: оно может уменьшить интенсивность использования ЦП одним документом, но ресурсоемкие операции могут занять больше времени.

Не стоит слепо копировать значение 2. Если пользователи регулярно работают с большими электронными таблицами или презентациями, а сервер располагает достаточным количеством ядер, меньшее значение может просто замедлить работу. Измените один параметр, воспроизведите ту же рабочую нагрузку и сравните загрузку ЦП, скорость отклика и время выполнения.

6. Перед применением агрессивных настроек проверьте параметры очистки и режима ожидания.

Текущий coolwsd.xmlшаблон включает логику очистки для ресурсоемких простаивающих документов. На момент написания статьи шаблон показывает интервал проверки очистки в 10 000 мс, период некорректного поведения в 60 секунд, пороговое значение простоя в 300 секунд и пороговое значение загрузки ЦП в 85%, при котором документ становится кандидатом на очистку. Он также включает тайм-аут простоя для каждого документа в 3600 секунд.

В этом же шаблоне предусмотрены тайм-ауты для каждого представления. Текущие значения показывают 300 секунд до того, как неактивное представление в браузере будет затемнено и обновления прекратятся, и 900 секунд до того, как неактивное представление будет обработано аналогичным образом. Эти тайм-ауты для представлений не эквивалентны немедленной выгрузке всей сессии документа.

Редактор coolwsd.xml отображает пороговое значение загрузки ЦП для очистки и настройки тайм-аута для случаев потери фокуса и простоя для каждого представления.
Функции очистки и контроля простоя просмотра могут сократить количество ненужной работы, но их следует настраивать с запасом, чтобы не прерывать обычные длительные сеансы редактирования.

Не устанавливайте слишком низкий порог загрузки ЦП только для того, чтобы график выглядел лучше. Функция очистки предназначена для обнаружения ресурсоемких, некорректных или простаивающих документов, а не для прекращения обычного активного редактирования всякий раз, когда оно становится вычислительно затратным.

7. Перезапускайте систему только после сохранения контролируемых изменений конфигурации.

Сначала сделайте резервную копию активной конфигурации. При установке пакетов обычно используется /etc/coolwsd/coolwsd.xml`.`. При развертывании Docker параметры могут передаваться в качестве переменных среды или переопределений командной строки, либо монтироваться в контейнер через файл конфигурации. Перед редактированием убедитесь, какой источник действительно активен.

Для установки пакета:

sudo cp /etc/coolwsd/coolwsd.xml /etc/coolwsd/coolwsd.xml.before-cpu-tuning
sudo systemctl restart coolwsd
systemctl status coolwsd --no-pager

Для контейнера Docker:

docker restart collabora
docker ps --filter name=collabora
В терминале отображается состояние перезапуска coolwsd и активной службы systemd, а также пример команды перезапуска Docker.
Перезапуск следует производить только после преднамеренного изменения конфигурации, зафиксированного в резервной копии, а затем убедиться в работоспособности службы, прежде чем пользователи смогут продолжить тестирование.

Если перезагрузка временно решает проблему с загрузкой ЦП, но она постоянно возвращается, это диагностическая информация, а не окончательное решение. Продолжайте, пока не сможете объяснить, какая нагрузка или состояние вызывают повторное возникновение проблемы.

8. Сравните результаты до и после при одинаковой рабочей нагрузке.

Используйте один и тот же документ, приблизительно одинаковое количество пользователей и одинаковую последовательность операций. Проводите измерения в течение нескольких минут, а не сравнивайте результаты за один раз. В иллюстративном сценарии успех будет означать, что сервер больше не перегружен во время воспроизведения рабочей нагрузки, а открытие, редактирование, сохранение документов и совместная работа по-прежнему будут работать приемлемо.

В адресной строке браузера отображается локальная конечная точка getMetrics для Collabora Online.
После каждого контролируемого изменения используйте одну и ту же конечную точку метрик, чтобы сравнение «до» и «после» основывалось на сопоставимых данных сервера.
НаблюдениеВероятные следующие действия
Один документ или комплект остается актуальным.Воспроизведите проблему с помощью этого файла, сохраните журналы и протестируйте на текущей стабильной версии микропрограммы.
ЦП отслеживает количество активных пользователейПроанализируйте производительность, параллелизм и размеры развертывания, а не рассматривайте нагрузку как утечку.
Уровень загрузки ЦП остается высоким даже после ухода пользователей.Проверьте неактивные документы, поведение процессов очистки, повторяющиеся фоновые задания, а также брошенные или перезапускаемые комплекты инструментов.
Проблема возникла сразу после обновления.Перед изменением многих параметров настройки запишите точные версии и проверьте примечания к текущему выпуску, а также известные проблемы.
Снижение параметра max_concurrency уменьшает нагрузку на процессор, но редактирование замедляется.Увеличивайте его постепенно или добавляйте ресурсы процессора; это компромиссное решение, а не универсальное.

Когда следует обновлять систему, а не проводить оптимизацию?

Если проблема возникла в определенной версии Collabora, и вы можете воспроизвести ее с конкретным файлом или операцией, настройка конфигурации может лишь скрывать программный дефект. Collabora рекомендует использовать последнюю версию из текущей стабильной ветки. По состоянию на 7 октября 2026 года на официальной странице примечаний к выпуску 26.04 указана версия 26.04.3.3 как последняя версия Collabora Online.

Пользователям CODE следует помнить, что Collabora описывает версию для разработчиков как подходящую для небольших команд, домашнего использования, разработки и тестирования новых функций, но при этом указывает, что она не предназначена для производственных сред. Поэтому инцидент в производственной среде CODE может оправдать переход на поддерживаемый продукт Collabora Online, а не бесконечную настройку поведения версии для разработчиков.

Чего не следует делать

  • Не следует предполагать, что высокое coolwsdзначение свидетельствует об утечке памяти или бесконечном цикле.
  • Не следует постоянно включать отладочное или трассировочное логирование во время сбоя ЦП, если в этом нет реальной необходимости; подробное логирование создает дополнительную нагрузку и увеличивает объем занимаемого места.
  • Не следует предоставлять доступ к административной консоли или точке доступа к метрикам из общедоступного интернета только ради удобства мониторинга.
  • Не снижайте пороговые значения очистки до тех пор, пока не начнут завершаться все активные сеансы.
  • Не используйте квоты ЦП в качестве первого шага диагностики. Жесткое ограничение может защитить соседей на общем хосте, но оно может превратить проблему с ЦП в медленную отрисовку документов и тайм-ауты, не выявив при этом причину.

Рекомендуемый порядок устранения неполадок

  1. Уточните, является ли загруженный процесс coolwsdстарым, дочерним loolwsdили процессом набора/форкита.
  2. Запись данных о загрузке ЦП, памяти, активных документах и ​​представлениях Docker или хоста.
  3. Сопоставьте данные логов с точным временным интервалом пика.
  4. Воспроизведите эксперимент, используя один подозрительный документ, а затем простой контрольный документ.
  5. Проверяйте per_document.max_concurrencyтолько в том случае, если один из документов использует слишком много ресурсов процессора для параллельного выполнения.
  6. Проверьте настройки очистки и режима ожидания, не делая их излишне агрессивными.
  7. После каждого контролируемого изменения конфигурации перезапускайте систему и проверяйте работоспособность служб.
  8. Сравните результаты выполнения одной и той же задачи до и после, а затем проверьте текущую стабильную версию, если поведение кажется специфичным для данной версии.

Официальные ссылки

Информация о конфигурации в этом руководстве основана на текущем шаблоне исходного кода Collabora Online: шаблон конфигурации Collabora Online coolwsd.xml . В официальном руководстве по SDK описаны вопросы ведения журналов, управления производительностью и совместимая с Prometheus конечная точка метрик: руководство по SDK Collabora Online . Для проверки версий используйте примечания к выпуску Collabora Online 26.04 от производителя . Информацию о предполагаемом использовании версии для разработчиков см. в официальном объявлении о выпуске CODE 26.04 .

Практическая цель состоит не в том, чтобы заставить Collabora Online использовать как можно меньше ресурсов процессора. Цель состоит в том, чтобы сделать потребление ресурсов процессора объяснимым и пропорциональным полезной работе, сохраняя при этом приемлемую производительность редактирования и совместной работы.

Оставить комментарий

Как подключить настольные редакторы ONLYOFFICE к собственному облачному серверу

Как подключить настольные редакторы ONLYOFFICE к собственному облачному серверу

Подключите настольные редакторы ONLYOFFICE к своему облачному серверу, войдите в систему, открывайте файлы в облаке, управляйте подключением и устраняйте распространенные проблемы с настройкой.

Как исправить проблему с высокой загрузкой ЦП в Collabora Online из-за loolwsd / coolwsd

Как исправить проблему с высокой загрузкой ЦП в Collabora Online из-за loolwsd / coolwsd

Для устранения неполадок, связанных с высокой загрузкой ЦП в Collabora Online, необходимо выявить процессы, активно использующие комплект инструментов, проверить метрики и журналы, настроить параллелизм и очистку, а также безопасно проверить исправления.

How to Custom Brand ONLYOFFICE Docs with Your Logo and Colors

How to Custom Brand ONLYOFFICE Docs with Your Logo and Colors

Learn how to custom brand ONLYOFFICE Docs with a header logo and interface colors, including license limits, theme JSON setup, Docker paths, and testing.

Исправлены проблемы с видимостью текста в темном режиме в LibreOffice Calc.

Исправлены проблемы с видимостью текста в темном режиме в LibreOffice Calc.

Исправьте трудночитаемый текст в LibreOffice Calc, проверив тему приложения, шрифт и цвет заливки ячеек, стили и условное форматирование, а затем проверьте вывод на печать.

Исправлена ​​ошибка «Документ заблокирован неизвестным пользователем» в LibreOffice.

Исправлена ​​ошибка «Документ заблокирован неизвестным пользователем» в LibreOffice.

Безопасно устраните предупреждение LibreOffice о блокировке от неизвестного пользователя. Проверьте активные сеансы, защитите копию, удалите только проверенную устаревшую блокировку и протестируйте документ.

Исправление отображения текста на арабском и иврите справа налево в LibreOffice Writer

Исправление отображения текста на арабском и иврите справа налево в LibreOffice Writer

Исправьте некорректное отображение, выравнивание или смешивание арабского или ивритского текста с английским в LibreOffice Writer. Включите сложную компоновку текста, задайте направление абзаца и проверьте результат.

LibreOffice Calc VLOOKUP vs XLOOKUP: A Beginner-Friendly Functions Guide

LibreOffice Calc VLOOKUP vs XLOOKUP: A Beginner-Friendly Functions Guide

Learn VLOOKUP and XLOOKUP in LibreOffice Calc, including exact matches, left lookups, not-found results, reverse search, INDEX/MATCH alternatives, and common errors.

Как исправить ошибку «Проверка доказательства WOPI не удалась» в Collabora Online

Как исправить ошибку «Проверка доказательства WOPI не удалась» в Collabora Online

Для устранения неполадок, связанных с ошибками проверки подлинности WOPI в Collabora Online, проверьте ключи обнаружения, ротацию ключей, URL-адреса прокси-серверов, метки времени и списки разрешенных хостов.

Как включить отслеживание изменений по умолчанию в документах ONLYOFFICE

Как включить отслеживание изменений по умолчанию в документах ONLYOFFICE

Включите функцию отслеживания изменений для всех пользователей в документе ONLYOFFICE, сохраните её активность после повторного открытия и ознакомьтесь с ограничениями глобальных настроек по умолчанию.

Как настроить тайм-ауты простоя для сеансов редактирования в Collabora

Как настроить тайм-ауты простоя для сеансов редактирования в Collabora

Сравните значения таймаутов для каждого представления, нерезкости, простоя документа, автосохранения и прокси-сервера в Collabora Online, а затем выберите и проверьте настройки для вашей системы.