Goals and common steps for tuning PAS for OpenEdge instances
- Last Updated: January 29, 2025
- 3 minute read
- OpenEdge
- Version 12.2
- Documentation
The overall goal for tuning a PAS for OpenEdge instance is to support an ABL application that meets your requirements for concurrent client requests, response times, and resource consumption. Achieving this goal is an iterative process that begins when you develop the ABL application and set the initial defaults for the target deployment environment. You then perform more refined tuning of the OS, CPU, memory, and file system.
The tuning process typically consists of the following steps:
- Tuning the PAS for OpenEdge instance(s).
- Tuning the OpenEdge application and any third-party web applications.
- Tuning the OpenEdge multi-session agent (MS Agent).
The following is a general set of steps to get started with tuning the PAS for OpenEdge instance:
- Deploy the OpenEdge web applications that make up your ABL application to the PAS for OpenEdge instance, increasing the JVM metaspace memory as needed until all web applications start cleanly.
- Determine and set the maximum number of ABL sessions that a single MS Agent can support based on your ABL application memory allocation of variables, r-code, and buffer space.
- Calculate the maximum ABL session pool size where the maximum number of ABL
sessions across all MS Agents is based on the sum of:
- The estimated maximum number of concurrently bound client application connections.
- The estimated maximum number of concurrently executing inbound client requests.
- Set the maximum number of MS Agents as
(session-pool-size / maximum sessions per MS Agent) +1. The+1is for handling abnormal load spikes. Use theOEPROPutility to set theAppServer.SessMgr.maxAgentsproperty. - Set the maximum number of local socket connections (
maxConnectionsPerAgent) that a single MS Agent can have. The goal is to maximize the number of concurrently running client requests that one MS Agent can process. The hardware CPU resources and the level of IO switching of the individually executing ABL requests influence the value. This number needs to be less than or equal to the maximum number of ABL sessions for each agent. Use the OEPROP utility to set theAppServer.SessMgr.maxConnectionsPerAgentproperty. - Set the idle resource timeouts to lower the resource load on the server
without causing MS Agent or ABL session thrashing. These settings are directly
related to how long it takes an ABL session to be started in your ABL application.
Use the OEPROP utility to set the
AppServer.SessMgr.idleResourceTimeoutproperty. - Set the number of initial ABL sessions an MS Agent starts when it is created.
This number should be kept to a minimum because it affects how long it takes for the
PAS for OpenEdge instance to become available to handle client load. The goal is to
initialize enough ABL sessions to handle the initial client load, and then to
gradually scale up (trading off initial client response times) until the PAS for
OpenEdge instance full capacity. Use the OEPROP utility to set the
AppServer.Agent.numInitialSessionsproperty.
Keep in mind that the maximum capacity of a single PAS for OpenEdge instance is finite for any given combination of ABL application and OS hardware. When you reach a single PAS for OpenEdge instance limits within the current environment, and you have still not met the performance requirements, you need to either increase the OS hardware capacity or run additional PAS for OpenEdge instances and load balance the instances.
For information about how to scale PAS for OpenEdge instances, see Scaling considerations in PAS for OpenEdge.