Различия

Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.

Ссылка на это сравнение

ru:manual:portal:optimization_of_portal_generation_time [2019/03/22 15:23]
belkin
ru:manual:portal:optimization_of_portal_generation_time [2019/12/26 16:32] (текущий)
belkin [Распределенное формирование отчетов портала]
Строка 1: Строка 1:
 ====== Оптимизация времени формирования портала ====== ====== Оптимизация времени формирования портала ======
-Формирование портала состоит из: +Формирование портала состоит из следующих этапов
-  * Формирования структуры. +  * Формирование структуры. 
-  * Формирования отчетов.+  * Формирование отчетов.
    
 Формирование портала может занять длительное время (несколько суток), которое обусловлено количеством объектов, их отчетов, пользователей портала и сложностью настроенных для них прав доступа. Формирование портала может занять длительное время (несколько суток), которое обусловлено количеством объектов, их отчетов, пользователей портала и сложностью настроенных для них прав доступа.
  
-===== Замер времени формирования портала =====  +===== Расчет времени формирования портала =====  
-Необходимо сформировать портал полностью один раз, чтобы замерить время формирования портала. Портал считается сформированным полностью, когда сформирована его структура и все отчеты, кроме отчетов по требованию (отчеты со приоритетом = 0). Показателем того, что все отчеты сформированы служит значение "100%" параметра "Сформировано" на вкладке "Консоль" вкладки "Администрирование" на портале (Рис.1).+Необходимо сформировать портал полностью один раз, чтобы рассчитать время формирования портала. Портал считается сформированным полностью, когда сформирована его структура и все отчеты, кроме отчетов по требованию (отчеты с приоритетом = 0). Показателем того, что все отчеты сформированы служит значение "100%" параметра "Сформировано" на вкладке "Консоль" вкладки "Администрирование" на портале (Рис.1).
  
-[{{ ru/manual/portal/optimization_of_portal_generation_time/optimization_of_portal_generation_time_0001.png?nolink |Рисунок 1}}] +[{{ ru/manual/portal/optimization_of_portal_generation_time/optimization_of_portal_generation_time_0001.png?nolink |Рисунок 1}}]  
  
-Замер времени формирования структуры, времени формирования отчетов и полного времени формирования портала можно провести после того, как портал сформировался полностью, по информации из файла C:\ProgramData\STU-Soft\www\Название_портала\log\time_struct.log((Возможность доступна для BS 4.2.7011 и более новых версий)):+Расчет времени формирования структуры, времени формирования отчетов и полного времени формирования портала можно провести после того, как портал сформировался полностью, по информации из файла C:\ProgramData\STU-Soft\www\Название_портала\log\time_struct.log((Возможность доступна для BS 4.2.7011 и более новых версий)):
   * Разность между моментами времени, указанными в строках "Start" и "Complete Struct" - это время формирования структуры.   * Разность между моментами времени, указанными в строках "Start" и "Complete Struct" - это время формирования структуры.
-  * Разность между моментами времени, указанными в строках "Complete Struct" и "Finish Report"- это время формирования отчетов. +  * Разность между моментами времени, указанными в строке "Complete Struct" и последней по времени строке "Finish Report"- это время формирования отчетов. 
-  * Разность между моментами времени, указанными в строках "Start" и "Finish Report" - это время формирования портала.+  * Разность между моментами времени, указанными в строке "Start" и последней по времени строке "Finish Report" - это время формирования портала.
  
-Время формирования портала должно быть приемлемо с точки зрения скорости доведения изменений в регламентирующей документации до сотрудников. +Время формирования портала должно быть приемлемым с точки зрения скорости доведения изменений в регламентирующей документации до сотрудников. 
  
 //Пример \\ //Пример \\
Строка 26: Строка 26:
   - Провести оптимизацию времени формирования структуры портала и оптимизацию времени формирования отчетов портала (описание см. в одноименном разделе ниже).   - Провести оптимизацию времени формирования структуры портала и оптимизацию времени формирования отчетов портала (описание см. в одноименном разделе ниже).
   - Использовать распределенное  формирование отчетов портала (см. описание в одноименном разделе ниже).   - Использовать распределенное  формирование отчетов портала (см. описание в одноименном разделе ниже).
-  - Использование для формирования портала реплик рабочей базы данных.+  - Использование для формирования портала реплик рабочей базы данных (см. описание в статье базы знаний по Business Studio [[https://www.businessstudio.ru/wiki/faq/doku.php/ru/other/replica|Настройка репликации для базы данных Business Studio]]).
   - Задание приоритета формирования отчетов (описание см. в одноименном разделе ниже).   - Задание приоритета формирования отчетов (описание см. в одноименном разделе ниже).
    
 ==== Оптимизация времени формирования структуры ==== ==== Оптимизация времени формирования структуры ====
 Для оптимизации необходимо: Для оптимизации необходимо:
-  - Оптимальным образом задать права для пользователей, а именно там, где это возможно, права на справочники и классы выдавать через группы Active Directory (см. [[ru/manual/portal/setting#права_пользователей_в_портале|Права пользователей в портале]].+  - Оптимальным образом задать права для пользователей, а именно там, где это возможно, права на справочники и классы выдавать через группы Active Directory (см. [[ru/manual/portal/setting#права_пользователей_в_портале|Права пользователей в портале]]).
   - Уменьшить количество выгружаемых на портал объектов, если это является возможным. \\ Этого можно добиться:   - Уменьшить количество выгружаемых на портал объектов, если это является возможным. \\ Этого можно добиться:
     * Формируя портал по группе, в которую включить только нужный для портала набор объектов (регулируется с помощью параметра "Группа фильтра" в Окне свойств портала).     * Формируя портал по группе, в которую включить только нужный для портала набор объектов (регулируется с помощью параметра "Группа фильтра" в Окне свойств портала).
Строка 37: Строка 37:
    
 ==== Оптимизация времени формирования отчетов ==== ==== Оптимизация времени формирования отчетов ====
 +Следует учитывать, что набор отчетов, предоставляемый в составе баз данных Business Studio по умолчанию, рассчитан на выдачу достаточно подробной информации за приемлемое время, что подходит для большинства клиентов. При необходимости вы можете доработать эти отчеты как в сторону усложнения, так и в сторону упрощения для получения оптимальной для вашей организации степени детализации отчетов и времени их формирования (подробнее об отчетах и их разработке см. [[ru/manual/report|в главе Руководства пользователя "Отчеты"]] и в [[ru/creating_user_reports/creating_user_reports|Методике "Создание пользовательских отчетов"]]).
 +
 Можно упростить отчеты или оптимизировать привязки в них для получение тех же данных, но только более быстрым способом.  Можно упростить отчеты или оптимизировать привязки в них для получение тех же данных, но только более быстрым способом. 
-Особенно это касается основных отчетов портала, которыми чаще всего пользуются сотрудники. Рекомендуемое время формирования таких отчетов – до 1 мин.+Особенно это касается основных отчетов портала, которыми чаще всего пользуются сотрудники.
    
-Чтобы проанализировать, насколько время формирования отчетов соответствует нормам, и получить рекомендации по оптимизации, рекомендуем воспользоваться следующей статьей[[https://www.businessstudio.ru/wiki/faq/doku.php/ru/interactive_support/report/report_generation_problem/report_generation_in_bs_problem/report_is_generated_slowly]]+Чтобы проанализировать, насколько время формирования отчетов соответствует нормам, и получить рекомендации по оптимизации, рекомендуем воспользоваться статьей [[https://www.businessstudio.ru/wiki/faq/doku.php/ru/interactive_support/report/report_generation_problem/report_generation_in_bs_problem/report_is_generated_slowly|Отчет формируется без ошибок, но медленно]]
  
 ==== Распределенное формирование отчетов портала ==== ==== Распределенное формирование отчетов портала ====
-Распределенное формирование отчетов портала на нескольких серверах (см. [[ru/manual/portal/setting#распределенное_формирование_портала|Распределенное формирование портала]]) используется, чтобы распараллелить и, таким образом, ускорить формирование отчетов. На каждом из серверов рекомендуется следующая комбинация служебных процессов портала (по ролям): 
-  * Формирование отчетов  – 5 
-  * Формирование отчетов по требованию  – 1 
-Помощники с ролью "Формирование отчетов" формируют отчеты в фоновом режиме. 
-Помощники с ролью "Формирование отчетов по требованию" формируют отчеты только по запросам пользователей. Наличие таких помощников позволяет быстрее получать на показ отчеты, которые к моменту обращения к ним еще не были сформированы. 
-Общее количество служебных процессов должно быть не более 6 на сервер и не более количества ядер процессора на сервере (т.е., например, если процессор 4-х ядерный, задание 6 служебных процессов для формирования не даст значительного выигрыша по сравнению с 4). 
  
-//Пример расчета необходимого числа серверов формирования по данным о времени формирования портала \\ +Распределенное формирование отчетов портала на нескольких серверах (см. [[ru/manual/portal/setting#распределенноеормирование_портала|Распределенное формирование портала]]) используется, чтобы распараллелить и, таким образом, ускорить формирование отчетов. 
-Для упрощения будем считать, что на всех серверах (в том числе и на основном сервере портала) одинаковое число служебных процессов с ролью "Формирование отчетов" и одинаковое число служебных процессов с ролью "Формирование отчетов по требованию". \\ +
-Пусть общее время формирования портала заняло M = 2.5 суток = 60 часов. Требуется уменьшить его до T = 10 часов, чтобы портал можно было переформировывать ежедневно после рабочего дня и он был готов к началу следующего рабочего дня. Тогда N можно приближенно (без учета времени формирования структуры портала) вычислить как M/T = 60/10 = 6. \\ +
-Т.е. помимо 1 основного сервера портала потребуется 5 дополнительных серверов формирования.//+
  
-Если использование распределенного формирования не даёт требуемого результата (например, ожидали сокращение времени формирования в 5 раз, а сократилось только в 2), возможно, узким местом стала: +Служебные процессы с ролью "Формирование отчетовформируют отчеты в фоновом режиме. Служебные процессы с ролью "Формирование отчетов по требованию" формируют отчеты только по запросам пользователей. Наличие таких служебных процессов позволяет быстрее получать отчеты, которые к моменту обращения к ним еще не были сформированы или у которых истекло время жизни. 
-  * Большая нагрузка на компоненты сервера (система хранения, сетевой адаптер, оперативная память). Для подтверждения этой гипотезы необходимо обратиться к системному администратору, для диагностики можно использовать информацию из следующей статьи: [[https://www.businessstudio.ru/wiki/faq/doku.php/ru/techsupport/sysmon]] \\ Если гипотеза подтверждается, решение проблемы находится в компетенции системного администратора. +
-  * Большая нагрузка на базу данных MS SQLпо которой формируется портал. Для подтверждения этой гипотезы необходимо обратиться к системному администратору. Если гипотеза подтвердится, то для решения этой проблемы можно использовать репликацию баз данных и для каждого сервера портала использовать свою реплику основной базы данных.+
  
 +== Внимание! ==
 +Оптимальное суммарное количество процессов с ролями "Формирование отчетов" и "Формирование отчетов по требованию" на одном сервере – 4. Это связано с ограничениями приложений Microsoft Office. Большее количество таких процессов может приводить к замедлению формирования отчетов.
 +==== ====
 +\\
 +Служебные процессы с ролью "Ввод показателей", кроме ввода показателей, нужны для авторизации пользователей и для распределения заданий при формировании отчетов((С версии BS 4.2.7058)). Они должны запускаться на основном сервере.  
 +Рекомендуется иметь 1 такой процесс на каждые 4-6 процессов с ролью "Формирование отчетов". Общее количество служебных процессов обычно равно количеству ядер процессора на сервере (за исключением основного сервера, где 2 ядра необходимо оставить для работы веб-сервера).  Для мощных процессоров их может быть больше, количество подбирается экспериментально по показаниям счетчиков производительности за период формирования портала: средняя загрузка процессора не должна превышать 80%, а максимальный объем выделенной виртуальной памяти не должен превышать объема ОЗУ (то же касается и сервера с SQL Server).
 +
 +Учитывая оптимальное количество формирователей отчетов на одном сервере, в определенных случаях целесообразно использовать виртуальные машины. 
 +
 +Пример комбинации служебных процессов для 8-ядерных серверов
 +
 +<startTableBox>
 +^  Роль служебного процесса  ^  Физический сервер \\ (8 ядер)  ^  Физический сервер \\ (8 ядер)  ^^   
 +^ ::: ^  Основной сервер  ^  Вспомогательный сервер 1 \\ (виртуальный, 4 ядра)  ^  Вспомогательный сервер 2 \\ (виртуальный, 4 ядра)  ^
 +| Ввод показателей  |  2  |  -  |  -  |
 +| Формирование отчетов  |  3  |  4  |  4  |
 +| Формирование отчетов по требованию  |  1  |  0  |  0  |
 +<endTableBox|Таблица 1. Пример комбинации служебных процессов для 8-ядерных серверов>
 +
 +//Пример расчета необходимого числа серверов формирования по данным о времени формирования портала. \\ 
 +Для упрощения будем считать, что на всех серверах (в том числе и на основном сервере портала) одинаковое число служебных процессов с ролью "Формирование отчетов" и одинаковое число служебных процессов с ролью "Формирование отчетов по требованию". Пусть имеется только один (основной) сервер, а общее время формирования портала составляет M = 2.5 суток = 60 часов. Требуется уменьшить его до T = 10 часов, чтобы портал можно было переформировывать ежедневно после рабочего дня, и он был готов к началу следующего рабочего дня. Тогда можно приближенно (без учета времени формирования структуры портала) вычислить количество серверов как M/T = 60/10 = 6. Т.е. помимо 1 основного сервера портала потребуется 5 вспомогательных серверов.//
 +
 +Если использование распределенного формирования не даёт требуемого результата (например, ожидали сокращение времени формирования в 5 раз, а сократилось только в 2), возможно, узким местом стала:
 +  * Большая нагрузка на компоненты сервера (система хранения, сетевой адаптер, оперативная память). Для подтверждения этой гипотезы необходимо обратиться к системному администратору, для диагностики можно использовать информацию из следующей статьи: https://www.businessstudio.ru/wiki/faq/doku.php/ru/techsupport/sysmon \\ Если гипотеза подтвердится, то решение проблемы находится в компетенции системного администратора.
 +  * Большая нагрузка на базу данных MS SQL, по которой формируется портал. Для подтверждения этой гипотезы необходимо обратиться к системному администратору. \\ Если гипотеза подтвердится, то для решения этой проблемы можно использовать репликацию баз данных и для каждого сервера портала использовать свою реплику основной базы данных.
 ==== Задание приоритета формирования отчетов ==== ==== Задание приоритета формирования отчетов ====
 С помощью задания параметра "Приоритет" у отчета необходимо настроить очередность формирования отчетов так, чтобы основные отчеты портала формировались в первую очередь (наивысший приоритет), остальные отчеты, которыми сотрудники пользуются реже или у которых долгое время формирования  – формировались в последнюю очередь (низкий приоритет) или только по требованию (приоритет 0). С помощью задания параметра "Приоритет" у отчета необходимо настроить очередность формирования отчетов так, чтобы основные отчеты портала формировались в первую очередь (наивысший приоритет), остальные отчеты, которыми сотрудники пользуются реже или у которых долгое время формирования  – формировались в последнюю очередь (низкий приоритет) или только по требованию (приоритет 0).
  
 [<contextnavigator>] [<contextnavigator>]
Актуальные новости, публикации и практики для бизнес-архитекторов и аналитиков
Driven by DokuWiki