![]() |
![]() HP OpenVMS Systemsask the wizard |
![]() |
The Question is: We have a vms cluster with 3 members that access a shared indexed file via cobol application with 10 proccess simultaneosly. When a process tries to read/write to the file the action is very slow and i use anal/system utility with command: show proc/chann els, the channel asigned to the files appears "Busy". The fdl is: FILE ALLOCATION 100000 BEST_TRY_CONTIGUOUS yes BUCKET_SIZE 2 CLUSTER_SIZE 4 EXTENSION 10000 FILE_MONITORING no GLOBAL_BUFFER_COUNT 0 ORGANIZATION indexed PROTECTION (system:RWED, owner:RWED, group:RWED,world:RWED) RECORD BLOCK_SPAN yes CARRIAGE_CONTROL carriage_return FORMAT fixed SIZE 85 AREA 0 ALLOCATION 100000 BEST_TRY_CONTIGUOUS yes BUCKET_SIZE 2 EXTENSION 10000 KEY 0 CHANGES no DATA_KEY_COMPRESSION no DATA_RECORD_COMPRESSION yes DATA_AREA 0 DATA_FILL 100 DUPLICATES no INDEX_AREA 0 INDEX_COMPRESSION no INDEX_FILL 100 LEVEL1_INDEX_AREA 0 NAME "" NULL_KEY no PROLOG 3 SEG0_LENGTH 18 SEG0_POSITION 0 TYPE string My questios in how to improve the i/o performance and reduce the "Busy" state in a file. Take in mind that this file manage around 46 millions of records. Thanks. The Answer is : It would appear that this application is seriously overdue for a detailed examination and for tuning related to RMS and OpenVMS. Please consider engaging your prefered services organization or the customer support center for consulting, and please consider reading through the OpenVMS Guide to File Applications details on buckets and buffers. What has been shown is an FDL for an indexed file that was either recently created or recently. The specified FDL certainly appears inadequately structured for the proposed 46 millon records. Assuming a modest level of compression, the OpenVMS Wizard would expect this file will occupy roughly 6,500,000 blocks and will have an index root level of 4 or 5. This mean that each record lookup will that at least 5 IO operations, and quite probably more. You will want to use ANALYZE/RMS/FDL/STATISTICS on the target file -- or potentially even on a backup copy of the file if file contention is a factor -- and then use EDIT/FDL/NOINTERACT and finally -- when the file and application activity can be quiesced -- the DCL command CONVERT/FAST/NOSORT/STATISTICS to convert the data file using the optimized FDL. With a bucket size of 5 or more, you will reduce the index to level 3, which will reduce the I/O required to access a record. With a bucket size of 24 or more, you will reduce the index to 2 levels, which is likely provide the best performance in most cases. (The saient exceptions to this being a rare few high-update, low memory, slow-disk situations.) As you have several concurrent users of this file, you will also want to enable global buffers. Start with 100 or so buffers, and enable and use the MONITOR RMS file statistics to measure activities. If you wish to guess or gamble or blindly trust the OpenVMS Wizard, you perform a full BACKUP/VERIFY of your file and can then skip all of the intermediate steps listed above and use the FDL below: FILE FILE_MONITORING yes GLOBAL_BUFFER_COUNT 100 ORGANIZATION indexed PROTECTION (system:RWE, owner:RWE, group:RWE,world:RWE) RECORD FORMAT fixed SIZE 85 AREA 0 ALLOCATION 7000000 BEST_TRY_CONTIGUOUS yes BUCKET_SIZE 24 EXTENSION 60000 KEY 0 DATA_KEY_COMPRESSION yes DATA_RECORD_COMPRESSION yes DATA_AREA 0 DATA_FILL 90 DUPLICATES no INDEX_AREA 0 INDEX_COMPRESSION no INDEX_FILL 90 LEVEL1_INDEX_AREA 0 PROLOG 3 SEG0_LENGTH 18 SEG0_POSITION 0 TYPE string
|