OpenEdge uses demand-paged executables. Demand-paged executables, also known as shared executables, reserve text or static portions of an executable that is placed in memory and shared by every user of that executable. For brokers and servers, the dynamic, or data portion, of the executable is stored in memory (or swap/paging files) for every user or instance of the executable. OpenEdge dynamic memory allocation is estimated based on the number of users and a some of the startup parameters for the brokers.
Estimate the amount of memory used by the database broker, at 110 percent to the database buffers parameter (-B). However, if you have a high value for lock table entries (-L) or index cursors (-c), you must increase the estimate. Record locks consume 64 bytes each, and index cursors consume 84 bytes each. Also, if you have a very low setting for database buffers (less than 2000), the overhead for the other parameters is greater than 10 percent of the -B value.
For example, if database buffers (-B) are set to 20,000 on an 8KB-block-size database, you allocate 160,000KB in database buffers. If you add 10 percent of this amount, your total allocation is approximately 176,000KB, or 176MB for the database broker.
Remote client servers are estimated to use approximately 3MB to 5MB. The number of remote client servers is limited by the -Mn parameter. The default number is 5.
Client processes will vary, depending on the startup options chosen. However, with average settings for –mmax and –Bt, the new memory allocated per process is 5MB to 10MB. This range applies to application server processes, too. Remote users usually use more memory (10MB to 20MB per process) because they require larger settings for –mmax and –Bt to provide acceptable performance across the network. The memory requirements for a remote user (that is, –mmax and –Bt settings) do not impact the memory requirements on the host.