
Copyright © 2004-2008 SuperSpeed LLC
All Rights Reserved.
01 June 2008
RELEASE NOTES FOR
SUPERCACHE AND SUPERVOLUME
DESKTOP EDITION
v.3.0.2
Contents:
1.1 SuperCache (v3.0) features:
1.2 SuperVolume (v3.0) features:
The core functionalities of SuperCache and of SuperVolume are implemented in the driver named “SscVF.sys”, which is stored in the “%WinDir%\System32\Drivers” folder. “VF” stands for “volume filter”; SuperCache and SuperVolume are actually kinds of volume filters. The driver can activate either the SuperCache filter or the SuperVolume filter, but not both concurrently. The filters are activated through a single volume filter device. The ability to activate a filter on a given volume depends on licensing, available memory, and qualifying factors of the volume itself.
SuperCache and SuperVolume are block-level caches, residing below NT's file-system cache. Both are associated with a volume, while NT's file-system cache is associated with a file-system. Both can cache volumes whether they contain a file-system or not (RAW), and whether they are assigned a drive letter or not. SuperCache is appropriate when the size of the volume requiring acceleration is larger than available physical memory. SuperVolume is appropriate when the volume's size is less than available physical memory.
Almost all the memory resources allocated to SuperCache and SuperVolume are taken from physical memory. This effectively eliminates any burden on the operating system's limited paged and non-paged pools. Nonetheless, care should be exercised to avoid starving the operating system, services and applications of physical memory. Under severe conditions, memory resource starvation may lead to a system crash. Additionally, although physical memory may be available for SuperCache and SuperVolume, over-allocation of the physical memory pool to SuperCache or SuperVolume will adversely affect the performance of other system components reducing overall system performance despite the larger cache sizes.
Windows XP x64 provides special support for machines with a non-uniform memory architecture (NUMA). When active on such platforms, the memory manager for SuperCache and SuperVolume examines the processor and memory affinities reported by Windows and the ACPI SRAT, and then optimizes physical memory allocations across the described NUMA nodes. The NUMA support in SuperCache and SuperVolume greatly improves the speed of memory allocations and equalizes the distribution of cache allocations among the NUMA nodes. Currently, NUMA support does not include the ability to build caches on specific nodes.
Please visit our Web site for more details. www.superspeed.com
Each volume filter device is managed by a command-line utility, VFCFG.EXE, or a new Windows shell property page for qualified mounted devices.
3.1 Mounted Device "Performance" Property Page
Mounted devices, including disk partitions or volumes with drive letters, appear in various locations in Windows Explorer, as well as in the results pane of the MMC Disk Management snap-in. Right-clicking on one of these devices and selecting the Properties item on the resultant shortcut menu brings up that device's property sheet.
When properly installed, and on qualified volumes, SuperCache and SuperVolume add a new property page to this property sheet: Performance. Clicking on the performance tab reveals a page with three buttons labeled SuperCache, SuperVolume and Licensing. This page is not displayed on devices with removable media, or if the product is improperly installed. The buttons of those products licensed for use will be enabled.
3.2 VFCFG.EXE Command-Line Utility
Each qualified volume’s filter device may be controlled via a command-line utility called “VfCfg.exe”. This file is stored in the “%WinDir\System32” folder. This command-line interface (CLI) implements WMI to permit local and remote configuration of the volume filter device.
Its usage is displayed by simply typing its name in a command prompt window. The following text (or a newer version of it) will be displayed:
VfCfg.exe v.3.0 Copyright (c) 2004-2008 SuperSpeed LLC.
Volume filter device configuration tool. Configures the volume filter device
active on a local or remote storage volume (eg. disk partition) to accelerate
disk performance. Manages both SuperCache (SC) and SuperVolume (SV)
filters.
Usage:
vfcfg [ [-h hostname] [-n username -p password] ] [volume]
[-status | -sc | -sv | -stop] [-licensing]
[-lw latency] [-cs cachesize [-fs]] [-ps pagesize]
[-ra readahead] [-mfu on|off]
Where each switch specifies:
-h Host or target computer. Default: local computer.
-n User name (domain\user or user). Default: current user.
-p Password for specified user account. For an empty password
value use two double quotes (""). For a NULL password value
do not specify a password. Default: NULL. (Requires -n)
volume Drive letter or four-digit identifier specifying target
storage volume. Default: all qualified volumes (-status only).
-status Display status of filter on one or all storage volumes.
-sc Activate SuperCache filter action. (Requires -cs)
-sv Activate SuperVolume filter action.
-stop Deactivate the current filter action.
-licensing Display licensing information.
-lw Lazywrite latency. 'Off', 'disable', or '0' disables deferred-
write mode (no write caching). 'Inf' or 'infinite' enables
deferred-write mode with lazywriting suspended (latency is
infinite). A time value in seconds, or in hours, minutes and
seconds (H:MM:SS), enables deferred-write mode with
lazywriting active and dirty pages remaining such, on
average, for the time specified. Maximum limit is 14400
seconds, or 4:00:00. Default: off. (SC and SV)
-cs Cache size (in MB). This value must be specified when
activating SuperCache. The size may be modified while the
cache is active. Cache allocations are made in blocks of 4 MB;
the value is rounded up accordingly. No default. (SC only)
-fs Fail-safe enable. Applicable only when increasing the cache
size, this switch indicates that if the cache size specified
cannot be allocated, the maximum amount available should be
used. Default: disabled. (SC only)
-ps Cache page size (in KB). This value may be specified only
when activating SuperCache. Once active, the value can be
changed only by deactivating the cache and reactivating
with a new value. Default: depends on the volume's size and
the amount of available memory. (SC only)
-ra Read-ahead value (in cache pages). This value determines how
many additional pages will be read when a read request
cannot be fulfilled entirely from the cache. Default: off.
(SC only)
-mfu Most Frequently Used caching algorithm. Enables or disables
the proprietary MFU caching algorithm. By default, SuperCache
II uses a Most Recently Used algorithm. The MFU algorithm may
improve caching performance for some applications. Default:
disabled. (SC only)
All commands may optionally specify the host (target) name, and/or a user
name and password.
Ex. vfcfg -h server1 -n "Joe Doe" -p m1n2o3 c: -status
vfcfg -h server1 -n "Joe Doe" -p m1n2o3 0001 -status
vfcfg -h server1 -status
vfcfg -n "Joe Doe" -p m1n2o3 -status
The status of a particular volume may be requested, or, by the absence of a
volume specification that of all qualified volumes in the target system.
Ex. vfcfg c: -status
vfcfg 0001 -status
vfcfg -h server2 -status
SuperCache and SuperVolume are made active through the use of the -sc and
-sv switches, respectively. When activating SuperCache, the -ps and -cs
values are also required, while the -fs, -lw, -ra, and -mfu optionally may
be specified. When activating SuperVolume, the -lw value optionally may be
specified.
Ex. vfcfg c: -sc -ps 32 -cs 256
vfcfg d: -sv
vfcfg 0002 -sv
vfcfg c: -sc -ps 32 -cs 512 -fs -lw 15 -ra 2
vfcfg 0004 -sc -ps 32 -cs 512 -fs -lw 15 -ra 2
vfcfg d: -sv -lw 0:01:30
vfcfg -h server1 -n "Joe Doe" -p m1n2o3 c: -sc -ps 32 -cs 256 -ra 2
vfcfg -h server2 d: -sv -lw inf
To modify the current filter action's parameters, simply specify the new
parameter(s).
Ex. vfcfg c: -ra 1
vfcfg -h server2 -n "Joe Doe" -p m1n2o3 d: -lw 2:30:00
To deactivate a filter action, specify -stop.
Ex. vfcfg -stop 0001
vfcfg -stop c:
vfcfg -h server2 d: -stop
To view licensing information, use the -licensing switch.
Ex. vfcfg -licensing
vfcfg -h server2 -licensing
The various resources in a computer system – processors, buses, memory, controllers and adapters, storage devices, network interfaces, software, etc. – are all factors which determine the rate at which a given task may be executed. Most system resources are shared by the many different software components that are required to execute a task. For example, processor time, system memory, and storage devices must be shared by the operating system kernel and its drivers, operating system services, and other services and applications.
Balancing the use of system resources so as to maximum system performance is system performance tuning. Much of this tuning is realized automatically by the operating system. However, the operating system provides many parameters that can be modified to improve overall system performance, according to the applications or services being executed. (See Microsoft's Web site for Windows Server 2003 or Windows 2000 server editions performance tuning.)
SuperCache and SuperVolume improve system performance when storage resources are over-utilized compared with system memory and processor resources. However, memory and processor resources must be shared among many system components, as described earlier. It is the responsibility of the systems engineer or system administrator to balance the use of these resources in order to optimize system performance.
SuperCache and SuperVolume feature a variety of parameters to assist in system performance tuning. Each parameters is described below, along with recommended settings.
|
Parameter (Switch) |
Product |
Range (Default) |
Description and use |
|
Lazywrite latency, in seconds (-lw) |
SC, SV |
(off, 0), |
Describes the period, in
seconds, during which written data are present in the cache and not on the
disk. When off (or 0; write-through mode), write data are written
synchronously to the cache and disk.
SuperCache: Unlike SuperVolume, SuperCache also writes out dirty data in response to internal requests for cache page mappings. If the cache become full of dirty data and read or write requests are made for pages not in the cache, dirty pages will be forcibly written out. This operation is given priority over the lazywriter.
SuperVolume: Unlike SuperCache, during initialization, SuperVolume automatically loads the entire volume image into its cache. During this time, the cache write mode is always write-through. Upon completion of the image load, the write mode is changed to the configured setting. While loading, the configured setting will be reported even though it may differ from the actual setting. |
|
Cache size, in MB (-cs) |
SC |
depends on page size (no default) |
Describes the size of the cache, in megabytes. This is the single most important parameter to consider for cache tuning. For most server systems, 1 to 2 GB of physical memory (RAM) must be reserved for the operating system, services and applications. The remaining physical memory can be used effectively for SuperCache.
On systems with more than 4 GB of RAM, SuperCache can dramatically increase performance with little worry about "starving" memory from other system components. On systems with 4 GB of RAM or less, due consideration must be given to sharing memory resources.
Care should always be exercised when attempting to allocate "as much memory as possible" to SuperCache. The system can become memory starved, and its performance greatly hindered. Under extreme circumstance, the system may crash.
To tune cache performance, observe the following two metrics: memory utilization in Task Manager, and application performance using an appropriate application performance monitoring tool. Set the cache size to a relatively low value (it's much faster to allocate memory to the cache in a busy system than to free memory from the cache), and, over a reasonable period of time, note the values of the two metrics.
Incrementally increase the cache size, watching its effect over time on the two metrics. At some point the performance will peak, after which it will drop again. The performance will begin to drop when the other system components start to 'feel' the lack of physical memory and the operating system begins paging out virtual memory. Reset the cache size to the value where the highest performance was realized. The cache is now rough-tuned.
Use the other parameters available to fine-tune the cache's performance. |
|
Page size, in KB (-ps) |
SC |
4, 8, 16, 32, 64, 128, 256 |
Describes the granularity of the cache and of volume mappings, in kilobytes. It is similar to allocation unit size in the NTFS.
Cache fragmentation: The smaller the page size, the lower the average invalid data per page (eg. lower cache fragmentation). This increases cache efficiency, improving the probability of cache hits. Reduced cache fragmentation is often the single most important factor in improving overall cache performance.
Cache overhead: The smaller the page size the greater the system resources required for cache overhead. The physical and virtual memory resources required to manage the cache pages is greater, since there are more pages for a given cache size. Similarly, the physical and virtual memory resources required to manage the volume map is greater, since there are more mappings for a given volume size. And the memory and processor resources required for executing an I/O request are greater, since more pages must be managed per transfer.
Other factors: Among the factors to include in determining the cache page size are: the average transfer size, the ratio of reads to writes, read-ahead requirements, and the state of file-system caching (enabled or disabled). Generally, larger page sizes should be used only when transfer sizes are large. The default Windows NT file-system to storage-class driver transfer size is 64 KB. Disk data compression algorithms are optimized to 64 KB.
With a high proportion of reads requests, a slightly smaller page size may be desirable. When used in conjunction with the read-ahead feature, read performance may be optimized. In many read-heavy applications, read-ahead values of 1 to 3 will prove effective.
When file-system caching is disabled (files are opened with the FILE_WRITE_THROUGH option), or the storage volume is accessed in RAW mode, the average transfer size is tied directly to the application. PerfMon can report the average size of the transfers, and the number can be used to calculate and set the appropriate cache page size. |
|
Read ahead, in pages (-ra) |
SC |
(0)-15 |
Describes the number of additional, trailing cache pages that will be read from disk when a read request cannot be serviced immediately from the cache. Applications with a high proportion of reads generally benefit from a read-ahead setting of 1-3. Applications that perform large-size read requests, or frequent bursts of sequential reads, may benefit from a larger read-ahead setting.
The maximum value of this setting varies according to page size. For page sizes of 4, 8, 16, 32, and 64 KB, the maximum value is 15 pages. For page sizes of 128 and 256 KB, the maximum values are 7 and 3 pages, respectively. |
|
Most Frequently Used Algorithm (-mfu) |
SC |
(off), on |
Describes the cache sort algorithm employed. The default cache sort algorithm is most recently used (MRU). This places cache pages in an order where the most recently used pages are at the top of the 'list', and the least recently used pages are at its bottom. When requests requiring new page mappings are serviced, pages at the bottom of the list are used.
The most frequently used (MFU) cache sort algorithm places the cache pages most frequently used at the top of the list and the least frequently at the bottom. As stated above, new page mappings are serviced from the bottom of the list.
The difference in the performance of the algorithms depends on the height and width of the data "hot spots". "Hot spots", in this discussion, refers to the logical locations in the storage volume to which a higher percentage of I/O requests are targeted. If the hot spots are characterized by relatively high usage (creating a tall, sharp 'knee' between regions), then MRU sorting is most efficient. If the hot spots are characterized by only slightly higher usage, MFU sorting may be more efficient.
Most applications have pronounced hot spots, so the default setting (off) is appropriate. Other applications benefit from the MFU algorithm. |
Starting with version 1.0.12, the SuperCache and SuperVolume package provides limited support for automated installs and uninstalls. The package can be installed and uninstalled via a command prompt window or a script. By implementing a script with system management software, the package can be rolled out to remote machines.
To install the package without user intervention on a system with no package currently installed, use the following command:
scsv-1-x-x-0-desktop.exe -s -a -s -n "Name" -k XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
Where "Name" and XXXXX-XXXXX-XXXXX-XXXXX-XXXXX are the name
and software license key provided by SuperSpeed LLC. Be sure to include the name
in double quotes. The system must be restarted immediately after executing the
command.
To uninstall an installed package without user invention, use the following
command:
"%ProgramFiles%\InstallShield Installation
Information\{5B14E06B-97A1-11D3-B2C8-00C0F014C0F2}\setup.exe" -au
Be sure to include the double quotes as shown. The system must be restarted immediately after executing the command.
IMPORTANT: The package cannot update or repair installed versions.
Key: SC: SuperCache, SV: SuperVolume.
SscVf.sys – Volume filter driver
3.0.2.0
3.0.1.0
1.1.16.0
1.1.15.0
1.1.14.0
1.0.13.0
1.0.12.0
1.0.11.0
1.0.10.0
1.0.9.0
1.0.8.0
1.0.7.0
1.0.6.0
1.0.0.5
1.0.0.4
1.0.0.3
1.0.0.2
1.0.0.1
VfCfgSh.dll – Shell extension volume filter device management tool
1.0.6.0
1.0.5.0
1.0.4.0
1.0.3.0
1.0.2.0
1.0.1.0
VfCfg.exe – Command-line volume filter device management tool
1.1.8.0
1.1.7.0
1.1.6.0
1.1.5.0
1.1.4.0
1.0.0.3
1.0.0.2
1.0.0.1