...

Длительная отработка веб-запроса при большом кол-ве файлов-вложений в экземпляре процесса

Тема в разделе "Проблемы/ошибки", создана пользователем mkv, 18 авг 2017.

  1. mkv

    mkv New Member

    Здравствуйте, уважаемые участники сообщества!

    С июня внедрили Community версию ELMA в своей организации. Пока у нас настроен только один процесс, но планируется расширение на другие области, и в частности на финансы.

    Однако, на текущий момент была обнаружена некоторая проблема - веб-запросы долго отрабатывают, если в карточку процесса вложено много документов (предварительная гипотеза). На текущий момент, максимальный объем вложений в карточку был 300 Мб (тендерная документация).
    Проблема наблюдается не только при первичном вложении файлов, но и дальнейшем просмотре карточки экземпляра процесса.

    Возможно, дело в недостатке ресурсов, но хочется уточнить у сообщества - возможно, это реализация файлового модуля такая...

    Текущая версия Элмы - 3.10.10.32624.

    В тех экземплярах процессов, где вложений мало или они отсутствуют - время генерации веб-страницы находится в пределах разумного - до 2-3 секунд.

    В самом сложном экземпляре - 48 секунд (!). Диагностика показывает, что максимальное время выполнения веб-запроса - почти минута была за все время.
    Основные сложности в запросах:
    /Workflow/WorkflowTask/Execute
    /Processes/WorkflowInstance/Info


    Конфиг сервера: сервер приложений с IIS, сервер БД c PostgreSQL 9.6, файлы хранятся на сетевом файловом хранилище. С сетью проблем нет.

    Увеличили ресурсы на сервере приложений - максимальное время веб-запросов и среднее - улучшилось.
    Но проблема с файлами остается.

    В таблицах attachment и fs_files вроде вся необходимая информация записана. Насколько я понял (столкнулся с этим на тестовом сервере) - ЭЛМА проверяет доступен ли файл и если нет, то выдает ошибку (я не стал вначале копировать уже всю накопленную базу файлов).

    Т.е. получается (моя гипотеза), что прежде чем, отдать веб-страницу, ЭЛМА выкачивает (?) все вложенные файлы, проверяя их доступность? Я прав или нет?

    Кто-то сталкивался с подобным и если да, то как решали?
     
    Последнее редактирование: 18 авг 2017
  2. fizik

    fizik New Member

    Мы работаем в задачах с достаточно большим объемом вложений ( > 200 Мб) и с такими проблемами не сталкивались. Какая у вас конфигурация сервера?
    Вообще Элма хранит вложения в в каталоге конфигурации: UserConfigs\Files. Быть может это ваше узкое место?
     
  3. mkv

    mkv New Member

    Спасибо, что откликнулись!
    У нас файлы расположены не по дефолтному пути, а в сетевом хранилище.

    Судя по всему, проблема в файловом хранилище. Оно не является выделенным конкретно для нужд Элмы, еще и используется всей организацией и представляет собой обычный QNAP - raid-зеркало из 2х2Tb 7200rpm дисков.

    Сервер приложения: Xeon L5520 4х2,27Ггц, 8 Гб (из них занято от силы 2,5 Гб максимум). Сервер БД - 2х2,27ГГц, 4 Гб. Ну и файл-сервер 2x1,6Ггц.
    Юзеров в системе одновременно максимум 20, причем запросов они немного генерят (пока!)

    На конкретном процессе, в который вложено 386 Мб вложений, наблюдал отработку - при запросе карточки производилось чтение каждого отдельного файла по очереди (смотрел через логи Qnap-а), суммарно в течение 48 секунд, после чего - веб-запрос отработал и вернул вьюху.

    fizik, не поделитесь Вашим конфигом? Где расположено ваше ФХ - там же на сервере приложения (где установлена Элма) - по дефолтному пути или все-таки на отдельный файл-сервер вынесли?
     
    Последнее редактирование: 5 сен 2017
  4. mkv

    mkv New Member

    Поскольку пока таких документов крайне мало, за решение проблемы пока не брались.

    Попробую в разных вариантах - как будет работать с дефолтным расположением файлов (на том же серваке), ну и, возможно, на отдельном файл-сервере. Конечно, производительных решений у нас пока не предвидится (ssd или SAS).
    Потом отпишусь, возможно, кому-то пригодится.
     
  5. fizik

    fizik New Member

    По дефолтному пути.
    У нас под элму пока менее производительная система, но проблем, как уже писал - не замечено. Хотя редко большой объем бывает.
    После экспериментов отпишитесь пож-та, тоже стало интересно для будущей реализации.
     
  6. mkv

    mkv New Member

    В общем, по итогам пока остановился на варианте - "дефолтном", т.е. когда файлы вложений физически хранятся там же, где установлена ELMA. Т.е. в нашем конкретном случае - на сервере приложения теперь и файлы лежат.

    Ранее было 42-48 секунд отработка веб-запроса, сейчас стабильно 4 секунды, т.е. разница в десять (!) раз.

    Пока возможности испробовать еще один отдельный файл-сервер нет, поэтому будем работать так.
    То ли реально сеть подводит, то ли все-таки слабоват Qnap-чик для этого дела. Думаю, сказывается его общая нагруженность.
     
    Последнее редактирование: 11 сен 2017
  7. pushkarev

    pushkarev Active Member

    А не производится ли у вас каких-то манипуляций с файлами? Например генерации предпросмотра
    Судя по симптомам идет какая то обработка файла самой ELMA и она его явно к себе скачивает.
    Так же можно замерить скорость доступа к файлу локально и через сетевое хранилище (например замерить копирование какого-нибудь достаточно большого файла), на сколько они разнятся.
    И я бы еще попробовал примаунтить сетевое хранилище как диск к серверу приложений ELMA, что-то мне подсказывает что может вырасти скорость работы (хотя может и ошибаюсь).

    PS: по поводу вашей конфигурации серверов, если сервер приложений только под ELMAи есть возможность перераспределить ресурсы, то я бы рекомендовал больше оперативной памяти от дать под БД, сервер приложений как правило менее прожорливый чем БД.
     

Поделиться: