7.3.1 Operands related to processes
- 1) pd_max_dic_process = maximum-number-of-activated-processes-per-dictionary-server
<unsigned integer>((1-2048))- Specifies the maximum number of processes that can be activated per dictionary server. When multiple front-end servers are used, processes that exceed the value specified in pd_max_users can sometimes become concentrated in a single dictionary server. Even when multiple front-end servers are not used, processes that exceed the value specified in pd_max_users can become concentrated in a single dictionary server if the number of executions of operation commands related to RDAREAs and global buffers (pdbufls, pddbls, pdopen, pdclose, pdhold, and pdrels) exceeds the value specified in pd_max_users.
- The pd_max_dic_process operand specifies the maximum number of processes that can be activated per dictionary server when that number exceeds the value of the pd_max_users operand.
- Specification guidelines
- The value determined by the following formula indicates the maximum number of processes that may become concentrated in a single dictionary server.
pd_max_users value
number of front-end servers
Specify a value for the pd_max_dic_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 may cause memory shortage.
- If the execution of operation commands related to RDAREAs or global buffers causes processes to become concentrated in the dictionary server, the number of operation commands to be concurrently executed is used as the maximum value.
- 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.
- Tuning the specified value
- For details about how to tune the maximum number of processes that can be activated, see the HiRDB Version 8 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 dictionary 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 dictionary 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
- See Specification guidelines for the pd_process_count operand of the server common definition.
- Tuning the specified value
- For details about how to tune the resident processes count, see the HiRDB Version 8 System Operation Guide.
- Notes
- Because the resident processes count has an effect on memory space availability, specifying an unnecessarily large number may prevent HiRDB from starting.
- 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 may not be possible to start all of the processes indicated by the maximum processes count.
- Operand rule
- See Operand rules for the pd_process_count operand of the server common definition.
- 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.
- Following are the differences in processing that result depending on whether or not a resident processes count at server startup is specified:
- 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. You should 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
- The specified value should be 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, you should 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 may 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 may not be possible to process some UAPs due to timeouts. For details about the PDCWAITTIME operand, see the HiRDB Version 8 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, 2 should be specified 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, this operand should be omitted.
- 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 (i.e., increasing the value of the pd_process_count operand) would be 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_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, this operand specifies the number of processes per server (back-end server or dictionary server). For details on the asynchronous READ facility, see the HiRDB Version 8 Installation and Design Guide.
- Condition
- A value of 1 or greater must be specified for the -m option of the pdbuffer operand.
- 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) 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 may lengthen 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 may have to wait for processing completion.
- Because a number of processes equaling value-of-this-operand
server-count are started, determine a value for this operand by taking resources (shared memory and message queue) into consideration. For the method of estimating shared memory and message queue sizes, see the HiRDB Version 8 Installation and Design Guide.
- Tuning the specified value
- For the method of tuning the specification value (the number of asynchronous READ processes), see the HiRDB Version 8 System Operation Guide.
- Relationship to other operands
- If you change the value of this operand, reevaluate the value of the pd_max_server_process operand.
- Operand rule
- If you specify 0 for this operand, the asynchronous READ facility is not used.
- 5) pd_dfw_awt_process = number-of-processes-to-be-written-in-parallel-in-deferred-write
<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 8 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 8 Installation and Design Guide.
- Note
- Specifying the facility for parallel writes in deferred write processing increases the number of processes, and consequently raises the CPU usage rate.