# Compaq ACMS for OpenVMS
Managing Applications

Previous | Contents | Index

# Appendix A
Parameter and Quota Calculations

Parameter and quota values needed to run the ACMS software are set by default or by the use of the ACMSPARAM.COM and ACMEXCPAR.COM command procedures. In some instances, you may want to further tune your system by altering those calculations.

The formulas in this appendix show how these recommended minimum settings are derived, and how to alter these calculations to reflect your specific system. The values shown in this appendix are guidelines.

If you change the calculations for any parameter, edit the ACMVARINI.DAT file to change the appropriate variable value corresponding to that parameter. The command procedure uses the changed variable value to calculate not only the parameter that you wish to recalculate, but any related parameters or quotas. Note, however, that ACMSPARAM.COM raises but does not lower a process quota or SYSGEN parameter based on your recalculations. The command procedure will raise or lower any other parameters as indicated by your recalculations.

Note ACMSPARAM.COM and ACMEXCPAR.COM do not support logical name search lists for the TDB file specifications.

The parameter and quota calculations described in this appendix are:

- OpenVMS SYSGEN parameters affected by ACMS
- Quotas for OpenVMS user names of ACMS processes, specifically:
  - OpenVMS user name under which the ACMS Central Controller (ACC) runs
  - OpenVMS user name under which the Terminal Subsystem Controller (TSC) runs
  - OpenVMS user name under which the Command Process (CP) runs
  - OpenVMS user name under which the Application Execution Controller (EXC) runs
  - OpenVMS user name under which the Queued Task Initiator (QTI) runs
  - Quotas and privileges required for ACMS server processes
- Quotas required for users of ADU
- Quotas required for users of the task debugger
- The following ACMSGEN parameters:
  - MAX_LOGINS
  - MSS_MAXOBJ
  - MSS_MAXBUF
  - MSS_POOLSIZE
  - MSS_PROCESS_POOL
  - PERM_CPS
  - TWS_POOLSIZE
  - TWSC_POOLSIZE
  - WS_POOLSIZE
  - WSC_POOLSIZE

The following sections contain the formula calculations used by ACMSPARAM.COM.

The formulas for SYSGEN parameters and for quotas needed for OpenVMS user names, ADU, and the task debugger use the variables discussed in Chapter 10. Refer to Table 10_3 and Table 10-5 for descriptions of the variables. See Chapter 11 for descriptions of the ACMSGEN parameters whose formula calculations are listed here.

# A.1 Calculating OpenVMS SYSGEN Parameters Affected by ACMS

ACMSPARAM.COM calculates values for OpenVMS system parameters that are affected by ACMS. The following subsections show how ACMSPARAM.COM determines the values for those OpenVMS SYSGEN parameters. Any time you install additional images you must adjust the SYSGEN parameters. Refer to Table 10-3 for descriptions of the variables shown in these calculations.

## A.1.1 Calculating the Value of CHANNELCNT

    CHANNELCNT = (MAX
                    20 + ((2 * CONTROLLED_TERMINAL_CNT) +
                     ENTERED_TERMINAL_CNT),

                     20 + (2 * REMOTE_SUB_CNT) +
                     TDB_CNT + RLB_CNT,

                     23 + (5 * TERMINALS_PER_CP) +
                     FORM_TRACE_FILE_CNT +
                     + FORM_CNT + ESC_RTN_IMAGE_CNT +
                     REMOTE_RLB_CNT +
                     (2 * REMOTE_APPL_CNT)
                     )

        Include 20% for expansion, and then round to next 10:

        CHANNELCNT = (((CHANNELCNT + CHANNELCNT / 5) / 10) + 1) * 10

## A.1.2 Calculating the Value of GBLPAGES

    GBLPAGES = BASE +                                ! GBLPAGES value without ACMS
                   1506
                   MSS_POOLSIZE +
                   (DEBUGGER_CNT * (TWS_POOLSIZE+TWSC_POOLSIZE)) +
                   DEBUG_TDB_BLKS +
                   (TDB_CNT * (TWS_POOLSIZE+TWSC_POOLSIZE)) +
                   TDB_BLKS +
                   ADB_BLKS +
                   MDB_BLKS

        Include 20% for expansion, and then round to next 100 pages (VAX) or
        100 pagelets (Alpha):

        GBLPAGES = (((GBLPAGES + GBLPAGES/5) / 100 ) + 1) * 100

## A.1.3 Calculating the Value of GBLPAGFIL

    GBLPAGFIL = BASE +                               ! GBLPAGFIL value without ACMS
                    4 +
                    MSS_POOLSIZE +
                    (DEBUGGER_CNT * (TWS_POOLSIZE+TWSC_POOLSIZE)) +
                    (TDB_CNT * (TWS_POOLSIZE+TWSC_POOLSIZE) )
        Include 20% for expansion, and then round to next 100 pages (VAX) or
        100 pagelets (Alpha):

        GBLPAGFIL = (((GBLPAGFIL + GBLPAGFIL/5) / 100 ) + 1) * 100

On Alpha, the GBLPAGFILE must be converted from pagelets to physical pages as follows:

    GBLPAGFIL = (GBLPAGFIL + (PAGESIZE/512) - 1) / (PAGESIZE/512)

## A.1.4 Calculating the Value of GBLSECTIONS

    GBLSECTIONS = BASE +                            ! GBLSECTIONS value without ACMS
                      44 +
                      (DEBUGGER_CNT * 3) +
                      (TDB_CNT * 3) +
                      APPL_CNT + REMOTE_APPL_CNT +
                      MDB_CNT
        Include 20% for expansion, and then round to next 10 sections:

        GBLSECTIONS = (((GBLSECTIONS + GBLSECTIONS/5) / 10 ) + 1) * 10

## A.1.5 Calculating the Value of LOCKIDTBL

    LOCKIDTBL = BASE +                            ! LOCKIDTBL value without ACMS
                    100 +
                    (CP_PROC_CNT * 4) +
                    (RLB_CNT * 4) +
                    (DYN_SP_CNT * 4)  +
                    (QTI_QUEUES * 3)  +
                    (QTI_TASK_THDS * 15)
        Include 20% for expansion, and then round to next 10 table entries:

        LOCKIDTBL = (((LOCKIDTBL + LOCKIDTBL/5) / 10 ) + 1) * 10

    VIRTUALPAGECNT = (((PGFLQUOTA +               ! Use the highest PGFLQUOTA
                     PGFLQUOTA/5) / 10) +1) * 10  ! from among CP, ACC, TSC,
                                                  ! QTI, or EXC PGFLQUOTAs

## A.1.6 Task Debugger Parameters and Values

The following SYSGEN parameters should be set when you use the task debugger:

Parameter | Value
--- | ---
PQL_DASTLM | 20
PQL_DDIOLM | 20
PQL_DBIOLM | 12
PQL_DWSQUOTA | Greater than or equal to the block size of the largest .TDB file
PQL_DWSEXTENT | Greater than or equal to the block size of the largest .TDB file
PQL_MDIOLM | 20

# A.2 Calculating Quotas for OpenVMS User Names of ACMS Processes

The following sections show how quotas are set for the various user names under which ACMS components run. Compaq recommends you use the ACMSPARAM.COM procedure to set the quota values for the ACC, TSC, CP, and QTI. Use the formulas shown here for informational or fine-tuning purposes only.

The user name quotas for the ACC, TSC, CP, and QTI are defined from the values set by the ACMSPARAM.COM procedure. (The user names can also be derived from the values set by the ACMSGEN Utility.) The user names for the EXC and the server processes, discussed later in this chapter, are derived from the application definition using the ACMEXCPAR.COM procedure.

When updating the accounts for ACC, TSC, CP, EXC, and QTI, a quota is updated only if the calculated quota is larger than the current quota for the account. This is to prevent the possible introduction of quota problems should the account be used for purposes other than running ACMS. ACMSPARAM.COM and ACMEXCPAR.COM do not allow calculated quotas to be lower than Compaq suggested default values. The default values used are from OpenVMS VAX Version 6.0 and OpenVMS Alpha Version 1.5. For several quotas ACMSPARAM.COM and ACMEXCPAR.COM do not create values. Instead, ACMS takes the quota values from the DEFAULT account in AUTHORIZE. If you lower any DEFAULT account quotas, be aware that problems can occur while starting or running ACMS.

By assigning different user names to the ACC, TSC, CP, and QTI, you can individually set quotas to ensure the best allocation of resources. You can, however, run the ACC, TSC, CP, and QTI under one user name. If you do this, it is best to maximize the values for all ACC, TSC, CP, and QTI quotas. You normally run the EXC under a user name different from that of the ACC, TSC, CP, and QTI. Run the server processes under additional user names as required.

Note ACMSPARAM.COM and ACMEXCPAR.COM calculate quotas for the platform they are executing on. If you are using a common SYSUAF.DAT file for a mixed OpenVMS Cluster, then the quotas generated for Alpha will probably not be appropriate for VAX and the quotas generated on VAX will probably not be appropriate for Alpha. See A Comparison of System Management on OpenVMS AXP and OpenVMS VAX for more information.

## A.2.1 User Name Setup for the ACC

The OpenVMS user name under which the ACC runs requires the privilege SETPRV.

The values shown in Table A-1 determine the minimum quotas necessary for the OpenVMS user name under which the ACC runs. To set this user name, use the ACC_USERNAME parameter with the ACMSPARAM.COM procedure or the ACMSGEN Utility.

If large number of users are signed in by user-written agents or by the QTI, you may need to fine-tune the working set. See Section A.5.1 for details.

Table A-1 Minimum Quotas for the ACC User Name Process
| Minimum Value
--- | ---
Parameter | VAX | Alpha
ASTLM | 40 | 250
BIOLM | 40 | 150
BYTLM | 32768 | 64000
DIOLM | 40 | 150
ENQLM | 200 | 2000
FILLM | 100 | 100
PGFLQUOTA | 32768 | 50000
TQELM | 10 | 10
WSDEFAULT | 256 | 2000
WSEXTENT | 4096 | 16384
WSQUOTA | 1024 | 4000

WSEXTENT is usually higher than WSQUOTA to make the most of the OpenVMS dynamic working set size adjustment algorithms. To set reasonable figures, monitor the live system to determine the page fault rate of the ACC process.

Also, because the Audit Trail Logger process runs under the user name of the ACC, that user name must have write access to the audit trail log file.

If you have a large number of users signing in by user-written agents or the QTI, you may need to increase the working set quotas. See Section A.5.1.

### A.2.1.1 How ACMSPARAM.COM Calculates Values for the ACC

This section shows the formulas for how ACMSPARAM.COM calculates parameter values for the ACC. If the calculated values are below the minimum values shown in Table A-1, then ACMSPARAM.COM assigns the minimum values.

Refer to Table 10-3 for descriptions of the variables shown in these calculations.

ASTLM

    ASTLM = 28 +                        ! base
            (4 * remote_node_cnt) +     ! DECnet channel i/o
            remote_sub_cnt +            ! for remote authentication
            terminal_cnt +              ! for local authentication
            remote_appl_cnt +           !
            operator_cnt +              !
            agent_sub_cnt +             !
            qti_submitters              ! for ACMS operator commands

BIOLM

    BIOLM = 20 +                        ! base
            (4 * REMOTE_NODE_CNT)       ! MSS DECnet send/receive QIOs

BYTLM

    BYTLM = 20000 +                     ! base
            (4 * REMOTE_NODE_CNT)
            * MSS_MAXBUF                ! MSS DECnet i/o

ENQLM

    ENQLM = 100 +                       ! base
            agent_sub_cnt +             !
            remote_sub_cnt +            ! for remote authentication
            terminal_cnt +              ! for local authentication
            qti_submitters              !

FILLM

    FILLM = 20 +                        ! base
            MDB_CNT +                   ! MDBs
            APPL_CNT +                  ! local ADBs
            REMOTE_APPL_CNT +           ! remote ADBs
            (2 * REMOTE_NODE_CNT)       ! DECnet channels

PGFLQUOTA

    PGFLQUOTA = 4096 +                  ! base
                MSS_PROCESS_POOL +      ! MSS pool
                (MSS_MAXBUF + (154 *
                (APPL_CNT + REMOTE_APPL_CNT)) +
                 (((2 * REMOTE_NODE_CNT / 8) + 1) * 8 * MSS_MAXBUF) +
                512) / 512

## A.2.2 User Name Setup for the TSC

The OpenVMS user name under which the TSC runs, defined by the ACMSGEN parameter TSC_USERNAME, must have the privilege SETPRV.

The minimum quotas shown in Table A-2 are necessary for the OpenVMS user name under which the TSC runs.

Table A-2 Minimum Quotas for the TSC User Name Process
| Minimum Value
--- | ---
Parameter | VAX | Alpha
ASTLM | 40 | 250
BIOLM | 40 | 150
BYTLM | 32768 | 64000
DIOLM | 40 | 150
ENQLM | 200 | 2000
FILLM | 100 | 100
PGFLQUOTA | 32768 | 50000
TQELM | --- | ---
WSDEFAULT | 256 | 2000
WSEXTENT | 4096 | 16384
WSQUOTA | 1024 | 4000

WSEXTENT is usually higher than WSQUOTA to make the most of the OpenVMS dynamic working set size adjustment algorithms. To set reasonable figures, monitor the live system to determine the page fault rate of the TSC process.

### A.2.2.1 How ACMSPARAM.COM Calculates Values for the TSC

This section shows the formulas for how ACMSPARAM.COM calculates parameter values for the TSC. If the calculated values are below the minimum values shown in Table A-2, then ACMSPARAM.COM assigns the minimum values.

Refer to Table 10-3 for descriptions of the variables shown in these calculations.

ASTLM

    ASTLM = 24 +                        ! base
            (terminal_cnt * 2)

BIOLM

    BIOLM = 20 +  TERMINAL_CNT          ! base

BYTLM

    BYTLM = 4096 +                      ! base
            (1000 * TERMINAL_CNT)

FILLM

    FILLM = 20 +                        ! base
            TERMINAL_CNT                ! 1 channel for each terminal

PGFLQUOTA

    PGFLQUOTA = 2048 +                  ! base
                (100 * TERMINAL_CNT) +  ! for each TT overhead
                MSS_PROCESS_POOL        ! MSS pool

TQELM

    TQELM = CP_PROC_CNT +
           ENTERED_TERMINAL_CNT

## A.2.3 User Name Setup for the CP

The OpenVMS user name under which the CP runs must have the SETPRV privilege.

The OpenVMS user name under which the CP runs requires the minimum quotas shown in Table A-3. The CP user name is controlled by the ACMSGEN parameter CP_USERNAME. The number of terminals per CP is controlled by the ACMSGEN parameter TERMINALS_PER_CP.

Table A-3 Minimum Quotas for the CP User Name Process
| Minimum Value
--- | ---
Parameter | VAX | Alpha
ASTLM | 40 | 250
BIOLM | 40 | 150
BYTLM | 32768 | 64000
DIOLM | 40 | 150
ENQLM | 200 | 2000
FILLM | 100 | 100
PGFLQUOTA | 32768 | 50000
TQELM | --- | ---
WSDEFAULT | --- | ---
WSEXTENT | --- | ---
WSQUOTA | --- | ---

WSEXTENT is usually higher than WSQUOTA to make the most of the OpenVMS dynamic working set size adjustment algorithms. To set reasonable figures, monitor the live system to determine the page fault rate of the CP process.

Remember, you must authorize the user name of the CP as an agent in the User Definition Utility (UDU) authorization file ACMSUDF.DAT. (See Chapter 3 and Chapter 18 for information about agent authorizations using UDU.)

### A.2.3.1 How ACMSPARAM.COM Calculates Values for the CP

This section shows the formulas for how ACMSPARAM.COM calculates parameter values for the CP. If the calculated values are below the minimum values shown in Table A-3, then ACMSPARAM.COM assigns the minimum values.

Refer to Table 10-3 for descriptions of the variables shown in these calculations.

Working Set on VAX

    WSDEFAULT  = 512 + (10*TERMINALS_PER_CP)   ! Working set
    WSEXTENT = 4096 + (50*TERMINALS_PER_CP)    ! sizes for
    WSQUOTA = 1024 + (50*TERMINALS_PER_CP)     ! CP user name

Working Set on Alpha

    WSDEFAULT  =  2000 + (10*TERMINALS_PER_CP) ! Working set
    WSEXTENT =  16384 + (50*TERMINALS_PER_CP)  ! sizes for
    WSQUOTA =  4000 + (50*TERMINALS_PER_CP)    ! CP user name

ASTLM

    ASTLM = 17 +                               ! base
            (9 * TERMINALS_PER_CP) +           ! DECnet sends
            (2 * REMOTE_APPL_CNT)              ! for DECnet receives

BIOLM

    BIOLM = 28 +                               ! base
            (TERMINALS_PER_CP * 2) +           ! TDMS i/o or MSS DECnet link i/o
            (2 * REMOTE_APPL_CNT)              ! for MSS DECnet link receives

BYTLM

    BYTLM = 18000 +                            ! base
            (2000 * TERMINALS_PER_CP) +        ! TDMS i/o
            (((2 * REMOTE_APPL_CNT) +          ! MSS sends
            TERMINALS_PER_CP) * MSS_MAXBUF)

DIOLM

    DIOLM = 20 + (2 * TERMINALS_PER_CP)

ENQLM

    ENQLM = 52 + (4 * TERMINALS_PER_CP)

FILLM

    FILLM = 32 +                               ! base + 3 shareable DECforms images
            (3 * TERMINALS_PER_CP) +           ! cp opens 3 channels to each
            (2 * REMOTE_APPL_CNT) +            ! terminal. DECnet link channels
            REMOTE_RLB_CNT +                   ! for remote rlbs
            FORM_CNT + ESC_RTN_IMAGE_CNT       ! for DECforms form files

PGFLQUOTA

    PGFLQUOTA =
        16384 +                                ! Base
        MSS_PROCESS_POOL +                     ! MSS process pool
        ( 2 * MDB_BLK ) +                      ! Menu information
        FORM_BLKS +                            ! Form files
        REMOTE_RLB_BLKS +                      ! Remote TDMS .RLBs
        ( TERMINALS_PER_CP * 500 ) +           ! Per-user overhead
        TERMINALS_PER_CP *                     ! For each user:
         ( ( ( LARGEST_MESSAGE + 512 ) * 2 ) + ! Msg marshaling
             ( LARGEST_MESSAGE * FORM_CNT ) +  ! DECform's data
            LARGEST_MESSAGE ) / 512            ! TDMS data

Note The current formula for calculating the PGFLQUOTA value of the CP account is liberal. The formula assumes that each exchange step involves the sending or receiving of the largest message (see the description of the LARGEST_MESSAGE variable in Table 10-3). After executing ACMSPARAM.COM, review the value of CP_PGFLQUOTA. If this value appears to be excessively large, then replace the LARGEST_MESSAGE variable with the average size of workspaces used in exchange steps, or with the size of the workspace most often used in exchange steps. The formula for calculating the CP_PGFLQUOTA provides only a rough approximation of this quota. To fine-tune your system, calculate the quota for your particular system.

TQELM

    TQELM = 8 + TERMINALS_PER_CP

Previous | Next | Contents | Index