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:

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