The Question is:
Given that we have an application (a general enquiry program) that opens around
30 indexed files, and is run by around 300 users at any one time; what would
you suggest setting the Global Buffer setting to?
Is there a formula I could use.
Apart from system memroy usage, are there any real downsides to using Global
We currently do not use Global Buffers at all, and I suspect this is an ideal
way to improve system performance, given that we are under-utilising the
physical memory in our Alpha.
Many thanks, Robert.
The Answer is :
Typically, the global buffers are sized to fit at least the RMS index
file structures, and are limited by available (free) system memory.
Keeping at least the index buckets cached in the global buffers reduces
the I/O required for accessing the most frequently accessed structures
within the file.
As a first estimate for the global buffer setting, use the DCL command
ANALYZE/RMS/STATISTICS, and look at the index block counts. Check the
root level, and check the bucket size. Add up all the indices, and then
divide the resulting value by the bucket size.
For example, assume the following numbers of buckets and bucket sizes
are associated with an indexed file:
Bucket Level 1 Level 2 Level 3 Index
Size Buckets Buckets Buckets Blocks
3 1013 14 1 3084
6 244 2 1 1500
9 107 1 0 972
12 60 1 0 732
Based on the above, the OpenVMS Wizard would likely choose a bucket
size of 9 and then choose to configure around 150 global buffers.
You can use the OpenVMS EDIT/FDL tool to (re)design your RMS indexed
Use of local buffers may or may not be beneficial, as it can increase
the amount of memory required due to replication.
You may need to increase the system parameters GBLPAGES, GBLPAGFIL,
and GBLSECTIONS. You may also want to increase the amount of available
Other obvious options include host-based RAM disks, I/O hardware caches,
and faster disk I/O subsystems.
Global buffers are normally a good approach for improving performance.