[ELMA3] Основные причины снижения быстродействия сервера ELMA и способы их предупреждения
В данной статье мы рассмотрим основные причины снижения быстродействия сервера ELMA, а также способы предупреждения и устранения возникающих проблем.
В числе основных причин низкого быстродействия назовем следующие:
1. Характеристики сервера не соответствуют техническим требованиям. Для типовых конфигураций системы ELMA существуют стандартные минимальные технические требования, предъявляемые, в первую очередь, к объему ОЗУ и количеству ядер процессора. Также значимыми являются настройки браузера клиентского компьютера (может сказываться, например, переполненный кэш и технические характеристики дисковой системы в части скорости чтения/записи (IOPS).
Системные требования к программному и аппаратному обеспечению являются рекомендательными и различны для трех редакций системы ELMA: Экспресс, Стандарт и Корпоративная. Со статьей по системным требованиям для каждой из редакций системы можно ознакомиться на нашем сайте: https://www.elma-bpm.ru/product/system_requirements.html.
Таким образом, всегда необходимо оценивать, является ли адекватным количество процессоров предполагаемому количеству пользователей системы.
2. Система ELMA и СУБД установлены на одном сервере. При условии соответствия конфигурации системы ELMA техническим характеристикам сервера не должно возникать проблем при обмене данными между системой ELMA и базой данных (справедливо в большинстве случаев для редакций ELMA Экспресс и Стандарт). Однако, при использовании системы ELMA Корпоративной редакции и недостаточной мощности сервера и его компонентов могут возникнуть трудности. Поэтому должен производиться постоянный мониторинг нагрузки на процессор и объемов свободной оперативной памяти (средствами Диспетчера задач, Монитора ресурсов, а также внешних систем мониторинга с историей показателей: Zabbix, HP Operations Manager, IBM Tivoli, MS SCOM). При высоких значениях нагрузки на сервер, сеть и дисковую систему целесообразно использовать кластер серверов.
3. Выполняется большое количество фоновых задач. Одновременное выполнение нескольких ресурсоёмких фоновых задач (загрузка данных сторонних ресурсов, синхронизация с другими программами, анализ показателей, функции вычисления) может в значительной степени влиять на быстродействие сервера ELMA. Для предотвращения подобных проблем целесообразно, во-первых, отслеживать загрузку с помощью планировщика задач (в веб-приложении ELMA в разделе Администрирование – Система – Планировщик) и наиболее эффективно распределять задачи по времени, по возможности снимать задачи с низким приоритетом. Во-вторых, следует осуществлять мониторинг фоновых процессов, не связанных напрямую с функционированием системы ELMA с помощью стандартных средств мониторинга (см. п.2).
4. Осуществляется переиндексация объектов полнотекстового поиска. Полнотекстовый поиск позволяет производить быстрый поиск по объектам системы ELMA. Функция полнотекстового поиска потребляет значительные ресурсы и поэтому может значительно снижать быстродействие системы. Также ресурсоёмким процессом является процесс построения индексов в базе данных. Поэтому рекомендуется запускать процесс переиндексации базы в периоды наименьших нагрузок на сервер (самый оптимальный вариант - в нерабочее время).
5. Пересчет кэша монитора процессов. Также при недостаточной производительности системы (например, при медленной загрузке страниц) может потребоваться очистка очереди частичных пересчетов и полное обновление кэша. Данная мера позволяет уменьшить количество частичных пересчетов, приводящих к высокой загрузке системы, и, тем самым, обеспечить увеличение мощности системы. Подробнее о действиях по пересчету кэша можно прочитать в справке по системе.
6. Конфигурация СУБД. При обращении к базе данных, в ходе которого с достаточно высокой скоростью производится обмен большим объемом информации, важную роль играет конфигурация СУБД. К конфигурации в данном случае можно отнести:
- настройки сети;
- способы резервного копирования;
- соответствие числу пользователей, одновременно обращающихся к базе;
- способ хранения данных (файловая/клиент-серверная);
- оптимизация методов индексирования БД (каким образом настроено индексирование, производится ли при поиске полное или частичное сканирование таблицы при запросе) и т.д.
7. Неоптимальная конфигурация, реализованная в системе ELMA. Если, например, сценарий предполагает запрос большого количества данных, то это создает высокую нагрузку на сервер базы данных. В этом случае потребуется увеличить производительность сервера базы данных.
8. Настройки SQL-сервера. Необходимо проводить мониторинг нагрузки SQL-сервера и его оптимизацию. Среда SQL Server Management Studio позволяет администрировать компоненты SQL-сервера, а инструмент "Монитор активности" помогает, в том числе, контролировать текущую нагрузку на сервер (какие задачи активны на данный момент, количество подключенных пользователей и т.п.).
9. Работа системы ELMA редакции Express с СУБД Firebird. Работа ELMA Express осуществляется с использованием многоядерного процессора на сервере (когда одно ядро занимает веб-сервер, а второе ядро – бесплатно распространяемая СУБД Firebird). При этом Firebird создает служебные записи, избыточный объем данных которых со временем значительно снижает быстродействие сервера. Для решения этой проблемы необходимо проводить регулярное удаление излишней информации. Подробнее о конфигурации системы ELMA Express с СУБД FB и плановом обслуживании СУБД можно прочитать в следующих статьях: https://www.elma-bpm.ru/kb/article-326.html и https://www.elma-bpm.ru/kb/article-208.html.
10. Одновременное выполнение нескольких транзакций. При одновременном обращении конфликтующих задач к базе данных СУБД должна блокировать доступ к данным для одного из обращений. Один из процессов должен быть отложен до тех пор, пока не будет завершен первый процесс и блокировка не будет снята. Например, если одновременно выполняется сценарий и к таблице обращается пользователь/пользователи, то выполняется ожидание, когда будет закрыта одна из задач.
Поэтому необходимо выбирать оптимальную стратегию блокировок (оптимально определить уровни блокировок: таблицы, страницы, записи).
11. Контентом загружаемой страницы может быть обусловлен тот факт, что время загрузки страницы значительно превышает ожидаемое. В этом случае целесообразно применять асинхронную загрузку портлетов (о настройке асинхронной загрузки можно прочитать в справке по системе), оптимизировать портлеты типа “Код” в части быстродействия, сократить количество отображаемых элементов в списке (например, в динамических таблицах), по возможности ограничить использование в системе излишне нагруженных портлетов.
12. Нередко снижение быстродействия может наблюдаться, когда отрабатываются методы FindAll() и подобного им типа. В этом случае рекомендуется разбивать большой сценарий на цикл более мелких операций (не более 20 за один цикл). То же самое касается сценариев, выполняемых по событиям (Listener), контролировать которые напрямую невозможно.
Среди других возможных причин снижения быстродействия сервера ELMA выделим также следующие:
13. Большие затраты по обработке веб-запросов, связанные с быстродействием сети, обеспечивающей связь между браузером и самим веб-сервером (для этого проводится анализ времени генерации страницы).
14. Долгая обработка непосредственно самим веб-сервером. Необходимо анализировать отчеты о производительности в разделе Администрирование системы ELMA.
15. Затраты на обмен информацией между веб-сервером и сервером базы данных и другие.
В случае, если вы отметили снижение быстродействия системы, мы рекомендуем в течение некоторого периода проанализировать, в какое время и при какой последовательности действий наблюдается медленная работа системы. Возможно, плохо загружается определенная страница или медленно работает конкретный запущенный процесс.
Следует отметить, что каждый случай снижения быстродействия сервера ELMA является частным, в значительной степени зависит от индивидуальных настроек и конфигурации сервера и требует обобщающего анализа многих параметров. Поэтому составление универсальных рекомендаций представляет собой трудновыполнимую задачу.
Если у вас возникла проблема, которую вы не смогли решить с использованием описанных выше методов, обратитесь, пожалуйста, в службу технической поддержки компании ELMA: support.elma-bpm.ru или сообщите на электронную почту support@elewise.com.