Факторы, влияющие на производительность. Рекомендации по оптимизации
Введение
Производительность Comindware Platform зависит от сложности настроенных приложений, объёма обрабатываемых данных и интеграций с внешними системами.
Приблизительно оценить снижение производительности в зависимости от наиболее важных факторов можно по следующей формуле
Снижение производительности = {кол-во правил для форм} × {сложность правил для форм}
× {правила контекстных ролей} × {кол-во элементов на формах и вложенных форм}
× {объем данных}
Ниже представлены типовые рекомендации по повышению производительности.
Примечание
- Представленные рекомендации являются общими и подходят не для всех случаев.
- Всегда тщательно анализируйте свои системы, сетевое окружение, программное и техническое обеспечение, бизнес-процессы, сценарии, скрипты и алгоритмы, чтобы определить, какие методы оптимизации будут наиболее эффективными в вашем конкретном случае.
- Эффективность предложенных мер зависит от конкретной конфигурации сервера и окружения, с которым он взаимодействует.
Оптимизация времени отклика
-
Вход в систему
- Проверьте и сведите к минимуму сетевые задержки. Используйте инструменты мониторинга сети, например
tracerouteиping. - Проверьте и повысьте скорость ответа сервера. Этого можно достичь путем оптимизации серверного оборудования, использования более производительных процессоров, увеличения пропускной способности сети и увеличения объема оперативной памяти.
- Проверьте и сведите к минимуму сетевые задержки. Используйте инструменты мониторинга сети, например
-
Открытие разделов навигации
- Сократите количество пунктов и подразделов в разделах навигации.
- Разделите большие разделы навигации на меньшие разделы и назначьте их тем ролям, которым они необходимы.
- Назначьте ролям только разделы навигации, которые действительно необходимы пользователям этих ролей.
-
Открытие таблицы
- Сократите количество столбцов с вычисляемыми атрибутами.
- Упростите выражения для вычисляемых атрибутов.
- Упростите выражения для фильтра данных таблицы. Для повышения производительности можно переписать формулу в выражение на языке N3.
-
Открытие формы
- Сократите количество полей с вычисляемыми атрибутами.
- Упростите выражения для вычисляемых атрибутов. Также можно переписать формулы в выражения на языке N3, который обеспечивает более высокую производительность.
- Уменьшите сложность правил для формы:
- сократите количество правил;
- задайте условия выполнения правил, чтобы вложенные в них действия не выполнялись без необходимости;
- упростите выражения в правилах;
- для повышения производительности можно переписать формулы в выражения на языке N3.
- Проверьте и упростите иерархию вложенных форм.
-
Сохранение формы
- Уменьшите сложность правил для формы:
- сократите количество правил;
- задайте условия выполнения правил, чтобы вложенные в них действия не выполнялись без необходимости;
- упростите выражения в правилах.
- Оптимизируйте сценарии, выполняющиеся при сохранении формы:
- упростите алгоритмы работы сценариев;
- сократите количество действий;
- сократите количество условий и вложенных циклов;
- упростите выражения в сценариях. Также можно переписать формулы в выражения на языке N3, который обеспечивает более высокую производительность;
- сократите количество выражений.
- Сократите количество фиктивных и реальных изменений в данных формы.
- Оптимизируйте скрипты, выполняющиеся при сохранении формы.
- упростите алгоритмы работы скриптов;
- проверьте и оптимизируйте взаимодействие с API, например используйте более эффективные методы.
- Уменьшите сложность правил для формы:
-
Контекстные правила ролей
- Сравните производительность для аккаунта администратора и аккаунтами других пользователей для выявления проблем в конфигурации ролей.
- Оптимизируйте фильтры аккаунтов и условия применения разрешений в конфигурациях ролей. Для повышения производительности можно переписать формулы в выражения на языке N3.
Оптимизация интеграций с внешними службами
-
Прием сообщений
- Оптимизируйте параметры подключений и путей передачи данных.
- Оптимизируйте интервал опроса сервера входящих сообщений.
-
Отправка сообщений
- Оптимизируйте параметры подключений и путей передачи данных.
- Оптимизируйте частоту отправки сообщений.
-
Обработка сообщений сценарием
- Упростите выражения в сценарии. Для повышения производительности можно переписать формулы в выражения на языке N3.
- Сократите количество выражений.
- Упростите алгоритм работы сценария.
- Сократите количество действий.
- Сократите количество условий и вложенных циклов.
-
Обработка сообщений скриптом
- Упростите алгоритмы работы скрипта.
- Проверьте и оптимизируйте взаимодействие с API, например используйте более эффективные методы.
-
Сохранение данных
- Сократите количество фиктивных и реальных изменений в данных.
-
Интеграция с сервером каталогов
- Оптимизируйте подключения и запросы к серверу каталогов.
-
Службы Apache Kafka, Apache Ignite и OpenSearch (Elasticsearch)
- Оптимизируйте конфигурацию служб Apache Kafka, Apache Ignite и OpenSearch (Elasticsearch):
- выделение памяти;
- размер кучи Java.
- Проверьте и настройте конфигурации репликации и шардирования данных для OpenSearch (Elasticsearch).
- Настройте параметры устойчивости и производительности Apache Ignite, такие как количество узлов и сетевые параметры.
- Настройте параметры устойчивости и производительности Apache Kafka, такие как период хранения сообщений и сегментация журналов.
- Регулярно дефрагментируйте базу данных Apache Ignite для ускорения доступа и освобождения места.
- Оптимизируйте конфигурацию служб Apache Kafka, Apache Ignite и OpenSearch (Elasticsearch):
-
Антивирус
- Проверьте, не снижается ли производительность из-за работы антивируса на сервере.
- Рассмотрите возможность настройки исключений для служб Apache Kafka, Apache Ignite и OpenSearch (Elasticsearch) в антивирусном программном обеспечении.
-
Ненужные внешние службы
- Отключите ненужные внешние службы для повышения производительности.
Оптимизация выполнения процессов и токенов
-
Рекурсия в настройках
-
Избегайте рекурсивных настроек в процессах. 2. Обработка сообщений сценарием
-
Упростите выражения в сценарии.
- Сократите количество выражений.
- Сократите количество действий.
- Сократите количество условий и вложенных циклов.
- Упростите алгоритм работы сценария.
-
-
Сохранение данных
- Сократите количество фиктивных и реальных изменений в данных.
-
Оптимизация алгоритмов
- Декомпозируйте и оптимизируйте процессы.
- Разделите сложные бизнес-процессы на более мелкие, управляемые части. Это поможет упростить управление процессами, быстрее вносить изменения и снизить вероятность ошибок.
- Создайте подпроцессы для выполнения определенных задач или логических блоков. Вызывайте эти подпроцессы из основного процесса. Это поможет структурировать процессы, сделать их более понятными и упростит управление ими.
- Используйте понятные и простые логические структуры, избегая избыточных условий и ветвлений.
- Упростите логику алгоритмов, используемых в бизнес-процессах:
- уменьшите количество операций;
- оптимизируйте структуры данных.
Оптимизация публикации процессов и токенов
-
Количество версий процессов
- Сократите количество версий диаграмм процессов, оставив только необходимые.
Мониторинг и диагностика
-
Мониторинг и трассировка
- Используйте инструменты трассировки мониторинга работы Comindware Platformдля выявления узких мест:
- страницу «Производительность»;
- страницу «Журналы событий»;
- страницу «Мониторинг»;
- файловые журналы;
- тайминги запросов браузера;
- Используйте инструменты профилирования производительности вебсайта, например Webpagetest, профайлер JavaScript в Chrome;
- Используйте инструменты мониторинга производительности сервера, например Zabbix, Prometheus, Grafana, VmStat (
sysstat),top,htop,perfиflamegraph.pl, . - Используйте инструменты мониторинга:
- OpenSearch (Elasticsearch) — Kibana.
- Apache Apache Kafka — AKHQ, Kowl, Kafdrop, UI for Apache Kafka, Lenses, CMAK, Confluent CC, Conduktor.
- Apache Ignite — JMX и MBeans, системные представления в SQL, Yardstick Framework.
- В журналах обращайте внимание на разницу во времени между началом и завершением событий, потенциально вызывающих снижение производительности.
-
Резервное копирование и индексация
- Настройте регулярное резервное копирование.
- Проверьте индексацию данных.
-
Системные службы
- Для отладки отключите системные службы, вызывающие подозрения.
- В случае неудачной настройки:
- остановите соответствующие системные службы;
- удалите неудачно настроенные сущности или исправьте настройку;
- снова включите системные службы.
Эта статья была полезна 1 чел.