Содержание

Причины низкой производительности Адванты и их устранение

Для кого эта статья

Статья адресована сотрудникам, ответственным за использование ИСУП «Адванта», которая установлена на своих ресурсах.

Здесь содержатся:

  • рекомендации,
  • описания по настройкам для известных параметров, влияющих на скорость работы системы,
  • способы сбора данных о производительности, которые могут быть запрошены сотрудниками технической поддержки разработчика ИСУП «Адванта».

ТОП-5 причин в инфраструктуре

  1. Ошибки конфигурации ПО ADVANTA при его установке или обновлении
  2. Ошибка конфигурации сервера Баз Данных MS SQL
  3. Недостаточная производительность серверной части
  4. Качество связи между приложением и БД
  5. Другое программное обеспечение и настройки сервера

Читайте ниже о том, как их устранить.

Ошибки конфигурации ПО ADVANTA

1. Установлены не все версии дополнительного ПО для работы Адванта, данное ПО не обновляется с достаточной периодичностью.

Пояснение: для работы ПО Адванта необходимо установить библиотек расширений MS .Net Framework, Visual C++ Redistributable x64 и x86, ASP и др. согласно инструкции тут.

Рекомендация: произвести установку дополнительного ПО, согласно инструкции.


2. Установка ПО Адванта на сервер IIS, который ранее был сконфигурирован под другие приложения с параметрами отличных от стандартных. Применение не стандартных настроек IIS ИТ персоналом. Как вариант IIS – сервер мог быть ранее сконфигурирован через Групповые политики Active Directory.

Диагностика: утилита GPRESULT с параметром /H GPReport.html. Для запуска нужны права Администратора.

Рекомендация: произвести установку ПО Адванта на вновь установленный сервер. Вывести сервер из-под действия Групповых политик, влияющих на конфигурацию IIS-сервера.


3. Ошибки в конфигурационном файле «client.config», допущенные при установке ПО Адванта или при обслуживании, обновлении.

Пояснение: Ошибки или отсутствие параметров «register» в секции «container» могут привести к частичной недоступности функционала ПО Адванта, так и к полному отказу системы.

Решение:

  1. привести конфигурационный файл «client.config» к стандартному виду;
  2. при работе с БД Postgres привести конфигурационном файл «client.config» в соответствии с инструкцией здесь.


4. Несоответствие аппаратно-программной части пользовательской станции рекомендациям, указанным на официальном сайте здесь.

Ошибка конфигурации сервера Баз Данных MS SQL

1. Используется единый сервер для размещения БД и ПО Адванта без дополнительной настройки производительности использования ОЗУ.

Пояснение: Роли сервера приложений Адванта и БД MS SQL рекомендуется размещать на разных виртуальных или физических серверах. Иначе возможна нехватка ОЗУ для ПО Адванта при стандартных настройках инсталляции MS SQL.


2. Использование низкопроизводительных дисков для размещения файлов БД и Файлов транзакций.

Диагностика: одним из симптомов может служит значение «Длина очереди диска» более 2 при использовании стандартного диска без RAID, иначе умножается количество дисков на два. Монитор ресурсов – Диск.

Рекомендация: Файлы баз данных и логов транзакций рекомендуется размещать на высокопроизводительных дисках (подробнее).


3. Расположение файлов Базы данных и файлов Лога Транзакций на одном диске.

Пояснение: Такое расположение способствует конкуренции за ресурсы при расположении на одном диске, особенно при включении Полной модели восстановления БД.


4. Включение Полной модели восстановления, при этом переполняется журнал транзакций по разным причинам.

Пояснение: согласно инструкции модель восстановления в настройках БД должна стоять в значении: Простая. Переполнение журнала транзакций может возникнуть по различным причинам (подробнее). На БД MS SQL необходимо обязательно выполнять резервное копирование и задачи обслуживания типа перестроение индексов, обновление статистики, c определённой периодичностью. Во избежание снижения производительности обслуживание рекомендуется проводить в ночное время.


5. Подготовка сервера баз данных MS SQL.

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

Недостаточная производительность серверной части

Системные требования, указанные в инструкции, рекомендуется выбирать в соответствии с рекомендуемыми значениями здесь.

При этом важно учитывать все рекомендуемые значения ОС и дополнительного ПО и их конфигураций, и закладывать ресурсы еще и на них.

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

Качество связи между приложение и БД

Требования к пропускной способности сетевого интерфейса указана здесь.

Рекомендуется проверить реальную пропускную способность через копирование файла объемом не менее 2 Гб, замерить среднюю скорость передачи.

При использовании сетевых файловых ресурсов тест с копированием объемного файла нужно выполнить и с использованием этих ресурсов.

Другое программное обеспечение и настройки сервера

  1. Антивирусное и другое ПО защиты информации – рекомендуется настроить исключение для каталога с приложением Адванта и файлами пользователей, либо настроить время сканирования в наименее нагруженное время, например ночью.
  2. Установка обновление безопасности – рекомендуется своевременно производить установку обновление безопасности ПО Microsoft.
  3. Шифрования файловой системы – не рекомендуется настраивать шифрование томов либо другого вида шифрования на серверах, используемых для работы ПО Адванта.
  4. Мониторинг и Логирование – средства мониторинга и сбора логов необходимо настраивать таким способом, при котором данные настройки не приведут к снижению производительности ПО Адванта или компонентов ОС.
  5. Настройка ограничений у сетевой карты, дисковые квоты, файл подкачки – использование ограничений, не предусмотренных при установке ПО Адванты не рекомендуются и потенциально могут навредить производительности.
  6. Драйверы, установленные для конкретного сервера, должны быть установлены в соответствии с требования поставщика оборудования и ПО, установка должна проводиться квалифицированным персоналом.

Как найти, что «тормозит»

Пользователи любой системы, в том числе и системы «Адванта», могут обращаться с вопросом типа «У меня система тормозит». Это субъективная оценка, и ее необходимо в первую очередь перевести в числовую плоскость, выполнить замеры и оценку объема производимых действий.

Обработка большого количества данных не может выполняться быстро, в любой системе, и требует времени.
Например, невозможно построить тяжелый отчет с огромным объемом данных, за 10 секунд, или переместить огромный же объем данных, поэтому необходимо соотносить выполнение объема операций и ожидаемого времени.

Определение конкретного «тормозящего» действия:

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

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

Если к вам обращается пользователь, с проблемой «система тормозит»:

  1. выясните точное место, где это происходит. Определите действие, вызывающее медленную работу: это открытие диаграммы Ганта, или его сохранение, импорт данных через Excel, или создание проекта по шаблону и т.д.
  2. выясните условия, в которых это происходит:
    • какой объем данных, который участвует в операции,
    • сколько задач в проекте, или строк в Excel файле
    • сколько точно времени занимает операция.

Также важен и контекст выполнения, для этого стоит попробовать выполнить действие:

  • от другого пользователя,
  • из другого браузера,
  • с другого компьютера.

Самый лучший способ – в той же локальной сети, в которой находится и сервер системы.

Определите также, не связана ли проблема пользователя с пиковой нагрузкой:

  • вызванной работой других пользователей системы (т.е. тестировать – в нерабочее время);
  • вызванной выполнением фоновых операции на выполнение какого-либо скрипта.
Например, к вам обращается пользователь, говорит, что Гант (или любой другой функционал) медленно работает. В Ганте есть масса операций, необходимо уточнить какая именно работает медленно:
  • Открытие проекта
  • Создание задачи
  • Изменение даты задачи
  • Установка связи между задачами
  • Назначение ресурса
  • Сохранение после изменения
  • И еще много других операций…

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

Часто уже в ходе выполнения этих проверок удается найти зависимость скорости выполнения от условий, в которых это выполняется и устранить их без обращения техническую поддержку.

ОперацияВремя выполненияОбъем данныхПользовательРабочая станция и сетьВерсия
Открытие проекта в Ганте https://etalon.a2nta.ru/cmn.aspx?pageName=Projects.Project&uid=daba2cbb-a4a9-4708-9366-5dd3ead1f1722 минуты17780 задачИванова Мария (лиц.руководитель)Windows 8, IE 10, 2Гб оперативной памяти. Соединение по vpn из филиала к центральному серверу. В локальной сети на Chrome открывается за 10 секунд.3.09.2968.23496-3b0e72b
Создание задачи в Ганте https://etalon.a2nta.ru/cmn.aspx?pageName=Projects.Project&uid=daba2cbb-a4a9-4708-9366-5dd3ead1f1721 минутаWindows 8, IE 10, 2Гб оперативной памяти. Соединение по vpn из филиала к центральному серверу. С соседнего рабочего места из FireFox создается за 3 секунды

Замер длительности операций после обновления

Разработчики регулярно проводят оптимизацию системы, улучшая время отклика в наиболее часто используемых операциях.

Поэтому после того, как вы получили сообщение об обновлении, и в нём указано, что ранее «тормозившая» операция оптимизирована, проведите замеры. Без регистрации реестра «тормозящих» операций (пример в разделе 2) практически невозможно в дальнейшем объективно оценить изменения.

Обратите внимание!

Сделайте новые замеры производительности ДО обновления, чтобы сравнение с показателями производительности новой версии было объективным.
  1. Откройте имеющийся реестр проблемных операций и проведите замер скорости еще раз непосредственно перед обновлением.
  2. Обновите условия проведения замера в реестре.
  3. Установите обновление системы.
  4. Проведите замер скорости еще раз, при тех же условиях.
Также мы рекомендуем отключить таймер1) на время замеров производительности системы, чтобы избежать пиковой нагрузки в момент замера.
  1. Администрирование → Общие настройки → Общие настройки → Настройки таймера
  2. Снять все чек боксы на время замера.
  3. После окончания замера включить обратно.

Если произошло улучшение отклика системы до приемлемого, то закройте соответствующий вопрос в технической поддержке «Адванты».

Какие настройки влияют на время выполнения

Есть несколько известных настроек, которые могут приводить к ухудшению производительности, но улучшают взаимодействие системы с пользователем.

В зависимости от требований бизнес-пользователей и возможностей аппаратного обеспечения, выбирайте оптимальный вариант.

Ниже перечень настроек, которые влияют на производительность.

Наличие OLAP-показателей в отчетах типа «Проекты и работы»

При этом, если показатель не сложно считается и данные в отчет выводятся не большим количеством (несколько десятков записей), то изменения в скорости могут быть незаметными, на уровне погрешности замера. Если же данных много (сотни, или тысячи строк), показателей несколько и считаются они сложно, то падение скорости создания отчета будет заметно.

Пример отчёта с данными вычислений OLAP-кубов

Дочерние объекты в отчете типа «Проекты и работы»

В этом же отчете есть возможность выводить дочерние объекты, которые также могут замедлять скорость формирования самого отчета. Здесь также, все зависит от объема данных отчета и количества дочерних объектов.

Сложные Табличные отчеты

Табличные отчеты, которые содержат несколько отчетов источников могут формироваться заметно дольше.

Дело в том, что для формирования итогового листа такого отчета, сначала формируются все отчеты источники (при этом выбираются все данные, а не постранично, как если бы отчет источник просматривался из интерфейса системы самостоятельно), затем уже все выгруженные данные с помощью формул размещаются на промежуточных и итоговом листе. Т.е. время на формирование такого отчета складывается из времени формирования каждого отчета источника, и затем еще время на формирование расчетных листов табличного отчета.

Виждеты на карточке объекта

При размещении на карточке объекта большого количества виджетов, считающихся онлайн, также снижает время открытия карточки объекта.

Пример виджетов на карточке проекта

Загрузка большого объема данных через Excel

Если загружается большое количество строк Excel в систему, то время загрузки также может быть значительным.

Загрузка становится заметной при объёме больше тысячи (1000) строк, а в некоторых случаях и меньшего объема (зависит от разных условий).

Выполнение настроенных процедур автоматизации (скриптов)

Процедуры обработки, как правило выносятся по времени на периоды малой загрузки (ночь/вечер), но если это невозможно, то могут использоваться и в рабочее время.

Скрипты создают большой набор обращений к системе ⇒ могут увеличивать загрузку сервера системы в период своей работы ⇒ мешают быстрой работе других пользователей.

Интеграция с другими системами

Процедуры интеграции являются аналогом предыдущего пункта о скриптах, поскольку используют аналогичные алгоритмы доступа к данным системы.

Наличие ОЛАП кубов с онлайн-пересчётом

Если в кубах:

  • много строк данных (выбираются объекты или записи справочников, которых в системе сотни или тысячи)
  • множество показателей, связанных друг с другом,

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

В системах с большим количеством данных рекомендуется переводить все, без исключения, ОЛАП кубы на режим обновления «Один раз в сутки» или «По таймеру» (с интервалом срабатывания раз в несколько часов). Иначе есть значительная вероятность возникновения блокировок транзакций в базе данных, что приведет к возникновению проблем, описанных в предыдущем абзаце.

Типовые ошибки настроек

Как и в предыдущем пункте, есть и другие настройки, также влияющие на скорость выполнения (как правило такие настройки не требуются):

  • В медленном отчете указано отображение 10 000 строк на одну страницу (версия 3.09 и более ранние). Для открытия такого отчета необходимо не только выбрать данные, но и передать их на клиентское рабочее место, а также отобразить большую страницу в браузере, что часто само по себе не может быть быстрым. При этом надо помнить, что, как правило, все тысячи записей пользователю не нужны, его интересует небольшое подмножество данных, работа разом со всеми данными встречается очень редко. Убедитесь, что число записей на страницу действительно должно быть очень большим. Обычно разумный компромисс – выдача страницами по 100 строк.
    Отображать до 100 строк на странице
  • В форму запроса добавлены несколько сотен и больше строк, по каждой необходимо вводить какие-то данные. Основное назначение форм запроса – собрать оперативно данные от пользователей. Как правило новых данных не так много, редко встречается более 100 строк. Формы не предназначаются для редактирования тысяч строк данных, хотя и могут технически быть настроены таким образом. Убедитесь в реальной оправданности использования такого механизма, и по возможности добавьте фильтры для уменьшения числа строк.
  • В настройке формы указан пересчет сроков проекта. На больших проектах такая настройка увеличивает время сохранения данных формы, поскольку дополнительно выполняется и пересчет оперативного графика проекта заново, по всему проекту.
    Пересчёт сроков проекта в настройке формы

Способы для ускорения на уровне настроек

Известные способы ускорить работу системы:

  • Настроить оффлайн расчета виджетов. С версии 3.09, в разделе «Администрирование» → «Общие настройки возможно установить способ расчета виджетов оффлайн, с указанием периодичности расчета.
    Оффлайн расчёт виджетов


    Если установлен расчет по таймеру, то при открытии карточек объектов будут использоваться данные уже рассчитанные и сохраненные при последнем пересчете. Значение может немного запаздывать (на период пересчета), но часто такая оперативность и не требуется, тем более у каждого такого виджета есть кнопка пересчета если требуется получить актуальные данные.

    Пример отображения виджета
  • Настроить способ расчета ОЛАП кубов по таймеру, убрав онлайн пересчет. Особенно это важно для кубов, где есть десятки тысяч, и более строк данных, а также сложные показатели – формулы. В свойствах ОЛАП куба укажите период пересчета.
    Расчёт OLAP-кубов по таймеру
  • Настроить расписание обновления для сложных табличных отчетов. Если отчет формируется не под конкретного пользователя (не нужно учитывать его права) и занимает много времени при открытии, можно установить расписание его пересчета, тогда открываться будет уже рассчитанный отчет, и пользователи не будут ожидать при открытии окончания пересчета. Такой способ очень хорошо подходит для отображения Дашбордов.
    Расписание для сложных табличных расчётов
  • Если в отчетах типа Проекты и Работы, используются отклонения, или другие показатели, для расчета которых сделан ОЛАП куб, то с версии 3.14 есть возможность отказаться от такого рода использования ОЛАП показателей. Для этого необходимо в отчете Проекты и Работы, в настройках, указать какие параметры вам необходимы. При этом расчет указанных параметров будет выполняться значительно быстрее, чем через ОЛАП.
    Системные показатели в настройках отчёта - вместо вычисления OLAP-кубов

Улучшения по релизам

Релиз Задача Что сделано и ожидаемый эффект Полученный эффект
3.09Асинхронные события События теперь создаются не в момент совершения действия пользователем, а после, асинхронно в отдельном потоке. И не влияют на время ответа с сервера пользователю. Средний прирост в производительности по операциям составил до
0,45
Офлайновый режим обновления виджетов Создана возможность включения офлайнового режима обновления виджетов с пересчетом по таймеру или запросу пользователя. Это решает проблему, когда система «виснет» при одновременном открытии большого числа страниц с виджетами. Ускорилось в несколько раз
Ускорение разворачивания проекта из шаблона Сделана оптимизация создания прав новых объектов, что должно ускорить делегирование. Так же это должно ускорить другие операции при которых происходит создание прав.  Ускорение до 1,7 раз
Ускорение делегирования Ускорилось до 35 раз
Ускорение принятие полномочий задачУскорение до 8,5 раз
Ускорение открытия форм Сделано ускорение открытия форм Ускорение до 2х раз, на форме в 100 срок
Ускорение сохранения форм Сделано ускорение сохранения форм Ускорение до 12 раз, на форме в 100 срок
3.11Ускорение загрузки записей справочников  через MS Excel Сделано ускорение загрузки записей справочников через MS Excel Ускорение до 6 раз
Избавление от длинной транзакции при удалении проекта с большим числом задач Сделано уменьшение времени транзакции при удалении проектов, что позволит избежать ошибок взаимоблокировки и ускорит удаление проектов.  Ускорение до 10 раз на проекте из 4тыс задач
Избавление от длинной транзакции при импорте проектов Сделано разбиение импорта проектов из MS Project на маленькие транзакции, что должно ускорить импорт проектов и уменьшить количество блокировок в базе данных. Ускорение до 1,4 раза
Ускорение открытия дискуссии Сделано ускорение открытия дискуссии Ускорение до 2 раз
Ускорение сохранения ответа на дискуссию Сделано асинхронное сохранение ответа на дискуссию без перезагрузки страницы. Это должно ускорить сохранение ответа на дискуссию. Ускорение до 1,7 раза
Избавление от длинной транзакции при копировании проектов Сделано уменьшение времени транзакции, что должно ускорить копирование проектов и уменьшить количество блокировок в базе данных.  Данное изменение дает возможность выполнять трудоемкие процедуры в системе, при этом не блокируя работу других пользователей
Избавление от длинной транзакции при разворачивании проектов из шаблона
Ускорение сохранения участника проекта Сделано асинхронное сохранение участника проекта. Это должно ускорить сохранение участника проекта. Сократилось до 4 раз при одновременном добавлении в проект участниками 50 пользователей
Ускорение времени загрузки входящих сообщений Сделано отдельная загрузка счетчиков и входящих. И предварительная загрузка данных для входящих на клиенте, для открытия следующей страницы входящих без обращения к серверу. Это должно ускорить загрузку входящих.
3.14Система диагностики проблем производительности Разработана встроенная система логирования действий пользователей, которая позволит делать глубокий анализ для выявления проблем производительности. Сделана выгрузка логов системы через интерфейс.
Системные параметры в отчетах «Проекты и Работы»В настройки отчета добавлены параметры, которые ранее могли считаться только в ОЛАП кубахЕсть возможность не настраивать ОЛАП кубы только для получения показателей, плюс время выполнения отчетов уменьшается, на большом объеме данных до 5 раз. При замене в уже настроенных отчетах, используемые ОЛАП кубы можно перевести на расчет раз в сутки, или удалить, если их данные больше нигде не используются.
Улучшен отбор задач для отчетов В фильтр добавлена дата начала задач (объектов). В отчетах Проекты и работы можно реализовать логику, которую ранее приходилось делать только в табличных отчетах.Упрощены алгоритмы фильтрации и выбора данных. Ускорение выполнения табличных отчетов сильно зависит от объема данных в отчете.
Оптимизация диаграммы ГантаИзменена логика выбора и сохранения данных системы для построения Ганта.В некоторых случаях скорость сохранения может увеличиться в несколько раз.
Отчет «Проекты и работы», при использовании справочниковИзменен алгоритм выборки данных справочников, для отображения.Изменения будут заметны на большом объеме данных, скорость формирования отчета может вырасти до 20%
Заменен способ получения ОЛАП показателей для отчета «Проекты и работы» и для виджетов на карточке объектаОжидается улучшение параметра по использованию оперативной памяти при формировании отчетов «Проекты и Работы», использующих ОЛАП показатели.На некоторых отчетах объем потребляемой памяти в момент запуска может измениться до 2х раз

Кроме указанных, ведутся и другие работы, работа по улучшению производительности будет вестись постоянно.

Рекомендации на уровне «железа» и окружения

На стороне сервера также могут находиться потенциал роста скорости работы системы.

Вот несколько рекомендаций:

  • Для файла базы данных, можно добавить SSD диски, что заметно повысит ее производительность.
  • Исключить другое ПО на сервере IIS, использование параллельно дополнительного ПО уменьшает ресурсы сервера, иногда существенно.
  • Рекомендуется ставить IIS и СУБД MS SQL на один сервер:
    • RAM от 128 ГБ
    • включенная опция shared memory, чтобы разграничить потребление памяти между IIS и SQL

Анализ логов

С версии системы 3.10, добавлена новая функция для сбора логов операций, которая может быть запрошена разработчиком при необходимости. Управление логами выполняется из пункта «Система сбора информации об ошибках», в Общих настройках системы.

Интерфейс доступа к логам системы
1)
Механизм, по которому запускаются с заданной периодичностью фоновые процессы системы.