Progress
Installation and Configuration Guide
Version 9
for UNIX


Calculating Memory Needs

The tables in this section are provided to help you calculate the memory requirements for your system. Table 6–1 lists the components you use to calculate system memory requirements. Table 6–2 lists the startup options that affect memory requirements.

Table 6–3 and Table 6–4 list approximate values for each calculation component for single and multiple users running Progress. Use the formulas provided in Table 6–5 to calculate the memory requirements for your system without disk swapping.

NOTE: All memory usage figures are approximate and vary depending on the version of the operating system, UNIX parameters, the Progress startup parameters, and the Progress application you are using. For more information, see the Progress Startup Command and Parameter Reference .

The background processes APW, BIW, AIW, and PROWDOG also take up memory. Remember to calculate these in your memory requirements.

Table 6–1: Components Used To Calculate Memory Needs
Component
Symbol
Comment
Operating System
os*
Represents the memory requirements for one copy of your operating system shared in memory by all users, plus a certain percentage of physical memory to allow for operating system buffers; typically, the percentage is 10%-15%.
Progress
_progres*
Represents the size of one copy of Progress shared in memory by all users running single-user or multi-user Progress. Allow for 15%-20% deviation in the _progres value to accommodate new releases.
Database server
or broker
_mprosrv*
Represents the size of one copy of the Progress database broker/server shared in memory by all users running multi-user Progress. Use this component only when calculating memory requirements for a system running a multi-user version of a Progress product.
Progress
user data
proud
Represents the data area required for each user running Progress. This value varies greatly, depending on the application you run and whether you use the Progress Compiler. It is also affected by many of the startup parameters. For single-user clients, the parameters are: Blocks in Database Buffers (-B), Directory Size (-D), and Stack Size (-s). For multi-user clients, the parameters are: -D, Maximum Memory (-mmax), and -s.1,2
Progress
server data
psd
Represents the data area required for each database server serving remote clients. (Not used for single-user or multi-user clients if the users are self-service). This space is used for communication buffers and other server memory requirements.
Progress
broker data
pbd
Represents the data area required by each database broker. (One database broker is required for each different database simultaneously in use in multi-user mode whether you are using remote client/servers, self-service, or both.) This value is determined by the values of startup parameters that consume memory, including: Database Buffers (-B), Lock-table Entries (-L), and Number of Users (-n).2
NOTE: Each increment of -n increases pbd by 2K.
  1. Use the UNIX size command to determine the exact size. See Table 6–2 to determine the
    approximate value.
  2. See the Progress Startup Command and Parameter Reference for information about Progress startup parameters.

Table 6–2: Size Increments For Increasing Startup Parameters By 1
Startup
Size Increment
Affects
Blocks in Database Buffers (-B)
db block size (.5K, 1K, 2K, 4K, 8K)
multi-user: pbd;
single-user: proud
Directory Size (-D)
100 bytes
proud
Lock-table Entries (-L)
16 bytes
pbd
Shared-memory Size (-Mxs)
1K
pbd
Number of Users (-n)
2K
pbd
Stack Size (-s)
1K
proud

Table 6–3: Single-user Memory Requirements 
Component Symbol
Memory
_progres 
3.5MB-4MB1
proud 
1MB-2MB2
Kernel 
3MB-5MB3
  1. This is an approximate value. Use the size command to determine the exact size. If you are using a non-Progress database, your value will be larger.
  2. The actual value depends on your application and how you set the startup parameters listed in Table 6–2.
  3. Use the UNIX size Command to determine the exact size of your kernel. Add to that 10% of physical memory on the machine, as an allowance for operating system buffers, to get the total operating system requirements.

Table 6–4: Multi-user Memory Requirements
Component Symbol
Memory
_progres 
3.5MB-4MB1
_mprosrv 
.5MB-.55MB1
proud 
1MB-3MB2
Kernel 
.3MB-.5MB3
psd 
.5MB-.55MB1
pbd 
psd + -B, etc.2
  1. This is an approximate value. Use the size command to determine the exact size. If you are using a non-Progress database, your value will be larger.
  2. The actual value depends on your application and how you set the startup parameters listed in Table 6–2.
  3. Use the UNIX size command to determine the exact size of your kernel. Add to that 10% of physical memory on the machine, as an allowance for operating system buffers, to get the total operating system requirements.

Table 6–5: Formulas For Calculating Memory Requirements 
Single-user Systems
Multi-user Systems
os + _progres +
(number of users x proud)
os + _progres + _mprosrv
+ (number of databases x pbd)
+ (number of remote client servers x psd)
+ (number of users x proud)

NOTE: Remote client/server processes share the same code as the broker and, therefore, require no additional _mprosrv (database server or broker) memory. Each remote client/server process does require a Progress server data (psd) area.


Copyright © 2004 Progress Software Corporation
www.progress.com
Voice: (781) 280-4000
Fax: (781) 280-4095