Setting individual caching parameters
About this task
Although the scaling factor can be used to adjust MVFS cache,
you can also change the sizes of individual caches. Before you take this approach,
consider these issues:
Note: All cache tuning involves making intelligent
trade-offs that optimize caching of frequently referenced objects without
adversely affecting overall performance. Effective MVFS cache tuning for a
given application requires extensive analysis and testing, in addition to
a detailed knowledge of how that application uses the MVFS.
- It is possible to adversely affect MVFS performance by changing individual caching parameters.
- Using the scaling factor to change cache sizes greatly simplifies cache tuning and is effective in the majority of cases.
- On multiprocessor systems, caches must sometimes be locked. Larger caches incur greater locking overhead, which has an impact on performance
Adjust cache sizes gradually and check the cache utilization with cleartool getcache –mvfs. If you change the MVFS cache configuration on a host, also consider reconfiguring each view on that host to increase its cache size. See Reconfiguring a view cache.
The following table describes
each adjustable caching parameter and provides recommendations for setting its size. It also shows
the relationship between the fields in getcache output and various
setcache options.
getcache output field name | Description | Adjustment mechanism | |
---|---|---|---|
setcache option | Control Panel value (Windows®) | ||
Mnode freelist |
An mnode is a data structure used to represent a file or directory. The scaling
factor determines the total number of mnodes allocated when the MVFS starts. An mnode on the VOB free list was used recently but is currently idle. By keeping more mnodes on the free list, the time needed to reopen the associated file is reduced. |
–vobfreemax | Maximum number of mnodes to keep on the VOB free list |
Cltxt freelist
|
The cleartext free list is a collection of pointers to file objects in a storage pool. Caching these pointers speeds reopening of an MVFS-resident file, but consumes additional resources. (On a Windows computer, these resources include open file descriptors on a network connection if the storage is on a remote computer.) | –cvpfreemax | Maximum number of mnodes to keep on the cleartext free list |
DNC File cache
|
The DNC file and directory caches hold pointers to recently accessed files and directories. The ENOENT cache holds the names of files and directories for which a recent lookup failed. When presented with a file or directory name, the MVFS first looks in these caches. If it cannot find a matching entry, it must make an RPC to the view server. Each cache entry consumes approximately 100 bytes. The directory cache usually has the greatest impact on performance. | –regdnc | Maximum number of entries for files |
DNC Directories
|
–dirdnc | Maximum number of entries for directories | |
DNC ENOENT
|
–noentdnc | Maximum number of entries for non-existent names | |
RPC handles
|
One RPC handle is used for each RPC in progress from the MVFS to a view server. If the cache is 100% full when you perform large builds with many simultaneously active processes, you may want to increase this cache size to reduce the time required to perform an RPC. After an RPC handle is added to this cache, it remains available until the MVFS is restarted. If no RPC handles are available in the cache, a new one is created on demand. If the cache is not full, the new RPC handle is returned to the cache when the RPC completes. Otherwise, it is destroyed when the RPC completes. | –rpchandles | Maximum number of rpc handles |
Readdir block cache size |
The readdir block cache is used to cache directory contents. If you routinely work with very large directories, you might want to increase the size of this cache. | –readdir_blocks | Maximum readdir cache blocks per directory |
VOB freelist low-water mark |
Minimum number of mnodes to keep on the VOB free list. When the number of mnodes on the VOB free list reaches the specified maximum, the number of mnodes on the list is reduced to this value | –vobfreemin | Minimum number of mnodes to keep on the VOB free list |
Cleartext freelist low-water mark |
Minimum number of mnodes to keep on the cleartext free list. When the number of mnodes on the cleartext free list reaches the specified maximum, the number of mnodes on the list is reduced to this value. | –cvpfreemin | Minimum number of mnodes to keep on the cleartext free list |