| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия |
| product:settings:productivity [06.03.2024 09:24] – [Наличие ОЛАП кубов с онлайн-пересчётом] Сердцев Сергей | product:settings:productivity [03.09.2025 09:13] (текущий) – [Рекомендации при эксплуатации Системы] ekaterina.menkhuzina |
|---|
| |
| |
| ==== Качество связи между приложение и БД ==== | ==== Качество связи между приложением и БД ==== |
| |
| Требования к пропускной способности сетевого интерфейса указана [[product/settings/system/specifications#%D1%80%D0%B5%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D0%B4%D1%83%D0%B5%D0%BC%D1%8B%D0%B5_%D0%B0%D0%BF%D0%BF%D0%B0%D1%80%D0%B0%D1%82%D0%BD%D1%8B%D0%B5_%D1%82%D1%80%D0%B5%D0%B1%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_%D0%BA_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B0%D0%B|здесь]]. | Требования к пропускной способности сетевого интерфейса указаны [[product/settings/system/specifications#%D1%80%D0%B5%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D0%B4%D1%83%D0%B5%D0%BC%D1%8B%D0%B5_%D0%B0%D0%BF%D0%BF%D0%B0%D1%80%D0%B0%D1%82%D0%BD%D1%8B%D0%B5_%D1%82%D1%80%D0%B5%D0%B1%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_%D0%BA_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B0%D0%B|здесь]]. |
| |
| Рекомендуется проверить реальную пропускную способность через копирование файла объемом не менее 2 Гб, замерить среднюю скорость передачи. | Рекомендуется проверить реальную пропускную способность через копирование файла объемом не менее 2 Гб, замерить среднюю скорость передачи. |
| * множество показателей, связанных друг с другом, | * множество показателей, связанных друг с другом, |
| то, как правило, пересчет такого куба в режиме онлайн, когда пользователи постоянно вносят данные требующие пересчета этого куба, занимает существенное время (куб почти все время находится в состоянии пересчета) и дает заметную нагрузку на систему в целом, что может приводить к зависаниям страниц и функций системы. | то, как правило, пересчет такого куба в режиме онлайн, когда пользователи постоянно вносят данные требующие пересчета этого куба, занимает существенное время (куб почти все время находится в состоянии пересчета) и дает заметную нагрузку на систему в целом, что может приводить к зависаниям страниц и функций системы. |
| | \\ |
| | \\ |
| В системах с большим количеством данных рекомендуется переводить все, без исключения, ОЛАП кубы на режим обновления «Один раз в сутки» или «По таймеру» (с интервалом срабатывания раз в несколько часов). Иначе есть значительная вероятность возникновения блокировок транзакций в базе данных, что приведет к возникновению проблем, описанных в предыдущем абзаце. | В системах с большим количеством данных рекомендуется переводить все, без исключения, ОЛАП кубы на режим обновления «Один раз в сутки» или «По таймеру» (с интервалом срабатывания раз в несколько часов). Иначе есть значительная вероятность возникновения блокировок транзакций в базе данных, что приведет к возникновению проблем, описанных в предыдущем абзаце. |
| |
| * включенная опция ''shared memory'', чтобы разграничить потребление памяти между IIS и SQL | * включенная опция ''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-запрос|Подключить внедренцев по проекту для оптимизации| |
| | |:::|Долгая авторизация через [[product:settings:system:active_directory|Active Directory]] не под Администратором Системы|1. Проверить сетевую связанность между приложением и [[product:settings:system:active_directory|Active Directory]]. \\ 2. Проверить скорость взаимодействия между приложением и [[product:settings:system:active_directory|Active Directory]]. \\ 3. Проверить в ненагруженное время (например, ночью).|1. Проблемы в инфраструктуре. \\ 2. Проблема в производительности БД. \\ 3. Проблема в неправильно настроенном [[product:settings:system:active_directory|Active Directory]] и связи с ней из приложения.| |
| | |:::|Периодически быстродействие Системы (в нормальном - 3 секунды, в медленном 1.5 минуты)|Проверить графики в [[https://www.zabbix.com/ru|Zabbix]] по нагрузке на сервер приложения и БД|Запускаемые периодически триггеры| |
| | |Чрезмерное потребление оперативной памяти| |Диагностировать потребление можно через [[https://www.zabbix.com/ru|Zabbix]] и связать с запускаемыми процессами по таймеру или триггерами|Строятся крупные excel-отчёты, которые занимают большое количество оперативной памяти|Вынести сервис расчета excel-отчетов на отдельную машину [[product:settings:system:excel_table_report_win|для ОС Windows]]/[[product:settings:system:excel_table_report_linux|для ОС Linux]]| |
| | |Чрезмерное потребление CPU (повторяется в одно и то же время каждый день)| |1. Диагностировать потребление можно через [[https://www.zabbix.com/ru|Zabbix]] и связать с запускаемыми процессами по таймеру или триггерами. \\ 2. Долгие операции автоматизации (триггеров). Можно посмотреть на логи триггеров/Системы. \\ 3. Триггеры не завершают свою работу.|Неоптимально написанный триггер (например, большое количество записей обработки данных)|1. Подключить триггерописцев по проекту для оптимизации. \\ 2. Разбить большое количество записей на порции. \\ 3. Под каждую операцию добавить ''timeout'', чтобы приложение/база успевали обработать данные.| |
| | |Циклические триггеры| |Можно посмотреть на логи триггеров/Системы.|Неправильно настроенные триггеры могут создавать циклические зависимости, приводящие к бесконечным циклам обработки. \\ Пример ситуации: \\ 1. Триггер А запускается при создании задачи и изменяет статус проекта \\ 2. Триггер Б запускается при изменении статуса проекта и создает новую задачу. \\ При запуске эта цепочка приведет к бесконечному циклу: создание задачи - изменение статуса - создание задачи - изменение статуса и т.д.|Рекомендация: избегать создания цепочек триггеров, которые могут вызывать друг друга.| |
| ===== Анализ логов ===== | ===== Анализ логов ===== |
| |