Значение параметров приведено в руководстве администратора.
Время между тиками (сек) — пауза между периодами активности сервера бизнес-процессов («тиками»); по умолчанию этот интервал равен 10 секундам, при большом количестве активных процессов рекомендуется его увеличить;
Максимальный объем памяти (Мб), который может использовать при работе сервер управления процессами; по умолчанию его значение равно 512 Мб;
Время ожидания выполнения функции в потоке (сек) — период задержки перед повторным исполнением функции в циклическом бизнес-процессе; этот период используется, если в настройках функции в поле "Период опроса" не указан другой интервал;
Время тика — продолжительность активности сервера бизнес-процессов;
Функций за тик — количество функций одного бизнес-процесса, обрабатываемых сервером бизнес-процессов за один период активности;
Число процессов в одном пакете — максимальное количество бизнес-процессов в одной «порции» (пакете), которые обрабатываются одновременно; общая продолжительность тика зависит от количества пакетов, однако размер пакета следует ограничивать соразмерно с объемом оперативной памяти компьютера;
Размер пула шлюза, где пул шлюзов — это совокупность параллельно работающих экземпляров шлюзов одного типа с одинаковыми настройками, выделяемых для обработки процессов;
Размер пула сессий, где пул сессий — это совокупность параллельно работающих сессий с одинаковыми настройками подключения, выделяемых для обработки процессов;
Время ожидания выполнения метода Storage Server (сек) — период ожидания ответа сервера, после которого возвращается сообщение об ошибке (Сервер недоступен»).
Оценивая возможности подсистемы Workflow необходимо учитывать, что разные функции дают разную нагрузку на систему. Например, ф-ции, которые работают с карточками или любыми данными в базе выполняют соединение с сервером DocsVision и скорость их работы определяется так же производительностью сервера (выполнение запросов в базе, обработка результатов и т.п.). А функции сценарий, практически не задействуют сервер и БД (разве, что, для чтения настроек). Т.о. функция "Мониторинг DocsVision" может выполняться долго, если в поисковом запросе участвует много карточек. А функция задание может выполниться мгновенно если ожидает изменений в карточке.
Поэтому, довольно трудно дать формулу, в которую можно подставить число экземпляров, частоту процессора, количество ядер и объем ОЗУ, и в результате получить значение параметров.
Какие же профили можно использовать для решения конкретных задач?
1. Если необходимо более часто брать в обработку процессы - уменьшаем число функций за тик. Максимально частой обработке новых процессов соответствует 1 функция за тик (при неизменном желаемом времени тика).
Т.е. чтобы проходило меньше времени между тем как пользователь или функция подпроцесс запустит новый процесс, и тем моментом, как функция "Старт" в них станет обработанной.
2. Если хочется максимально быстро обрабатывать "длинные" процессы - увеличиваем число функций за тик. Например до 50-100. Но тут уже возникает опасность постоянной обработки какого-нибудь цикла, который не несет полезной нагрузки (например, какая-нибудь функция зацикленная на себя при помощи связи по ошибке)
3. Чтобы не зависеть от функций, которые долго выполняются или вообще подвисают на какой-нибудь операции с внешней системой, можно уменьшить "Время ожидания функции в потоке". С 900 секунд, до 180.
Параметры справедливы для машины с любым количеством ядер. Ну разве что не стоит выставлять размер пакета процессов меньше, чем число потоков, которые система может обрабатывать параллельно.
(Чисто теоретически это число вычислительных ядер в системе. Если поддерживается HyperThreading - то число ядер умножается на 2. Т.е. в принципе, в современном однопроцессорном четырехядерном сервере может параллельно обрабатываться до 8 потоков. А сверху число потоков ограничено максимальным размером пула потоков: 64 т.е. ставить размер пакета больше 64 тоже смысла нет)
Средними настройками, подходящими под большинство решений, являются:
- Время между тиками – от 2 до 10 с;
- Количество функции за тик – от 5 до 15;
- Число процессов в пакете- от 10 до 40;
- Время ожидания выполнения функции в потоке – 900 с;
- Время ожидания выполнения метода Storage Server – 600 c;
- Время тика – 300 с;
- Максимальный объем памяти – от 512 до 1536 Mb.
Читать дальше
4 коммент.:
Спасибо, сделал для себя некоторые выводы.
Вопрос по параметру "Время ожидания выполнения функции в потоке (сек)". Сказано, что этот параметр определяет период задержки между повторным выполнением функции кубика. Значение по умолчанию: 900 сек. Значит ли это, что если кубик "мониторинг DV" осуществил поиск по сложному какому-то запросу, который выполняется секунд 30, и ничего не нашёл, то повторный поиск карточек произойдёт только через 15 минут, если в поле период опроса стоит 0 минут?
Вроде бы повторный поиск запускается сразу же безо всякого периода, поэтому если поиск в мониторинге сложный, то WF начинает сииильно тормозить, т.к. каждый тик выполняется ооочень долго. Для избежания таких ситуаций в случае неудачного поиска, я передаю управление функции расписания, чтобы как раз вставить таймаут между поисками.
На самом деле, в руководстве дана неверная формулировка, которая приводит к непониманию - это мы поправим в ближайшее время.
Это параметр - допустимое время выполнения функции. При привышении этого значения, ф-ция считается превысившей допустимое время выполнения и фиксируется таймаут.
Михаил, вот просветите ещё по параметру размер пула сессий. Т.е. получается сколько сессий, столько одновременно и тиков выполняется сервером Workflow? А иначе как объяснить в логе Workflow сообщения вида:
ProcessManager: 22.10.2009 9:57:52 Execution takes 15,9217731 seconds, processed 82 functions in 23 active instances
Если параметр функций за тик равен 15?
Пул сессий никак не связан с тиком. Это набор готовых подключений к серверу DocsVision. Функция может выбрать уже созданное подключение из пула, либо создать новое, если верхний лимит не достигнут
Отправить комментарий