8.2.1 Operands related to processes

1) pd_max_bes_process = maximum-number-of-activated-processes-per-back-end-server
~<unsigned integer>((1-2048))
Specifies the maximum number of processes that can be activated per back-end server. For multi front-end servers, processes that exceed the value specified in the pd_max_users can sometimes become concentrated in a single back-end server. The pd_max_bes_process operand specifies the maximum number of processes that can be activated per back-end server when that number exceeds the value of the pd_max_users operand.
Condition
This operand is applicable when multiple front-end servers are used.
Specification guidelines
  • The value determined by the following formula indicates the maximum number of processes that might possibly become concentrated in a single back-end server.
    pd_max_users value[Figure] number of front-end servers
    Specify a value for the pd_max_bes_process operand by using the value determined here as the upper limit and taking the degree of process concentration in a single back-end server into consideration. Specifying an unnecessarily large value might cause memory shortage.
  • If the value specified is smaller than the pd_max_users value, the pd_max_users value is assumed as the default, and a warning message (KFPS01888-W) is output.
  • When more processing requests have been issued than there are back-end server processes that can be started, time will be required to process connection requests from the front-end server to the back-end server.
  • If updatable online reorganization is used, specify an operand value that satisfies the condition below. Otherwise, HiRDB cannot be started.
    pd_max_bes_process value + pd_max_reflect_process_count value[Figure] 2,048
Operand default
When this operand is omitted, the specification of the same operand in the server common definition takes effect. When the same operand is also omitted in the server common definition, the pd_max_users value is assumed.
Tuning the specified value
For details about how to tune the maximum number of processes that can be activated, see the HiRDB Version 9 System Operation Guide.
2) pd_process_count = resident-processes-count[,resident-processes-count-at-server-startup]
~<unsigned integer>((0-2048))
resident-processes-count
Specifies the number of processes that can be made resident in the back-end server. A resident process is a process that is activated at the time the server is started.
Advantage
By activating the processes used by transactions that can be processed concurrently by the back-end server at the time of system startup and keeping them resident, the process startup time can be reduced even when new transactions are entered. However, HiRDB startup will take longer.
Specification guidelines
  • The value to be specified is determined on the basis of the process private area of the back-end server's server process and the real memory size of the processor. For details about the process private area of server processes, see the HiRDB Version 9 System Operation Guide.
  • If a multi front-end server configuration is used and if the pd_max_bes_process or pd_max_dic_process operand is specified in addition, specify for the pd_process_count operand a value that satisfies the following conditions:
    pd_process_count value[Figure] (pd_max_bes_process value or pd_max_dic_process value)
  • The value specified in this operand must be no more than the maximum number of processes that can be activated for the back-end server (pd_max_bes_process value# + pd_max_reflect_process_count value).
    #
    If the pd_max_dic_process or pd_max_bes_process operand is omitted, the default is the pd_max_users value.
Tuning the specified value
For details about how to tune the resident processes count, see the HiRDB Version 9 System Operation Guide.
Notes
  • Because the number of resident processes has a direct effect on the availability of memory space and on the CPU, specifying an unnecessarily large number might prevent HiRDB from starting or might degrade the server machine's processing performance.
  • If more processes than the resident process count are needed, additional processes are dynamically started, up to the maximum processes count allowed. However, depending on the value specified for the pd_max_server_process operand, it might not be possible to start all of the processes indicated by the maximum processes count.
Operand default
When this operand is omitted (or 0 is specified), the specification of the same operand in the server common definition takes effect. When the same operand is also omitted in the server common definition, the maximum number of processes that can be activated is assumed.
resident-processes-count-at-server-startup
Specifies the number of processes that can be made resident during HiRDB startup.
It is common for resident processes to be activated during HiRDB startup. If there are many resident processes, the amount of time required for HiRDB startup increases proportionately. For example, it takes approximately 1 second to activate a process on a server machine with a 100-MIPS performance rating.
The differences in processing that result depending on whether a resident processes count at server startup is specified are as follows:
  • When there is no specification of a resident processes count at server startup (when, for example, pd_process_count = 500 is specified)
    All 500 resident processes are activated during HiRDB startup, and HiRDB will not start until they are all activated. In this example, it would take a 100-MIPS server machine about 500 seconds to activate all the resident processes during HiRDB startup.
  • When a resident processes count at server startup is specified (when, for example, pd_process_count = 500, 50 is specified)
    Some of the resident processes (50 in this case) are activated during HiRDB startup, and the remaining resident processes are activated after HiRDB startup. HiRDB can be started as long as the specified number of resident processes is activated. In this example, it would take a 100-MIPS server machine about 50 seconds to activate 50 resident processes during HiRDB startup. The remaining 450 resident processes (in this example) would be activated after HiRDB startup.
Advantage
The amount of time required for HiRDB startup is reduced. Use this option when you want to reduce the HiRDB startup time as much as possible, such as when you are using the system switchover facility.
Specification guideline
Specify a value equal to the number of processes that will be required immediately after HiRDB startup is completed.
Notes
When you specify a resident processes count at server startup, recheck the value in the PDCWAITTIME operand of the client environment definition.
If more UAPs than the resident processes count at server startup are to be executed immediately following HiRDB startup, transaction processing might not be performed until after the remaining resident processes have been activated. Therefore, if the value specified in the PDCWAITTIME operand of the client environment definition is small, it might not be possible to process some UAPs due to timeouts. For details about the PDCWAITTIME operand, see the HiRDB Version 9 UAP Development Guide.
3) pd_server_cleanup_interval = interval-for-stopping-nonresident-server-processes
~<unsigned integer> ((0-1440)) (minutes)
Specifies in minutes the interval for checking for nonresident server processes in HiRDB that are to be stopped. The facility for stopping nonresident server processes is applied when the number of executing server processes exceeds the number of processes that can be made resident (value specified by the pd_process_count operand). The number of server processes that the facility stops is computed automatically by HiRDB.
Advantage
This facility improves the utilization rates of the memory and of process resources because it increases the number of nonresident processes that can be reused when the workload (number of server processes that are executing) peaks.
Specification guidelines
  • For example, if there is only one hour a day during which peak workload occurs and the intervals between peaks within that hour are approximately two minutes apart, specify 2 for this operand.
  • This facility does not have any effect if the number of server processes that execute concurrently during peak periods is always fewer than the number of resident processes. In this case, omit this operand.
Operand default
When this operand is omitted, the specification of the same operand in the server common definition is assumed. When the same operand is also omitted in the server common definition, the default is 0.
Tuning the specified value
Collect statistical information on system operations for each server for one week. Determine the workload peaks from the number of server processes being serviced (# OF PROCESSES ON SERVICE). If that peak value exceeds the currently set number of processes that can be made resident (value specified by the pd_process_count operand), determine the interval between individual peaks and set that number of minutes.
However, if there are ample resources, such as memory and CPU, in the server machine, adding the shortfall in the number of processes to the number of resident processes (in other words, increasing the value of the pd_process_count operand) is more effective in improving performance than specifying the pd_server_cleanup_interval operand.
Note
When this operand is omitted or 0 is specified, the system checks every 10 seconds for nonresident server processes that are waiting to be serviced and stops any such processes that are found.
4) pd_svr_castoff_size = maximum-memory-size-used-by-server-process
~<unsigned integer>((0-2048)) (megabytes)
This operand need not be specified for the Linux edition.
Specifies the maximum size of memory used by each server process processed by a back-end server. If at the applicable trigger point shown below the amount of memory being used by a server process exceeds the value specified here, that server process is terminated. When a server process is so terminated, the KFPS00350-w message is output. This is called the facility for monitoring the memory size of server processes; for details, see the HiRDB Version 9 System Operation Guide.
Server typeProcess nameProcess termination trigger
Back-end serverpdbes
  • At transaction completion
  • At utility termination
Advantages
The facility for monitoring the memory size of server processes resolves the following problem:
  • The memory size of a server-resident process becomes too large during a particular SQL processing, significantly reducing the amount of system memory that is available.
  • When a utility is running, specifying large values for the sizes of local and work buffers used for sorting will increase the amount of memory used by server resident processes and decrease available system memory.
The HiRDB server releases memory space that is no longer needed. However, even when a program releases memory, the OS holds the memory area itself in the memory management facility inside the applicable process. Consequently, a process that becomes large in terms of using a large memory area even once never shrinks and continues to have an adverse impact on the system, especially for resident processes. The facility for monitoring the memory size of server processes can prevent memory shortages because it terminates even resident processes.
Application criterion
Apply this facility when the amount of memory space used by a HiRDB server process becomes large, resulting in memory shortages.
Specification guidelines
  • Maximum value for this operand
    Normally, specify a value by considering the maximum processing capability of HiRDB. Assuming the maximum number of SQL statements that can execute concurrently, which is dependent on the maximum number of concurrent connections, determine for this operand a value that satisfies the following condition in each unit:
    a[Figure] (b + c) < d
    a: Number of server processes in the unit (maximum number of concurrent connections[Figure] number of servers in the unit)
    b: Virtual memory size for one server process immediately following HiRDB startup
    c: pd_svr_castoff_size operand value
    d: Memory size that can be allocated to a unit (memory size excluding the area used by other programs)
  • Minimum value for this operand
    If the value specified for this operand is smaller than the memory size needed for normal SQL processing, the efficiency of making processes resident will deteriorate, resulting in frequent process terminations and restarts. Each time this occurs, a message is output to the syslogfile or the message log file, resulting in further performance degradation. To prevent this, select for this operand a value that satisfies the following condition for each server:
    a - b < c
    a: Server process virtual memory size following SQL process termination or utility shutdown
    b: Virtual memory size for server process immediately following HiRDB startup
    c: Value of pd_svr_castoff_size operand
The virtual memory size can be determined by an OS command (for example, the top command in HP-UX).
Operand default
When this operand is omitted, the specification of the same operand in the server common definition is assumed. When the same operand is also omitted in the server common definition, the default is 0.
Operand rule
When 0 is specified for this operand, the facility for monitoring the memory size of server processes is not applied.
5) pd_max_open_fds = maximum-number-of-files-and-pipes-accessed-by-process
~<unsigned integer>((1-8192))<<320>>
Specifies the maximum number of files and pipes accessed by HiRDB processes.
Specification guidelines
  • When a + b < 100, omit this operand.
  • When a + b[Figure] 100, specify a + b + 320 in this operand.
a: Maximum number of plug-in index storage RDAREAs updated in a single transaction
b: (Maximum number of files to be used when executing HiRDB Text Search Plug-in search functions#) [Figure] (maximum number of functions provided by the HiRDB Text Search Plug-in to be executed in a single SQL statement)
#: The search functions use a maximum of 10 files.
For details about the search functions of the HiRDB Text Search Plug-in, see the manual HiRDB Text Search Plug-in Version 9.
Notes
  • Specifying a small value might result in an SQL error.
  • The maximum value of this operand differs depending on the OS type as follows:
    [Figure]HP-UX: 8192
    [Figure] Solaris: 2048
    [Figure] 64-bit mode Solaris: 8192
    [Figure] AIX: 8192
    [Figure] Linux: 8192
  • This operand's value is not applicable when the following operations are performed:
    [Figure]The database creation utility, database reorganization utility, or rebalancing utility is used to create an index information file.
    [Figure]The database creation utility is used to create a divided-input data file.
    In these cases, the following value is used:
    MIN(A, B)
    A: Maximum value of the pd_max_open_fds operand for the OS being used, as explained above.
    B: Physical upper limit for the number of files that can be opened or locked by a single process according to the OS's operating system parameter shown below:
    [Figure]For HP-UX: Value of maxfiles_lim
    [Figure] For Solaris: Value of rlim_fd_max
    [Figure] For AIX: Value of nofiles_hard
    [Figure] For Linux: Value of hard nofile
  • If a single process uses a large number of files or pipes, the number that can be used might be fewer than the value specified in this operand. For details about the corrective action to take, see Considerations when building systems with many units or servers in the HiRDB Version 9 Installation and Design Guide, or reduce the following values so as to reduce the number of files and pipes that the process will use:
    [Figure]Maximum number of plug-in index storage RDAREAs updated in a single transaction
    [Figure]Maximum number of files to be used at a single HiRDB Text Search Plug-in trigger
    [Figure]Maximum number of functions provided by the HiRDB Text Search Plug-in to be executed in a single SQL statement
6) pd_max_ard_process = asynchronous-READ-process-count
~<unsigned integer>((0-256))
Specify this operand if you use the asynchronous READ facility. For this operand, specify the number of processes necessary for asynchronous READ operations. For a HiRDB parallel server configuration, the value specified here indicates the number of processes per server (back-end server or dictionary server). For details about the asynchronous READ facility, see the HiRDB Version 9 Installation and Design Guide.
Condition
A value of 1 or greater must be specified for the -m option of the pdbuffer operand.
Advantage
The asynchronous READ facility is especially effective (improves performance) when character special files, for which input and output take a long time, are used. Conversely, when regular files or Hitachi disk array system disks are used, for which input and output do not take a long time, the asynchronous READ facility might not have much effect for the following reasons:
  • Input/out time does not overlap with CPU time most of the time.
  • Communication processing has a large overhead.
Specification guidelines
  • Specify 0 or 1. However, if a value between 2 and 256 is specified for the -m option of the pdbuffer operand, specify the same value as the -m option value. If a value greater than 256 is specified for the -m option, specify the same value as the number of disk devices that store RDAREAs and system files (the number of such disk devices per server for a HiRDB parallel server configuration) or 256.
  • Increasing the value of this operand can shorten the processing time when the degree of concurrency is high for the SQL statements to which the asynchronous READ facility is applied. Decreasing the value of this operand might increase the processing time when the degree of concurrency is high for the SQL statements to which the asynchronous READ facility is applied. This is because asynchronous READ processes might have to wait for processing completion.
  • Because a number of processes equaling value of this operand[Figure] server count are started, determine a value for this operand by taking resources (shared memory and message queue) into consideration. For details about estimating shared memory and message queue sizes, see the HiRDB Version 9 Installation and Design Guide.
Tuning the specified value
For details about how to tune the specification value (the number of asynchronous READ processes), see the HiRDB Version 9 System Operation Guide.
Operand default
When this operand is omitted, the specification of the same operand in the server common definition is assumed. When the same operand is also omitted in the server common definition, the default is 0.
Operand rule
If you specify 0 for this operand, the asynchronous READ facility is not used.
Relationship to other operands
If you change the value of this operand, re-evaluate the value of the pd_max_server_process operand.
Effects on individual estimation formulas
If the value of the pd_max_ard_process operand is changed, the following estimation formulas are affected:
HiRDB Version 9 Installation and Design Guide:
  • Processes started by a HiRDB parallel server configuration
  • Formula for size of shared memory used by global buffers under Estimating the memory size required for a HiRDB parallel server configuration
  • Calculation of required memory under Estimating the memory size required for a HiRDB parallel server configuration
  • Estimating HP-UX OS parameter values
  • Formula 2 under Formulas for the size of the shared memory used by a back-end server
  • HiRDB parallel server configuration under Determining Environment Variables Related to the Number of Resources
7) pd_dfw_awt_process = number-of-parallel-write-processes-for-deferred-write-processing
~<unsigned integer>((2-255))
Specify this operand when you use the facility for parallel writes in deferred write processing for all buffer pools. Specify for this operand the number of processes to be processed in parallel. Increasing the number of processes can shorten the write processing time. For details about the facility for parallel writes in deferred write processing, see the HiRDB Version 9 Installation and Design Guide.
Specification guidelines
Specify 2, which is the smallest value that enables the facility for parallel writes in deferred write processing. Furthermore, to determine the value for this operand, see Tuning deferred write processing in the HiRDB Version 9 System Operation Guide.
Note
Specifying the facility for parallel writes in deferred write processing increases the number of processes, and consequently raises the CPU usage rate.
Effects on individual estimation formulas
If the value of the pd_dfw_awt_process operand is changed, the following estimation formulas are affected:
HiRDB Version 9 Installation and Design Guide:
  • Processes started by a HiRDB parallel server configuration
  • Calculation of required memory under Estimating the memory size required for a HiRDB parallel server configuration
  • Formula 5 under Formulas for the size of the shared memory used by a back-end server
  • HiRDB parallel server configuration under Determining Environment Variables Related to the Number of Resources