Факторы, влияющие на производительность. Рекомендации по оптимизации


Содержание

Введение

Производительность Comindware Business Application Platform зависит от сложности настроенных приложений, объёма обрабатываемых данных и интеграций с внешними системами.

Приблизительно оценить снижение производительности в зависимости от наиболее важных факторов можно по следующей формуле

Снижение производительности = {кол-во правил для форм} × {сложность правил для форм} × {правила контекстных ролей} × {кол-во элементов на формах и вложенных форм} × {объем данных}

Ниже представлены типовые рекомендации по повышению производительности.

Примечание

Оптимизация времени отклика

  1. Вход в систему
    • Проверьте и сведите к минимуму сетевые задержки. Используйте инструменты мониторинга сети, например traceroute и ping.
    • Проверьте и повысьте скорость ответа сервера. Этого можно достичь путем оптимизации серверного оборудования, использования более производительных процессоров, увеличения пропускной способности сети и увеличения объема оперативной памяти.
  2. Открытие разделов навигации
    • Сократите количество пунктов и подразделов в разделах навигации.
    • Разделите большие разделы навигации на меньшие разделы и назначьте их тем ролям, которым они необходимы.
    • Назначьте ролям только разделы навигации, которые действительно необходимы пользователям этих ролей.
  3. Открытие таблицы
    • Сократите количество столбцов с вычисляемыми атрибутами.
    • Упростите выражения для вычисляемых атрибутов.
    • Упростите выражения для фильтра данных таблицы. Для повышения производительности можно переписать формулу в выражение на языке N3.
  4. Открытие формы
    • Сократите количество полей с вычисляемыми атрибутами.
    • Упростите выражения для вычисляемых атрибутов. Также можно переписать формулы в выражения на языке N3, который обеспечивает более высокую производительность.
    • Уменьшите сложность правил для формы.
      • Сократите количество правил.
      • Задайте условия выполнения правил, чтобы вложенные в них действия не выполнялись без необходимости.
      • Упростите выражения в правилах. Для повышения производительности можно переписать формулы в выражения на языке N3.
    • Проверьте и упростите иерархию вложенных форм.
  5. Сохранение формы
    • Уменьшите сложность правил для формы.
      • Сократите количество правил.
      • Задайте условия выполнения правил, чтобы вложенные в них действия не выполнялись без необходимости.
      • Упростите выражения в правилах.
    • Оптимизируйте сценарии, выполняющиеся при сохранении формы.
      • Упростите алгоритмы работы сценариев.
      • Сократите количество действий.
      • Сократите количество условий и вложенных циклов.
      • Упростите выражения в сценариях. Также можно переписать формулы в выражения на языке N3, который обеспечивает более высокую производительность.
      • Сократите количество выражений.
    • Сократите количество фиктивных и реальных изменений в данных формы.
    • Оптимизируйте скрипты, выполняющиеся при сохранении формы.
      • Упростите алгоритмы работы скриптов.
      • Проверьте и оптимизируйте взаимодействие с API, например используйте более эффективные методы.
  6. Контекстные правила ролей
    • Сравните производительность для аккаунта администратора и аккаунтами других пользователей для выявления проблем в конфигурации ролей.
    • Оптимизируйте фильтры аккаунтов и условия применения разрешений в конфигурациях ролей. Для повышения производительности можно переписать формулы в выражения на языке N3.

Оптимизация интеграций с внешними службами

  1. Прием сообщений
    • Оптимизируйте параметры подключений и путей передачи данных.
    • Оптимизируйте интервал опроса сервера входящих сообщений.
  2. Отправка сообщений
    • Оптимизируйте параметры подключений и путей передачи данных.
    • Оптимизируйте частоту отправки сообщений.
  3. Обработка сообщений сценарием
    • Упростите выражения в сценарии. Для повышения производительности можно переписать формулы в выражения на языке N3.
    • Сократите количество выражений.
    • Упростите алгоритм работы сценария.
    • Сократите количество действий.
    • Сократите количество условий и вложенных циклов.
  4. Обработка сообщений скриптом
    • Упростите алгоритмы работы скрипта.
    • Проверьте и оптимизируйте взаимодействие с API, например используйте более эффективные методы.
  5. Сохранение данных
    • Сократите количество фиктивных и реальных изменений в данных.
  6. Интеграция с сервером каталогов
    • Оптимизируйте подключения и запросы к серверу каталогов.
  7. Службы Kafka, Ignite и Elasticsearch
    • Оптимизируйте конфигурацию служб Apache Kafka, Apache Ignite и Elasticsearch:
      • выделение памяти;
      • размер кучи Java;
      • параметры кластера.
    • Проверьте и настройте конфигурации репликации и шардирования данных для Elasticsearch.
    • Настройте параметры устойчивости и производительности кластера Apache Ignite, такие как количество узлов и сетевые параметры.
    • Настройте параметры устойчивости и производительности кластера Apache Kafka, такие как период хранения сообщений и сегментация журналов.
    • Регулярно дефрагментируйте базу данных Apache Ignite для ускорения доступа и освобождения места.
  8. Антивирус
    • Проверьте, не снижается ли производительность из-за работы антивируса на сервере.
    • Рассмотрите возможность настройки исключений для служб Kafka, Ignite и Elasticsearch в антивирусном программном обеспечении.
  9. Ненужные внешние службы
    • Отключите ненужные внешние службы для повышения производительности.

Оптимизация выполнения процессов и токенов

  1. Рекурсия в настройках
    • Избегайте рекурсивных настроек в процессах.
  2. Обработка сообщений сценарием
    • Упростите выражения в сценарии.
    • Сократите количество выражений.
    • Сократите количество действий.
    • Сократите количество условий и вложенных циклов.
    • Упростите алгоритм работы сценария.
  3. Сохранение данных
    • Сократите количество фиктивных и реальных изменений в данных.
  4. Оптимизация алгоритмов
    • Декомпозируйте и оптимизируйте процессы.
      • Разделите сложные бизнес-процессы на более мелкие, управляемые части. Это поможет упростить управление процессами, быстрее вносить изменения и снизить вероятность ошибок.
      • Создайте подпроцессы для выполнения определенных задач или логических блоков. Вызывайте эти подпроцессы из основного процесса. Это поможет структурировать процессы, сделать их более понятными и упростит управление ими.
      • Используйте понятные и простые логические структуры, избегая избыточных условий и ветвлений.
      • Упростите логику алгоритмов, используемых в бизнес-процессах:
        • уменьшите количество операций;
        • оптимизируйте структуры данных.

Оптимизация публикации процессов и токенов

  1. Количество версий процессов
    • Сократите количество версий диаграмм процессов, оставив только необходимые.

Мониторинг и диагностика

  1. Мониторинг и трассировка
    • Используйте инструменты трассировки мониторинга работы Comindware Business Application Platform для выявления узких мест:
    • Используйте инструменты профилирования производительности вебсайта, например Webpagetest, профайлер JavaScript в Chrome;
    • Используйте инструменты мониторинга производительности сервера, например Zabbix, Prometheus, Grafana, VmStat (sysstat), top, htopperf и flamegraph.pl, .
    • Используйте инструменты мониторинга:
      • Elasticsearch — Kibana.
      • Apache Kafka — AKHQ, Kowl, Kafdrop, UI for Apache Kafka, Lenses, CMAK, Confluent CC, Conduktor.
      • Apache Ignite — JMX и MBeans, системные представления в SQL, Yardstick Framework.
    • В журналах обращайте внимание на разницу во времени между началом и завершением событий, потенциально вызывающих снижение производительности.
  2. Резервное копирование и индексация
    • Настройте регулярное резервное копирование.
    • Проверьте индексацию данных.
  3. Системные службы
    • Для отладки отключите системные службы, вызывающие подозрения.
    • В случае неудачной настройки:
      • остановите соответствующие системные службы;
      • удалите неудачно настроенные сущности или исправьте настройку;
      • снова включите системные службы.


Номер Статьи: 2613
Размещено: Fri, Jun 14, 2024
Последнее обновление: Fri, Oct 25, 2024

Online URL: https://kb.comindware.ru/article/faktory-vliyayushie-na-proizvoditelnost-rekomendacii-po-optimizacii-2613.html