Статья адресована сотрудникам, ответственным за использование ИСУП ADVANTA, которая установлена на своих ресурсах.
Здесь содержатся:
Читайте ниже о том, как их устранить.
1. Установлены не все версии дополнительного ПО для работы ADVANTA, данное ПО не обновляется с достаточной периодичностью.
Пояснение: для работы ПО ADVANTA необходимо установить библиотеки расширений MS .Net Framework, Visual C++ Redistributable x64 и x86, ASP и др. согласно инструкции тут.
Рекомендация: произвести установку дополнительного ПО согласно инструкции.
2. Установка ПО ADVANTA на сервер IIS, который ранее был сконфигурирован под другие приложения с параметрами отличных от стандартных. Применение не стандартных настроек IIS ИТ персоналом. Как вариант IIS – сервер мог быть ранее сконфигурирован через Групповые политики Active Directory.
Диагностика: утилита GPRESULT с параметром /H GPReport.html. Для запуска нужны права Администратора.
Рекомендация: произвести установку ПО ADVANTA на вновь установленный сервер. Вывести сервер из-под действия Групповых политик, влияющих на конфигурацию IIS-сервера.
3. Ошибки в конфигурационном файле client.config, допущенные при установке ПО ADVANTA или при обслуживании, обновлении.
Пояснение: Ошибки или отсутствие параметров register в секции container могут привести к частичной недоступности функционала ПО ADVANTA, так и к полному отказу Системы.
Решение:
client.config к стандартному виду.client.config в соответствии с инструкцией здесь.4. Несоответствие аппаратно-программной части пользовательской станции рекомендациям, указанным на официальном сайте здесь.
1. Используется единый сервер для размещения БД и ПО ADVANTA без дополнительной настройки производительности использования ОЗУ.
Пояснение: Роли сервера приложений ADVANTA и БД MS SQL рекомендуется размещать на разных виртуальных или физических серверах. Иначе возможна нехватка ОЗУ для ПО ADVANTA при стандартных настройках инсталляции MS SQL.
2. Использование низкопроизводительных дисков для размещения файлов БД и файлов транзакций.
Диагностика: одним из симптомов может служит значение «Длина очереди диска» более 2 при использовании стандартного диска без RAID, иначе умножается количество дисков на два. Монитор ресурсов – Диск.
Рекомендация: Файлы баз данных и логов транзакций рекомендуется размещать на высокопроизводительных дисках (подробнее).
3. Расположение файлов Базы данных и файлов лога транзакций на одном диске.
Пояснение: Такое расположение способствует конкуренции за ресурсы при расположении на одном диске, особенно при включении Полной модели восстановления БД.
4. Включение Полной модели восстановления, при этом переполняется журнал транзакций по разным причинам.
Пояснение: согласно инструкции модель восстановления в настройках БД должна стоять в значении: Простая. Переполнение журнала транзакций может возникнуть по различным причинам (подробнее). На БД MS SQL необходимо обязательно выполнять резервное копирование и задачи обслуживания типа перестроение индексов, обновление статистики, c определённой периодичностью. Во избежание снижения производительности обслуживание рекомендуется проводить в ночное время.
5. Подготовка сервера баз данных MS SQL.
При создании или восстановлении БД необходимо выполнить инструкции, описанные тут.
Системные требования, указанные в инструкции, рекомендуется выбирать в соответствии с рекомендуемыми значениями здесь.
При этом важно учитывать все рекомендуемые значения ОС и дополнительного ПО и их конфигураций, и закладывать ресурсы еще и на них.
Особое внимание необходимо уделять средствам защиты и информационной безопасности, средствам шифрования, которые могут потреблять значительные ресурсы, подробнее ниже.
Требования к пропускной способности сетевого интерфейса указаны здесь.
Рекомендуется проверить реальную пропускную способность через копирование файла объемом не менее 2 Гб, замерить среднюю скорость передачи.
При использовании сетевых файловых ресурсов тест с копированием объемного файла нужно выполнить и с использованием этих ресурсов.
Пользователи любой системы, в том числе и Системы ADVANTA, могут обращаться с вопросом типа «У меня Система тормозит». Это субъективная оценка, и ее необходимо в первую очередь перевести в числовую плоскость, выполнить замеры и оценку объема производимых действий.
Обработка большого количества данных не может выполняться быстро в любой системе, и требует времени. Например, невозможно построить тяжелый отчет с огромным объемом данных за 10 секунд, или переместить огромный же объем данных, поэтому необходимо соотносить выполнение объема операций и ожидаемого времени.
Определение конкретного «тормозящего» действия:
Поэтому подготавливая данные по уточнению проблемных действий, вы сильно упростите процесс поиска и сэкономите время, и это значит, что вероятность решения этой проблемы повышается.
Если к вам обращается пользователь, с проблемой «Система тормозит»:
Также важен и контекст выполнения, для этого стоит попробовать выполнить действие:
Самый лучший способ – в той же локальной сети, в которой находится и сервер Системы.
Определите также, не связана ли проблема пользователя с пиковой нагрузкой:
Вполне может оказаться, что проблема фиксируется только из одного сегмента сети и отсутствует в других, в этом случае скорее всего необходимо решать проблему скорости доступа пользователя к серверу.
Часто уже в ходе выполнения этих проверок удается найти зависимость скорости выполнения от условий, в которых это выполняется и устранить их без обращения в техническую поддержку.
| Операция | Время выполнения | Объем данных | Пользователь | Рабочая станция и сеть |
|---|---|---|---|---|
| Открытие проекта в Ганте | 2 минуты | 17780 задач | Иванова Мария (лиц.руководитель) | Windows 8, IE 10, 2Гб оперативной памяти. Соединение по vpn из филиала к центральному серверу. В локальной сети на Chrome открывается за 10 секунд. |
| Создание задачи в Ганте | 1 минута | - | Windows 8, IE 10, 2Гб оперативной памяти. Соединение по vpn из филиала к центральному серверу. С соседнего рабочего места из FireFox создается за 3 секунды |
Разработчики регулярно проводят оптимизацию Системы, улучшая время отклика в наиболее часто используемых операциях.
Поэтому после того, как вы получили сообщение об обновлении, и в нём указано, что ранее «тормозившая» операция оптимизирована, проведите замеры. Без регистрации реестра «тормозящих» операций (пример в разделе 2) практически невозможно в дальнейшем объективно оценить изменения.
Если произошло улучшение отклика Системы до приемлемого, то закройте соответствующий вопрос в технической поддержке ADVANTA.
Есть несколько известных настроек, которые могут приводить к ухудшению производительности, но улучшают взаимодействие Системы с пользователем.
В зависимости от требований бизнес-пользователей и возможностей аппаратного обеспечения, выбирайте оптимальный вариант.
Ниже перечень настроек, которые влияют на производительность.
При этом, если показатель не сложно считается и данные в отчет выводятся не большим количеством (несколько десятков записей), то изменения в скорости могут быть незаметными, на уровне погрешности замера. Если же данных много (сотни, или тысячи строк), показателей несколько и считаются они сложно, то падение скорости создания отчета будет заметно.
В этом же отчете есть возможность выводить дочерние объекты, которые также могут замедлять скорость формирования самого отчета. Здесь также, все зависит от объема данных отчета и количества дочерних объектов.
Табличные отчеты, которые содержат несколько отчетов источников, могут формироваться заметно дольше.
Дело в том, что для формирования итогового листа такого отчета, сначала формируются все отчеты источники (при этом выбираются все данные, а не постранично, как если бы отчет-источник просматривался из интерфейса Системы самостоятельно), затем уже все выгруженные данные с помощью формул размещаются на промежуточных и итоговом листе. Т.е. время на формирование такого отчета складывается из времени формирования каждого отчета источника, и затем еще время на формирование расчетных листов табличного отчета.
При размещении на карточке объекта большого количества виджетов, считающихся онлайн, также снижается время открытия карточки объекта.
Если загружается большое количество строк Excel в Систему, то время загрузки также может быть значительным.
Загрузка становится заметной при объёме больше тысячи (1000) строк, а в некоторых случаях и меньшего объема (зависит от разных условий).
Процедуры обработки, как правило выносятся по времени на периоды малой загрузки (ночь/вечер), но если это невозможно, то могут использоваться и в рабочее время.
Скрипты создают большой набор обращений к Системе ⇒ могут увеличивать загрузку сервера Системы в период своей работы ⇒ мешают быстрой работе других пользователей.
Процедуры интеграции являются аналогом предыдущего пункта о скриптах, поскольку используют аналогичные алгоритмы доступа к данным Системы.
Если в кубах:
то, как правило, пересчет такого куба в режиме онлайн, когда пользователи постоянно вносят данные требующие пересчета этого куба, занимает существенное время (куб почти все время находится в состоянии пересчета) и дает заметную нагрузку на Систему в целом, что может приводить к зависаниям страниц и функций Системы.
В Системах с большим количеством данных рекомендуется переводить все, без исключения, OLAP-кубы на режим обновления «Один раз в сутки» или «По таймеру» (с интервалом срабатывания раз в несколько часов). Иначе есть значительная вероятность возникновения блокировок транзакций в базе данных, что приведет к возникновению проблем, описанных в предыдущем абзаце.
Как и в предыдущем пункте, есть и другие настройки, также влияющие на скорость выполнения (как правило такие настройки не требуются):

Известные способы ускорить работу Системы:
Если установлен расчет по таймеру, то при открытии карточек объектов будут использоваться данные уже рассчитанные и сохраненные при последнем пересчете. Значение может немного запаздывать (на период пересчета), но часто такая оперативность и не требуется, тем более у каждого такого виджета есть кнопка пересчета, если требуется получить актуальные данные.
На стороне сервера также может находиться потенциал роста скорости работы Системы. Вот несколько рекомендаций:
shared memory, чтобы разграничить потребление памяти между IIS и SQL.Рекомендации при эксплуатации Системы ADVANTA с описанием возможных проблем, причинами их возникновения и способами их решения.
| Проблема | Категория проблемы | Метод диагностики причины и возможных решений | Возможные причины проблемы | Решение |
|---|---|---|---|---|
| OLAP-куб не пересчитывается за отведенное время | 1.Большой объем данных (много строк данных). 2. Приложение ADVANTA может строить неоптимальные запросы в БД. 3. Настроена слишком сложная логика OLAP-куба. 4. Сложная связь OLAP-кубов между собой. 5. Большая нагрузка на Систему во время пересчета. 6. Пересчет куба не успевает выполниться за отведенное время. 7. Большое количество показателей и измерений (в том числе скрытых). | 1. Увеличить значение таймаута пересчёта куба - CubeCommandTimeout с перезапускам ADVANTA и службы MS SQL/PostgreSQL). 2. Попробовать пересчитать проблемный OLAP-куб отдельно. 3. Убрать показатели, которые нигде далее не используются. 4. Уменьшить количество измерений. 5. Упростить логику расчета OLAP-куба. 6. Упростить использование OLAP-куба в других кубах. 7. Перенос пересчета куба на ночное время (в менее загруженное для БД время). 8. Оптимизировать логику пересчета куба. 9. Оптимизировать запросы в БД, которые генерирует приложение ADVANTA - это возможно только с получением полного дампа от клиента. |
||
| Медленная работа Системы, например: • долгое открытие ГАНТа; • долгое открытие Карточки проекта; • долгое обновление/сохранение страниц. | 1. Долгая подгрузка меню пользовательских колонок в ГАНТе. 2. Долгое открытие excel-отчётов. | Большое количество реквизитов в Карточке объекта | 1. Разнести (сократить) большое количество реквизитов по другим объектам. 2. Сократить количество условных реквизитов у объектов. |
|
| 1. Долгие операции автоматизации (триггеров). Можно посмотреть на логи триггеров/Системы. 2. Триггеры не завершают свою работу. | Неоптимально написанный триггер (например, большое количество записей обработки данных) | 1. Подключить триггерописцев по проекту для оптимизации. 2. Разбить большое количество записей на порции. 3. Под каждую операцию добавить timeout, чтобы приложение/база успевали обработать данные. |
||
| Заходить в каждый LINQ и проверять время выполнения. Адекватное время выполнения до 3 секунд | Неоптимально написанный LINQ-запрос | Подключить внедренцев по проекту для оптимизации | ||
| Долгая авторизация через Active Directory не под Администратором Системы | 1. Проверить сетевую связанность между приложением и Active Directory. 2. Проверить скорость взаимодействия между приложением и Active Directory. 3. Проверить в ненагруженное время (например, ночью). | 1. Проблемы в инфраструктуре. 2. Проблема в производительности БД. 3. Проблема в неправильно настроенном Active Directory и связи с ней из приложения. | ||
| Периодически быстродействие Системы (в нормальном - 3 секунды, в медленном 1.5 минуты) | Проверить графики в Zabbix по нагрузке на сервер приложения и БД | Запускаемые периодически триггеры | ||
| Чрезмерное потребление оперативной памяти | Диагностировать потребление можно через Zabbix и связать с запускаемыми процессами по таймеру или триггерами | Строятся крупные excel-отчёты, которые занимают большое количество оперативной памяти | Вынести сервис расчета excel-отчетов на отдельную машину для ОС Windows/для ОС Linux | |
| Чрезмерное потребление CPU (повторяется в одно и то же время каждый день) | 1. Диагностировать потребление можно через Zabbix и связать с запускаемыми процессами по таймеру или триггерами. 2. Долгие операции автоматизации (триггеров). Можно посмотреть на логи триггеров/Системы. 3. Триггеры не завершают свою работу. | Неоптимально написанный триггер (например, большое количество записей обработки данных) | 1. Подключить триггерописцев по проекту для оптимизации. 2. Разбить большое количество записей на порции. 3. Под каждую операцию добавить timeout, чтобы приложение/база успевали обработать данные. |
В «Общих настройках» Системы в Администрировании есть функция для сбора логов операций, которая может быть запрошена разработчиком при необходимости. Управление логами выполняется из пункта «Система сбора информации об ошибках».