Рекомендации по быстрой настройке
Для повышения производительности приложения можно настроить ряд параметров, которые оказывают непосредственное влияние на его функционирование в рабочей среде. Правильная конфигурация этих параметров может существенно улучшить эксплуатационные характеристики приложения.
На представленном рисунке изображена схема конфигурации, при которой сервер и агенты приложений ABL не ограничивают количество подключений к базе данных, благодаря настройке экземпляра PAS for OpenEdge и приложений ABL.
Конфигурация включает в себя PAS for OpenEdge с следующими характеристиками:
- Возможность обработки до 200 одновременных клиентских запросов без сохранения состояния к одному приложению ABL.
- Наличие многосеансового агента горячего резерва, который повышает доступность приложений. Горячий резерв — это метод резервирования, обеспечивающий одновременную работу идентичной системы.
Данная конфигурация может быть адаптирована в соответствии с требованиями конкретной среды. Однако в представленном примере не рассматривается балансировка нагрузки между несколькими экземплярами или приложениями. В данном разделе основное внимание уделяется настройке одного экземпляра для достижения максимальной производительности.
Рекомендации по настройке на стороне сервера
Для оптимизации производительности приложений необходимо настроить параметры конфигурации сервера следующим образом:
- psc.as.executor.maxthreads=200: определяет максимальное количество клиентских запросов (потоков выполнения), которые сервер может обработать одновременно, прежде чем они будут поставлены в очередь ожидания. Максимальное значение применяется ко всем развёрнутым приложениям Java или ABL.
- psc.as.http.maxqueuesize=100 и psc.as.https.maxqueuesize=100: задают максимальное количество клиентских запросов, ожидающих обработки в очереди.
Эти параметры конфигурации могут быть изменены с помощью команды PASMAN config.
Общее количество памяти, необходимое для экземпляра PAS for OpenEdge, зависит от суммы значений параметров maxthreads и maxqueuesize, а также от размера данных клиентского запроса.
Параметр psc.as.executor.maxthreads ограничивает количество одновременных клиентских запросов, которые может обработать экземпляр PAS for OpenEdge. Значение этого параметра должно быть не меньше общего количества клиентских запросов, поступающих от всех развёрнутых приложений Java или ABL. Поскольку PAS for OpenEdge, работающий с встроенной версией Tomcat, не предоставляет возможности балансировки нагрузки между приложениями, недостаток потоков может привести к образованию очереди клиентских запросов и, как следствие, к остановке работы приложений. Количество запросов в очереди регулируется параметрами psc.as.http.maxqueuesize и psc.as.https.maxqueuesize.
Советы по настройке веб-приложений ABL
Для оптимизации производительности веб-приложений ABL рекомендуется настроить следующие параметры конфигурации:
- numInitialAgents=2: запускает два многосессионных агента ОС: один для обработки клиентских запросов, другой — в режиме горячего резерва.
- minAgents=2 и maxAgents=2: поддерживает постоянное наличие двух работающих многосессионных агентов. Если один агент останавливается, второй автоматически запускается.
- maxConnectionsPerAgent=200: устанавливает максимальное количество одновременных клиентских запросов, обрабатываемых сервером PAS for OpenEdge (значение должно быть равно psc.as.executor.maxthreads).
- maxABLSessionsPerAgent=200: задаёт максимальное количество сеансов ABL, обрабатываемых каждым многосессионным агентом (значение равно количеству сеансов maxConnectionsPerAgent в архитектурах приложений ABL без сохранения состояния).
Эти параметры конфигурации можно задать с помощью утилиты OEPROP, например:
oeprop.[sh|bat] AppServer.SessMgr.numInitialAgents=2 oeprop.[sh|bat] AppServer.SessMgr.minAgents=2 oeprop.[sh|bat] AppServer.SessMgr.maxAgents=2 oeprop.[sh|bat] AppServer.SessMgr.maxConnectionsPerAgent=200 oeprop.[sh|bat] AppServer.SessMgr.maxABLSessionsPerAgent=200
Данная конфигурация позволяет обрабатывать до 200 клиентских запросов одновременно, используя один процесс ОС агента. Второй агент находится в режиме ожидания и автоматически запускается при остановке первого агента. В случае завершения работы первого агента второй агент берёт на себя его функции без необходимости ручного вмешательства со стороны администратора.
В описанной конфигурации предполагается, что после проведения нагрузочного тестирования один процесс ОС агента способен обрабатывать до 200 клиентских запросов без превышения лимитов по ресурсам процессора, памяти или ввода-вывода.