Стабилизация производительности при одновременном скачивании больших
файлов
При одновременной загрузке одного и того же файла большого объема несколькими пользователями сервер приложения испытывает резкое увеличение потребления оперативной памяти, что может привести к зависаниям системы.
Для решения этой проблемы в BPMSoft существует механизм блочного чтения файлов, позволяющий существенно снизить нагрузку на память и стабилизировать работу сервера при массовом скачивании.
Включение механизма блочного чтения файлов
Для включения данного механизма необходимо выполнить следующее:
- Включить функциональность «UseContentStreamOnFileLoad».
- Изменить значение системной настройки «Размер читаемого блока файла».
Функциональность «UseContentStreamOnFileLoad»
Функциональность «UseContentStreamOnFileLoad» отключена по умолчанию. Чтобы ее активировать, выполните следующие действия:
- Перейдите в раздел «Функциональность» и активируйте функциональность «UseContentStreamOnFileLoad». Подробнее: Механизм управления функциональностью «Feature Toggle».
- Сохраните изменения.
- Очистите полностью кэш.
Системная настройка «Размер читаемого блока файла»
Для изменения системной настройки «Размер читаемого блока файла»:
- Откройте дизайнер системы и перейдите в раздел «Настройка системы» → «Системные настройки».
- Откройте системную настройку «Размер читаемого блока файла» (код «FileChunkBufferSize»).
- Укажите в поле «Значение по умолчанию» размер единичного блока загружаемого файла в байтах.
- Сохраните изменения.
Ограничения размера, задаваемые в системной настройке, настраиваются в файле SysSettings.config, расположенном в корневой директории приложения.
<sysSetting key="FileChunkBufferSize" valueType="int" operation="min" value="10485760" />
<sysSetting key="FileChunkBufferSize" valueType="int" operation="max" value="30485760" />
Чтобы настроить ограничения по минимальному и максимальному размеру, необходимо изменить значение атрибута value в соответствующей строке.
Указанные настройки позволяют снизить нагрузку на сеть и базу данных при загрузке крупных файлов, благодаря передаче данных «по частям» с возможностью регулирования их размера. Используется метод передачи данных с «чанковым кодированием»: данные передаются в специальной кодировке, поддерживающей открытое соединение до завершения передачи последнего блока.
Рекомендуем изучить
Механизм управления функциональностью «Feature Toggle»
Интерфейсы для работы с файлами