The primary function of a CA Datacom/DB database system is to store large volumes of tables and rows while providing quick data access and update capabilities. The primary vehicle for this process is the CA Datacom MUF buffer pools. The various buffer pools in the MUF allow CA Datacom to maintain a quantity of user data and index rows in memory. These buffers hold multiple updates and provide data access for multiple MUF tasks at the same time.
Business Value
Specifying sufficient buffer pools allows CA Datacom to do memory processing which can greatly reduce physical I/O processing. Typically, physical I/O processing is considerably slower and requires more CPU usage than accessing data in memory. By specifying reasonable buffer pools, you can reduce I/O processing, improve both MUF responses, and reduce CPU consumption by the MUF. For each of the main buffer pool specifications, we provide recommendations in the following sections.
Additional Considerations
The CA Datacom/DB Database and System Administration Guide contains a chapter on optimizing CA Datacom/DB performance. This chapter discusses various techniques on how to monitor and tune the various CA Datacom buffer pools. Review this information and other resources (such as the CA Datacom webcasts) to understand how to monitor and tune buffer specifications.
Used to retrieve and hold CXX database definitions and other environmental information into MUF memory. CXX buffers are also used when database definitions need to be rewritten to the CXX from MUF memory. With the introductions of optimized databases and MUF run unit assignments, the amount of CXX I/O has greatly diminished. However, the CXX buffer pool is still needed.
CXX buffers are specified in the following MUF startup option:
SYSPOOL cxxno,ixxno,dxxno,ixxbfrsize
Begin with 20 for the cxxno value. Monitor the amount of CXX I/O using the Dynamic System Tables or the PXX Summary report. If the I/O seems to be a significant amount of the total MUF I/O, you can adjust the cxxno value upward.
Used to retrieve and hold Index Area (IXX) information into MUF memory. The IXX buffer pool is used to manage the high-level index information portion (IXX blocks) of the IXX data sets for all databases open in the MUF environment. IXX buffers are also used when index information needs to be rewritten to the IXX data set from MUF memory. Many factors affect the index buffers ability to keep data resident in memory. Typically the site needs enough IXX buffers to keep the active portions of the index in memory without over allocating memory for these buffers.
IXX buffers are specified in the following MUF startup option:
SYSPOOL cxxno,ixxno,dxxno,ixxbfrsize
Sites vary widely on the amount and size of the indexes in the environment. It is hard to select a value without doing an amount of performance monitoring and tuning. Begin with a value of 2000 for IXXNO. Monitor the amount of IXX I/O (using Dynamic System Tables or PXX Summary report). If the I/O seems to be a significant amount of the total MUF I/O, you can adjust the value upward as needed.
Used to retrieve and hold low-level index block (DXX) information into MUF memory. The DXX buffer pool is used to manage the low-level index information portion of the IXX data sets for all databases open in the MUF environment. DXX buffers are also used when index information needs to be rewritten to the IXX data set from MUF memory. Many factors affect the index buffers ability to keep data resident in memory. Typically, you need enough DXX buffers to keep the active portions of the index in memory without over allocating memory for these buffers.
DXX buffers are specified in the following MUF startup option:
SYSPOOL cxxno,ixxno,dxxno,ixxbfrsize
Sites vary widely on the amount and size of the indexes in the environment. It is hard to select a value without doing an amount of performance monitoring and tuning. Begin with 5000 for the dxxno value. Monitor the amount of IXX I/O using the Dynamic System Tables or the PXX Summary report. If the I/O seems to be a significant amount of the total MUF I/O, you can adjust the value upward as needed.
Determines the size of each IXX and DXX buffer. For most sites, the default size of 4096 should provide a reasonable value.
If you changed the default block size of one or more of your index areas to a size larger than 4096, change this parameter value to the size of the largest index block size in use.
Using a larger buffer size increases the amount of memory used by each IXX and DXX buffer. For certain sites with large indexes (that is, a large number of key values or large key values), increasing the index buffer size may help overall index performance.
IXX buffer size is specified in the following MUF startup option:
SYSPOOL cxxno,ixxno,dxxno,ixxbfrsize
Sites can vary on the size of the indexes in the environment. It is hard to select a value without doing an amount of performance monitoring and tuning. Begin with 4096 for the ixxbfrsize value. Monitor the amount of IXX I/O using the Dynamic System Tables or the PXX Summary report. If the I/O seems to be a significant amount of the total MUF I/O, you can adjust the value upward as needed.
Used to specify the data buffer pool. The data buffer pool is the primary pool used to retrieve and hold data row information into MUF memory. The DATANO buffer pool must be specified. If the DATANO buffer pool is the only pool that is used, it needs a buffer size that is as large as the largest data area block size. The DATANO buffers manage the data block information for all data areas that have a block size that is equal or smaller than the DATANO buffer size.
Many factors affect the data buffers ability to keep data resident in memory. Typically you need enough DATANO buffers to keep a significant amount of the active portions of the data rows in memory without over allocating memory for these buffers.
DATANO size and length and the number of DATANO buffers are specified in the following MUF startup option:
DATAPOOL dataln,datano,data2ln,data2no
Sites vary widely on the amount and size of the data blocks in the environment. It is hard to select a value without doing an amount of performance monitoring and tuning. Begin with 10000 for the datano value. Monitor the amount of data I/O using the Dynamic System Tables or the PXX Summary report. If the I/O seems to be a significant amount of the total MUF I/O, you can adjust the value upward as needed.
Used to specify the secondary data buffer pool. The DATA2 buffer pool is the secondary pool used to retrieve and hold data row information into MUF memory. The DATA2NO buffer pool is optional. DATA2NO buffers must be larger than the DATANO buffers. If a data block size is larger than the DATANO buffer size, it is handled using the DATA2NO buffer pool. If DATA2NO is specified, it needs a buffer size that is as large as the largest data area block size. Only specify the DATA2NO buffer pool if your site has varying data block sizes and having a second data buffer pool can be used to manage the larger data block sizes.
Many factors affect the data buffers ability to keep data resident in memory. You need enough DATA2NO buffers to keep a significant amount of the active portions of the data blocks that are larger than DATANO buffer size in memory without over allocating memory for these buffers.
DATA2NO size and length and the number of DATA2NO buffers are specified in the following MUF startup option:
DATAPOOL dataln,datano,data2ln,data2no
Sites vary widely on the amount and size of the data blocks in the environment. It is hard to select a value without doing an amount of performance monitoring and tuning. Sites need to review the existing data tables and what their block sizes are. Then establish a measurement I/O for each data block size. If there is reasonable need for two data buffer pools, you can specify the optional DATA2NO buffer pool.
An alternative implementation is to set the data block size for certain data sets to a large size so that they can be assigned to the DATA2NO buffer pool.
Note: The DBMSTLST module determines the size and number of index and data buffers used by the DBUTLTY program. Verify that any change to the index or data buffer sizes in the MUF is also reflected in the DBMSTLST. For more information, see the section on DBMSTLST in the DBUTLTY section of this guide.
|
Copyright © 2015 CA Technologies.
All rights reserved.
|
|