Продукты Р7
Корпоративный сервер 2024
Корпоративный сервер 2024
Сервер документов
Сервер документов
Редакторы документов
Редакторы документов
Корпоративный сервер 2019
Корпоративный сервер 2019
Графика
Графика
ВКС и мессенджер
ВКС и мессенджер
Мобильные редакторы
Мобильные редакторы
Почтовый сервер
Почтовый сервер
Органайзер
Органайзер
Сервер лицензирования
Сервер лицензирования
Файл-Экспресс
Файл-Экспресс
Аналитика
Аналитика
Дополнительно
Часто задаваемые вопросы
Разработчикам
Интеграции
Новые возможности

Инструкция по настройке параметров жизни кэша Сервера документов Р7-Офис

Обновлено: 05.08.26

Введение

Параметры жизни кэша в настройках сервера документов определяют, как долго различные элементы (блокировки, сессии, файлы и т. д.) хранятся в памяти или кэше системы. Эти параметры находятся в блоке конфигурации services.CoAuthoring.expire в файле local.json и влияют на производительность, стабильность и поведение сервера при совместной работе с документами.

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

Формат конфигурации

Параметры задаются в JSON-формате в секции services.CoAuthoring.expire. Значения могут быть целыми числами (в секундах) или строками (в формате времени, например, «1s», «1m», «1h», «1d», «1y»). Пример конфигурации приведен в конце инструкции.

1. services.CoAuthoring.expire.saveLock

Описание: Определяет время (в секундах), в течение которого сохраняется блокировка для операции сохранения документа. Эта блокировка предотвращает одновременное сохранение документа несколькими пользователями, чтобы избежать конфликтов.

Тип: Целое число (секунды).

Значение по умолчанию: «60» (1 минута).

Использование:

  1. Этот параметр важен для обеспечения целостности данных при сохранении документа. Если несколько пользователей редактируют документ одновременно, блокировка гарантирует, что сохранение произойдет последовательно;
  2. Увеличение значения может быть полезным, если операции сохранения занимают больше времени (например, при больших документах или медленных сетях). Однако слишком большое значение может привести к задержкам для других пользователей, ожидающих снятия блокировки.

Рекомендации:

  1. Для большинства сценариев значение по умолчанию («60») подходит;
  2. Если пользователи сталкиваются с ошибками сохранения из-за таймаута, попробуйте увеличить до «120» секунд;
  3. Не устанавливайте слишком большое значение (например, более «300»), чтобы избежать блокировки других операций.

2. services.CoAuthoring.expire.presence

Описание: Определяет время (в секундах), в течение которого статус присутствия пользователя в редакторе документа остается активным. Статус присутствия показывает, что пользователь активно работает с документом.

Тип: Целое число (секунды).

Значение по умолчанию: «300» (5 минут).

Использование:

  1. Этот параметр влияет на отображение активных пользователей в интерфейсе редактора. Например, если пользователь неактивен, его статус исчезнет через указанное время;
  2. Слишком короткое время может привести к частому исчезновению статуса, что может сбивать с толку других пользователей. А слишком длинное — к некорректному отображению активности.

Рекомендации:

  1. Значение «300» подходит для большинства случаев, так как обеспечивает баланс между актуальностью статуса и производительностью;
  2. Для интенсивной совместной работы можно уменьшить до «120» секунд, чтобы быстрее обновлять статусы;
  3. Для сценариев с редкими действиями можно увеличить до «600» секунд.

3. services.CoAuthoring.expire.locks

Описание: Определяет время жизни (в секундах) блокировки документа, установленной для предотвращения конфликтов при редактировании.

Тип: Целое число (секунды).

Значение по умолчанию: «604800» (7 дней).

Использование:

  1. Блокировка документа предотвращает одновременное редактирование документа разными пользователями в конфликтующих режимах;
  2. Длительное время жизни блокировки полезно для сценариев, когда пользователи могут оставлять документ открытым на длительное время (например, в течение рабочего дня);
  3. Слишком короткое время может привести к преждевременному снятию блокировки, что вызовет конфликты.

Рекомендации:

  1. Значение по умолчанию («604800») подходит для большинства случаев;
  2. Если пользователи редко возвращаются к документам после длительных перерывов, можно уменьшить до «86400» (1 день);
  3. Убедитесь, что это значение больше, чем sessionidle и sessionabsolute, чтобы избежать преждевременного снятия блокировки.

4. services.CoAuthoring.expire.changeindex

Описание: Определяет время (в секундах), в течение которого хранятся индексы изменений документа. Эти индексы используются для отслеживания истории изменений.

Тип: Целое число (секунды).

Значение по умолчанию: «86400» (1 день).

Использование:

  1. Этот параметр влияет на то, как долго сервер хранит информацию о последних изменениях в документе. Это важно для синхронизации изменений между пользователями;
  2. Слишком короткое время может привести к потере данных об изменениях, особенно если пользователи работают с документом с перерывами.

Рекомендации:

  1. Значение по умолчанию («86400») подходит для большинства случаев;
  2. Для интенсивной работы с документами можно увеличить до «172800» (2 дня), чтобы сохранить больше истории изменений;
  3. Не устанавливайте слишком большое значение, чтобы не перегружать кэш сервера.

5. services.CoAuthoring.expire.lockDoc

Описание: Определяет время (в секундах) блокировки документа для предотвращения одновременного редактирования.

Тип: Целое число (секунды).

Значение по умолчанию: «30» (30 секунд).

Использование:

  1. Этот параметр используется для краткосрочных блокировок, связанных с конкретными действиями в редакторе (например, применение форматирования);
  2. Слишком короткое время может привести к конфликтам при редактировании, а слишком длинное — к задержкам для других пользователей.

Рекомендации:

  1. Значение по умолчанию («30») подходит для большинства сценариев;
  2. Если пользователи часто сталкиваются с ошибками блокировки, попробуйте увеличить до «60» секунд;
  3. Не устанавливайте значение больше «120», чтобы избежать ненужных задержек.

6. services.CoAuthoring.expire.message

Описание: Определяет время жизни (в секундах) сообщений, отправленных в чате редактора или связанных с совместной работой.

Тип: Целое число (секунды).

Значение по умолчанию: «86400» (1 день).

Использование:

  1. Этот параметр влияет на то, как долго сообщения хранятся в кэше сервера. Это важно для чатов в редакторе или уведомлений о действиях;
  2. Слишком короткое время может привести к потере важных сообщений, а слишком длинное — к накоплению устаревших данных.

Рекомендации:

  1. Значение по умолчанию («86400») подходит для большинства случаев;
  2. Для интенсивного общения в редакторе можно уменьшить до «43200» (12 часов);
  3. Если сообщения нужно хранить дольше, увеличьте до «172800» (2 дня).

7. services.CoAuthoring.expire.lastsave

Описание: Определяет время жизни (в секундах) записи о последнем успешном сохранении документа в базе данных.

Тип: Целое число (секунды).

Значение по умолчанию: «604800» (7 дней).

Использование:

  1. Этот параметр важен для отслеживания последнего успешного сохранения, чтобы избежать потери данных при сбоях;
  2. Длительное время хранения полезно для восстановления данных после сбоев или длительных перерывов в работе.

Рекомендации:

  1. Значение по умолчанию («604800») подходит для большинства случаев;
  2. Если сервер испытывает проблемы с объемом кэша, можно уменьшить до «86400» (1 день);
  3. Убедитесь, что это значение больше, чем saved, чтобы избежать конфликтов.

8. services.CoAuthoring.expire.forcesave

Описание: Определяет время жизни (в секундах) данных, связанных с принудительным сохранением документа.

Тип: Целое число (секунды).

Значение по умолчанию: «604800» (7 дней).

Использование:

  1. Принудительное сохранение используется для сохранения документа в случае сбоев или завершения сессии;
  2. Этот параметр определяет, как долго данные принудительного сохранения хранятся в кэше.

Рекомендации:

  1. Значение по умолчанию («604800») подходит для большинства случаев;
  2. Если вы хотите быстрее очищать кэш, можно уменьшить до «86400» (1 день);
  3. Убедитесь, что значение синхронизировано с lastsave

9. services.CoAuthoring.expire.forcesaveLock

Описание: Определяет время жизни (в секундах) принудительно сохраненных блокировок в режиме кластера ioredis.

Тип: Целое число (секунды).

Значение по умолчанию: «5000» (5000 секунд, ~83 минуты).

Использование:

  1. Этот параметр важен для работы в кластерной среде с использованием ioredis, где блокировки могут быть принудительно сохранены для синхронизации;
  2. Слишком короткое время может привести к потере блокировок, а слишком длинное — к накоплению устаревших данных.

Рекомендации:

  1. Значение по умолчанию («5000») подходит для большинства случаев.  Если кластер испытывает проблемы с синхронизацией, попробуйте увеличить до «10000»;
  2. Не устанавливайте слишком большое значение, чтобы избежать перегрузки кэша.

10. services.CoAuthoring.expire.saved

Описание: Определяет время жизни (в секундах) данных успешного сохранения документа в базе данных.

Тип: Целое число (секунды).

Значение по умолчанию: «3600» (1 час).

Использование:

  1. Этот параметр определяет, как долго хранится информация об успешном сохранении документа;
  2. Слишком короткое время может привести к потере данных при сбоях, а слишком длинное — к накоплению устаревших записей.

Рекомендации:

  1. Значение по умолчанию («3600») подходит для большинства случаев;
  2. Для интенсивной работы с документами можно увеличить до «7200» (2 часа);
  3. Убедитесь, что это значение меньше, чем lastsave

11. services.CoAuthoring.expire.documentsCron

Описание: Определяет расписание (в формате cron), по которому сервер проверяет и удаляет старые файлы из кэша.

Тип: Строковый (формат cron).

Значение по умолчанию: «0 */2 * * * *» (каждые 2 часа).

Использование:

  1. Этот параметр управляет очисткой кэша от устаревших файлов документов, чтобы освободить место;
  2. Слишком частая проверка может увеличить нагрузку на сервер, а слишком редкая — привести к накоплению данных.

Рекомендации:

  1. Значение по умолчанию («0 */2 * * * *») подходит для большинства случаев;
  2. Для серверов с большим количеством документов можно установить проверку реже, например, «0 */4 * * * *» (каждые 4 часа);
  3. Используйте онлайн-инструменты для проверки синтаксиса cron-выражений.

12. services.CoAuthoring.expire.files

Описание: Определяет время жизни (в секундах) временных папок в каталоге App_Data.

Тип: Целое число (секунды).

Значение по умолчанию: «86400» (1 день).

Использование:

  1. Этот параметр определяет, как долго временные файлы документов хранятся в папке App_Data
  2. Слишком короткое время может привести к потере данных, а слишком длинное — к переполнению хранилища.

Рекомендации:

  1. Значение по умолчанию («86400») подходит для большинства случаев;
  2. Если место на диске ограничено, уменьшите до «43200» (12 часов);
  3. Убедитесь, что это значение синхронизировано с filesCron

13. services.CoAuthoring.expire.filesCron

Описание: Определяет расписание (в формате cron) для проверки и удаления устаревших папок в App_Data.

Тип: Строковый (формат cron).

Значение по умолчанию: «00 00 */1 * * *» (каждый день в полночь).

Использование:

  1. Этот параметр управляет периодичностью очистки папок в App_Data
  2. Слишком частая проверка может нагружать сервер, а слишком редкая — привести к накоплению данных.

Рекомендации:

  1. Значение по умолчанию («00 00 */1 * * *») подходит для большинства случаев;
  2. Для серверов с большим объемом данных можно установить проверку реже, например, «00 00 */2 * * *» (каждые 2 дня);
  3. Используйте онлайн инструменты для проверки синтаксиса cron-выражений.

14. services.CoAuthoring.expire.filesremovedatonce

Описание: Определяет максимальное количество папок, которые сервер удаляет за один цикл очистки кэша.

Тип: Целое число.

Значение по умолчанию: «100».

Использование:

  1. Этот параметр ограничивает количество одновременно удаляемых папок, чтобы снизить нагрузку на сервер во время очистки;
  2. Слишком большое значение может вызвать пиковую нагрузку, а слишком маленькое — замедлить процесс очистки.

Рекомендации:

  1. Значение по умолчанию («100») подходит для большинства случаев;
  2. Для серверов с высокой производительностью можно увеличить до «500»;
  3. Для серверов с ограниченными ресурсами уменьшите до «50».

15. services.CoAuthoring.expire.sessionidle

Описание: Определяет время жизни (в формате времени, например, «1s», «1m», «1h», «1d») неактивной сессии пользователя. Неактивность подразумевает отсутствие действий в редакторе, включая перемещение курсора.

Тип: Строковый (формат времени).

Значение по умолчанию: «1h» (1 час).

Использование:

  1. Этот параметр определяет, как долго неактивный пользователь может оставаться подключенным к сессии редактирования. По истечении этого времени пользователь отключается, а документ сохраняется;
  2. Слишком короткое время может прерывать работу пользователей, а слишком длинное — увеличивать нагрузку на сервер.

Рекомендации:

  1. Значение по умолчанию («1h») подходит для большинства случаев;
  2. Для интенсивной работы можно уменьшить до «30m»;
  3. Для сценариев с редкими действиями можно увеличить до «2h».

16. services.CoAuthoring.expire.sessionabsolute

Описание: Определяет максимальное время жизни (в формате времени) любой сессии редактирования, независимо от активности пользователя.

Тип: Строковый (формат времени).

Значение по умолчанию: «30d» (30 дней).

Использование:

  1. Этот параметр ограничивает общее время, в течение которого сессия может существовать, даже если пользователь активен;
  2. Длительное время полезно для долгосрочных проектов, но может увеличить нагрузку на сервер.

Рекомендации:

  1. Значение по умолчанию («30d») подходит для большинства случаев;
  2. Для краткосрочных задач можно уменьшить до «7d»;
  3. Убедитесь, что значение больше, чем sessionidle

17. services.CoAuthoring.expire.sessionclosecommand

Описание: Определяет время (в формате времени) до истечения срока действия sessionidle или sessionabsolute, за которое пользователю отправляется предупреждающее сообщение о скором завершении сессии.

Тип: Строковый (формат времени).

Значение по умолчанию: «2m» (2 минуты).

Использование:

  1. Этот параметр позволяет уведомить пользователя о скором отключении, чтобы он успел сохранить изменения;
  2. Слишком короткое время может не дать пользователю достаточно времени для реакции.

Рекомендации:

  1. Значение по умолчанию («2m») подходит для большинства случаев;
  2. Для более комфортной работы можно увеличить до «5m»;
  3. Не устанавливайте слишком большое значение, чтобы избежать путаницы.

18. services.CoAuthoring.expire.pemStdTTL

Описание: Определяет время жизни (в формате времени) PEM-файлов, содержащих секреты для шифрования.

Тип: Строковый (формат времени).

Значение по умолчанию: «1h» (1 час).

Использование:

  1. Этот параметр управляет сроком действия ключей шифрования, используемых для защиты данных;
  2. Слишком короткое время может привести к частому обновлению ключей, а слишком длинное — к снижению безопасности.

Рекомендации:

  1. Значение по умолчанию («1h») подходит для большинства случаев;
  2. Для повышения безопасности можно уменьшить до «30m»;
  3. Убедитесь, что значение синхронизировано с pemCheckPeriod

19. services.CoAuthoring.expire.pemCheckPeriod

Описание: Определяет периодичность (в формате времени) проверки срока действия PEM-файлов.

Тип: Строковый (формат времени).

Значение по умолчанию: «10m» (10 минут).

Использование:

  1. Этот параметр определяет, как часто сервер проверяет, истек ли срок действия PEM-файлов;
  2. Слишком частая проверка может нагружать сервер, а слишком редкая — привести к использованию устаревших ключей.

Рекомендации:

  1. Значение по умолчанию («10m») подходит для большинства случаев;
  2. Для серверов с высокой нагрузкой можно увеличить до «20m»;
  3. Убедитесь, что значение меньше, чем pemStdTTL

20. services.CoAuthoring.expire.updateVersionStatus

Описание: Определяет время (в формате времени), через которое пользователь может повторно открыть документ после ошибки, связанной с использованием старого ключа для уже сохраненного файла.

Тип: Строковый (формат времени).

Значение по умолчанию: «5m» (5 минут).

Использование:

  1. Этот параметр помогает избежать конфликтов при попытке открыть устаревшую версию документа;
  2. Слишком короткое время может не дать достаточно времени для синхронизации, а слишком длинное — замедлить доступ.

Рекомендации:

  1. Значение по умолчанию («5m») подходит для большинства случаев;
  2. Для интенсивной работы можно уменьшить до «2m»;
  3. Не устанавливайте слишком большое значение, чтобы избежать задержек.

21. services.CoAuthoring.expire.monthUniqueUsers

Описание: Определяет время жизни (в формате времени) списка уникальных пользователей за месяц, используемого для аналитики.

Тип: Строковый (формат времени).

Значение по умолчанию: «1y» (1 год).

Использование:

  1. Этот параметр используется для хранения данных о пользователях, работавших с сервером в течение месяца;
  2. Слишком короткое время может привести к потере аналитических данных.

Рекомендации:

  1. Значение по умолчанию («1y») подходит для большинства случаев;
  2. Для серверов с ограниченным хранилищем можно уменьшить до «6m».

Пример конфигурации

""json

"services": {

"CoAuthoring": {

"expire": {

"saveLock": 60,

"presence": 300,

"locks": 604800,

"changeindex": 86400,

"lockDoc": 30,

"message": 86400,

"lastsave": 604800,

"forcesave": 604800,

"forcesaveLock": 5000,

"saved": 3600,

"documentsCron": "0 */2 * * * *",

"files": 86400,

"filesCron": "00 00 */1 * * *",

"filesremovedatonce": 100,

"sessionidle": "1h",

"sessionabsolute": "30d",

"sessionclosecommand": "2m",

"pemStdTTL": "1h",

"pemCheckPeriod": "10m",

"updateVersionStatus": "5m",

"monthUniqueUsers": "1y"

}

}

}

""

Общие рекомендации

  1. Тестирование изменений: Перед внесением изменений в параметры убедитесь, что вы протестировали их на тестовой среде, так как некорректные значения могут повлиять на производительность или доступность документов;
  2. Резервное копирование: Всегда сохраняйте резервную копию конфигурации перед внесением изменений;
  3. Мониторинг: Используйте инструменты мониторинга для отслеживания влияния изменений на производительность сервера (например, использование памяти, процессора и диска);
  4. Синхронизация параметров: Убедитесь, что связанные параметры (например, lastsave и saved, pemStdTTL и pemCheckPeriod) имеют логически согласованные значения.

Была ли эта статья полезной?

Поделитесь пожалуйста своим мнением

      В статье есть ошибкиРекомендации не помоглиТекст трудно понятьСодержание статьи не соответствует заголовкуДругое