Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.
ru:manual:portal:optimization_of_portal_generation_time [2019/04/17 11:43] belkin [Оптимизация времени формирования отчетов] |
ru:manual:portal:optimization_of_portal_generation_time [2019/12/26 16:32] (текущий) belkin [Распределенное формирование отчетов портала] |
||
---|---|---|---|
Строка 7: | Строка 7: | ||
===== Расчет времени формирования портала ===== | ===== Расчет времени формирования портала ===== | ||
- | Необходимо сформировать портал полностью один раз, чтобы рассчитать время формирования портала. Портал считается сформированным полностью, когда сформирована его структура и все отчеты, кроме отчетов по требованию (отчеты со приоритетом = 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}}] | ||
Строка 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#права_пользователей_в_портале|Права пользователей в портале]]). |
- Уменьшить количество выгружаемых на портал объектов, если это является возможным. \\ Этого можно добиться: | - Уменьшить количество выгружаемых на портал объектов, если это является возможным. \\ Этого можно добиться: | ||
* Формируя портал по группе, в которую включить только нужный для портала набор объектов (регулируется с помощью параметра "Группа фильтра" в Окне свойств портала). | * Формируя портал по группе, в которую включить только нужный для портала набор объектов (регулируется с помощью параметра "Группа фильтра" в Окне свойств портала). | ||
Строка 45: | Строка 45: | ||
==== Распределенное формирование отчетов портала ==== | ==== Распределенное формирование отчетов портала ==== | ||
- | Распределенное формирование отчетов портала на нескольких серверах (см. [[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>] |