skip book previous and next navigation links
go up to top of book: HP OpenVMS System Manager's Manual, Volume 2:... HP OpenVMS System Manager's Manual, Volume 2:...
go to beginning of chapter: Managing File System Data Caches Managing File System Data Caches
go to previous page: Managing the Virtual I/O Cache Managing the Virtual I/O Cache
go to next page: Testing the System with UETPTesting the System with UETP
end of book navigation links

Selecting VIOC on an Alpha or I64 System  



If for some reason, you want an Alpha or I64 system to use VIOC instead of XFC, follow these steps:
  1. Remove the entry for VCC$MIN_CACHE_SIZE from the reserved memory registry, using the Sysman utility's RESERVED_MEMORY REMOVE command:
    $ RUN SYS$SYSTEM:SYSMAN
    SYSMAN> RESERVED_MEMORY REMOVE VCC$MIN_CACHE_SIZE /NOGLOBAL_SECTION
    This makes sure that no memory is allocated to XFC in Step 4, when the system reboots with VIOC.
  2. Set the VCC_FLAGS system parameter to 1.
  3. Run AUTOGEN to ensure that other system parameters allow for the new value. This is not essential, but it is advisable.
  4. Reboot the system. VIOC is automatically loaded during startup instead of XFC, because VCC_FLAGS is 1.

If you forgot to remove the VCC$MIN_CACHE_SIZE entry from the reserved memory registry in Step 1, memory is allocated to XFC even though XFC is not loaded. Nothing can use this memory. If this happens, use the Sysman utility's RESERVED_MEMORY FREE command to release this memory:

$ RUN SYS$SYSTEM:SYSMAN
SYSMAN> RESERVED_MEMORY FREE VCC$MIN_CACHE_SIZE /NOGLOBAL_SECTION

Controlling the Size of the Cache  

The way that you control the size of VIOC depends on whether you have an OpenVMS Alpha, I64, or VAX system.

On OpenVMS Alpha or I64 Systems

On OpenVMS Alpha and I64 systems, the size of VIOC is fixed at system startup time. The cache can't shrink or grow. The value of the static system parameter VCC_MAXSIZE specifies the size of the cache in blocks. By default it is 6400 blocks (3.2MB).

To change the size of VIOC on an OpenVMS Alpha or I64 system, follow these steps:

  1. Set the VCC_MAXSIZE system parameter to the required value.
  2. Run AUTOGEN to ensure that other system parameters allow for the new value. This is not essential, but it is advisable.
  3. Reboot the system to make the new value effective.

On OpenVMS VAX Systems

On OpenVMS VAX systems, you can use the static system parameter VCC_PTES to specify the maximum size of VIOC. This parameter specifies the size in pages. By default it is 2,000,000,000.

VIOC automatically shrinks and grows, depending on your I/O workload and how much spare memory is available on your system. As your I/O workload increases, the cache automatically grows, but never to more than the maximum size. And when your applications need memory, the cache automatically shrinks.

To change the maximum size of VIOC on an OpenVMS VAX system, follow these steps:

  1. Set the VCC_MAXSIZE system parameter to the required value.
  2. Run AUTOGEN to ensure that other system parameters allow for the new value. This is not essential, but it is advisable.
  3. Reboot the system to make the new value effective.

Displaying VIOC Statistics  

Use the DCL command SHOW MEMORY/CACHE/FULL to display statistics about the virtual I/O cache, as shown in the following example:

$ SHOW MEMORY/CACHE/FULL
System Memory Resources on 10-OCT-2002 18:36:12.79
Virtual I/O Cache
Total Size (pages)    [1]    2422    Read IO Count          [6]      9577
Free Pages            [2]    18      Read Hit Count         [7]      5651
Pages in Use          [3]    2404    Read Hit Rate          [8]      59%
Maximum Size (SPTEs)  [4]    11432   Write IO Count         [9]      2743
Files Retained        [5]     99      IO Bypassing the Cache  [10]     88

NoteThis example shows the output for the SHOW MEMORY/CACHE/FULL command on a VAX system. The command SHOW MEMORY/CACHE/FULL displays slightly different fields on an Alpha or I64 system.

[1] Total Size
Displays the total number of system memory pages that VIOC currently controls.
[2] Free Pages
Displays the number of pages controlled by VIOC that do not contain cache data.
[3] Pages in Use
Displays the number of pages controlled by VIOC that contain valid cached data.
[4] Maximum Size
Shows the maximum size that the cache could ever grow to.
[5] Files Retained
Displays the number of files that are closed but the file system control information is being retained because they have valid data residing in the cache.
[6] Read I/O Count
Displays the total number of read I/Os that have been seen by VIOC since the last system.
[7] Read Hit Count
Displays the total number of read I/Os that did not do a physical I/O because the data for them was found in the cache since the last system BOOT.
[8] Read Hit Rate
Displays the read hit count and read I/O count ratio.
[9] Write I/O Count
Shows the total number of write I/Os that have been seen by the cache since the last system BOOT.
[10] I/O Bypassing
Displays the count of I/Os that for some reason did not attempt to satisfy the request/update by the cache.

Enabling VIOC 

By default, virtual I/O caching is enabled. Use the following system parameters to enable or disable caching. Change the value of the parameters in MODPARAMS.DAT, as follows:

Parameter Enabled Disabled
VCC_FLAGS (Alpha or I64 )
1
0
VBN_CACHE_S (VAX)
1
0

Once you have updated MODPARAMS.DAT to change the value of the appropriate parameter, you must run AUTOGEN and reboot the node or nodes on which you have enabled or disabled caching. Caching is automatically enabled or disabled during system initialization. No further user action is required.

Determining if VIOC is Enabled 

SHOW MEMORY/CACHE indicates whether VIOC caching is on or off on a running system. (This is a lot easier than using SYSGEN.)

SYSGEN can be used to examine parameters before a system is booted. For example, you can check the system parameter VCC_FLAGS (on Alpha or I64) or VBN_CACHE_S (on VAX) to see if virtual I/O caching is enabled by using SYSGEN, as shown in the following Alpha example:

$ RUN SYS$SYSTEM:SYSGEN
SYSGEN> SHOW VCC_FLAGS
A value of 0 indicates that caching is disabled; the value 1 indicates caching is enabled.

Memory Allocation and VIOC 

The memory allocated to caching is determined by the size of the free-page list. The size of the virtual I/O cache can grow if one of the following conditions is true:

The cache size is also limited by the following:

How is memory reclaimed from the cache? The swapper can reclaim memory allocated to the virtual I/O cache by using first-level trimming. In addition, a heuristic primitive shrinks the cache returning memory in small increments.

Adjusting VIOC Size 

The size of the virtual I/O cache is controlled by the system parameter VCC_MAXSIZE. The amount of memory specified by this parameter is statically allocated at system initialization and remains owned by the virtual I/O cache.

To increase or decrease the size of the cache, modify VCC_MAXSIZE and reboot the system.

VIOC and OpenVMS Cluster Configurations 

The cache works on all supported configurations from single-node systems to large mixed-interconnect OpenVMS Cluster systems. The virtual I/O cache is nodal; that is, the cache is local to each OpenVMS Cluster member. Any base system can support virtual I/O caching; an OpenVMS Cluster license is not required to use the caching feature.


NoteIf any member of an OpenVMS Cluster does not have caching enabled, then no caching can occur on any node in the OpenVMS Cluster (including the nodes that have caching enabled). This condition remains in effect until the node or nodes that have caching disabled either enable caching or leave the cluster.

The lock manager controls cache coherency. The cache is flushed when a node leaves the OpenVMS Cluster. Files opened on two or more nodes with write access on one or more nodes are not cached.
go to previous page: Managing the Virtual I/O Cache Managing the Virtual I/O Cache
go to next page: Testing the System with UETPTesting the System with UETP