|
The Pervasive PSQL 32-bit Server product for Windows installs a database accelerator called Xtreme I/O (XIO) if the system meets the minimum requirements for XIO. XIO increases database performance by accelerating disk access time for Pervasive PSQL data files.
XIO and the database engine work together to boost performance. The engine notifies XIO when a data file is opened. From that point on, XIO accelerates disk access for the data file. XIO works transparently-no intervention is required by a user or an application.
XIO also lets you exclude data files that you do not want to accelerate. Specifying exclusions is as simple as updating a text file and restarting the database engine.
The following topics provide additional details about XIO:
See also the Pervasive PSQL Technical Papers listed on the Pervasive Web site for the XIO technical paper. The paper covers technical details beyond the scope of this section.
Typically, XIO increases performance for most applications with large data sets. The following table lists considerations for the use of XIO.
XIO can be installed only on platforms that meet the following requirements:
After installing XIO, you need to configure the system as follows:
XIO uses block-level caching, but only for the specific files that the database engines needs to accelerate. The XIO memory cache is dedicated to Pervasive PSQL data files. You cannot, for example, use XIO as a generic disk access accelerator for non-Pervasive files.
XIO manages its cache using sophisticated tracking and caching algorithms that are beyond the discussion scope of this section. XIO's use of memory, however, can help you better understand how the driver functions.
XIO can use extended memory, standard memory, or a combination of the two.
XIO first uses extended memory for its cache if extended memory is available. Note that extended memory is also referred to as physical address extension (PAE) memory. Extended memory is any RAM above 4 GB.
XIO reserves as much extended memory as the operating system allows up to the value specified in the registry for MaxPAEMemMB. See Registry Settings . XIO retains the extended memory until the system is shut down. That is, if the cache is held totally in extended memory, the cache size remains static and does shrink or expand.
If extended memory does not exist, XIO acquires its cache from standard memory. Standard memory is any RAM up to 4 GB. With standard memory, XIO balances the memory demands of the database engine with the memory requirements for the entire system. The XIO cache shrinks and expands as other system resources also acquire and release memory.
If the Registry value for MaxCacheSizeMB is -1 (the default), XIO XIO adjusts, by increasing or decreasing, the size of its cache based on the current state of the system. The maximum cache size in this instance is approximately 80% of physical memory.
If MaxCacheSizeMB is set to a number of megabytes, XIO expands only up to that value as the operating system allows.
If MaxCacheSizeMB is set beyond the amount of memory installed, an error is written to the Windows Event Log and the driver does not load. See Event Log Messages .
MaxCacheSizeMB is the maximum size of the cache based on the combination of standard memory and PAE memory, if PAE memory exists. The cache is not allowed to grow beyond the value of MaxCacheSizeMB regardless from the memory originates. See Registry Settings .
If extended memory exists, but the operating system cannot allocate the value specified for MaxPAEMemMB totally from it, XIO uses a combination of extended and standard memory.
For example, suppose that your MaxCacheSizeMB setting is for 8 MB and your system contains 4 MB of standard memory and 8 MB of extended memory. Assume that other system resources have reserved 2 MB of the extended memory. To fulfill its MaxCacheSizeMB setting of 8 MB, XIO might use 6 MB of extended memory and 2 MB of standard memory.
In this case, the portion of the XIO cache that resides in standard memory shrinks and expands as required.
The Windows Registry contains the configuration parameters for XIO. The majority of parameters are reserved and must not be altered.
However, the following registry entries are configurable: MaxCacheSizeMB and MaxPAEMemMB.
Caution
Do not modify any XIO registry entries other than those listed in the table above. Unpredictable results can occur.
Editing the registry is an advanced procedure. If done improperly, the editing could cause your operating system not to boot. If necessary, obtain the services of a qualified technician to perform the editing.
This section discusses some of the common questions about XIO.
|
Question
|
Answer
|
|---|---|
|
How do I know if XIO is installed?
|
At a command prompt, execute the command xiomgr. If the operating system reports the help information for xiomgr, then the XIO driver is installed.
|
|
How do I know if XIO is enabled?
|
Run the utility xiomgr with the "query" option: xiomgr -query.
The utility reports the current state of XIO (enabled or disabled) and whether it is running or not. See Xiomgr .
|
|
How do I know if XIO is running?
|
|
|
How do I know how much memory the XIO cache is using?
|
Run the utility Xiostats.
The "Cache Size" statistic tells you the size of the XIO cache in megabytes (MB). See also Xiostats Statistics .
|
|
How do I know how efficient the XIO cache is?
|
In general, check the percentage for the "Read Hit %" statistic. The larger the percentages, the more that the XIO cache is being used, and the more efficiently XIO increases performance.
To a lesser extent, you can also check the "Cacheable IO %" statistic, which indicates the percentage of all I/O requests that pertain exclusively to Pervasive PSQL data. A high percentage indicates that the majority of disk access requests involve Pervasive PSQL data.
See also Xiostats Statistics .
|
|
How do I know what files are cached in the XIO cache?
|
Run the utility Xiostats. Click View then Open Files.
See also Tour of Features .
|
|
Why does the "Open Cached Files" statistic show more or fewer files than the number of files I think I have open?
|
The database engine may open a file and then close it, in which case it will not be counted among the open cached files. Opening a segmented Pervasive PSQL of four segments indicates that four files are open, not just one. The database engine performs a file open operation for each segment. System files, System files and data dictionary files may also be open, which are included in the total.
See also Xiostats Statistics .
|
XIO provides two utilities for working with the driver: xiomgr and xiostats.
Xiomgr manages the XIO driver.
|
-query
|
Report the current state of the XIO driver, such as whether or not it is running or enabled.
|
|
-start
|
Start the XIO driver.
If issued following an xiomgr -stop command, ensure that the database engine services are started first. See also Troubleshooting XIO .
|
|
-stop
|
Stop the XIO driver.
The database engine services must be stopped first. See also Troubleshooting XIO .
|
|
-enable
|
Start the XIO driver when the operating system starts.
The enable option takes effect the next time you boot the operating system.
|
|
-disable
|
Prevent the XIO driver from starting when the operating system starts.
The disable option takes effect the next time you boot the operating system.
|
|
-help
|
Show the utility usage information.
|
This utility displays statistical information about the XIO cache.
Note that Xiostats is primarily an advanced utility intended for users who have a thorough understanding of statistics and viewing graphed data. Even so, the utility also provides some basic statistical information. See also Frequently Asked Questions. for some general tips on using Xiostats.
The main purpose of Xiostats is to provide statistical information about XIO and the XIO cache. This information appears as a matrix in the main window of the utility. The following table explains the statistics.
|
Statistic
|
Meaning
|
|---|---|
|
Time
|
The system date and time.
|
|
Elapsed Seconds
|
The number of seconds elapsed since Xiostats was invoked. That is, how long in seconds it has been running.
|
|
Physical Memory
|
The approximate total physical memory, including extended memory, on the machine.
|
|
Cache Size
|
The size of the XIO cache in megabytes. This value can vary depending on which memory the cache is using. See Memory Usage .
|
|
Open Cached Files
|
The number of Pervasive PSQL files open and actively being cached (the file is being read from or written to).
Note that the total number of opened cached files may differ from the number you think are open. Opening a file may result in multiple physical files being opened. For example, a segmented Pervasive PSQL of four segments indicates that four files are open, not just one. The database engine performs a file open operation for each segment.
|
|
Compression Ratio
|
The amount of data compression performed by the cache.
For example, suppose that the Compression Ratio is 8 (meaning 8 to 1). If your cache is 1 GB in size and your compression ration is 8, the cache is storing 8 GB of data.
This ratio depends on the characteristics of the data. Some data can be compressed, other data cannot.
|
|
Read Hit %
|
"Hit" refers to XIO reading the data from its cache not from the physical disk.
In general, the higher the percentage, the more efficiently XIO is performing.
Note: If the data resides totally in the Windows system cache, XIO does not process the read request.
|
|
Dirty Buffers %
|
The amount of data in the cache that has been written to the cache but not yet written to disk.
|
|
Cacheable IO %
|
The percentage of all I/O requests that pertain exclusively to Pervasive PSQL data. (XIO is aware of all disk access requests but acts only on those pertaining to Pervasive PSQL data.)
If your server is dedicated exclusively to Pervasive PSQL, Cacheable IO % should show a high percentage because the majority of disk access requests involve Pervasive PSQL data.
|
|
Cache Read Bytes
|
The number of bytes read from the cache.
|
|
Cache Write Bytes
|
The number of bytes written to the cache.
|
The following table provides a brief tour of the utility features that support the statistical reporting.
|
Feature
|
Description
|
|---|---|
|
Options
|
The Options dialog lets you customize certain aspects of the utility, such as the interval in which Xiostats polls its cache. The Options command is accessed from the File menu.
|
|
Parameters
|
The Parameters list shows you the various Registry settings for Xiostats. You can customize only two of the settings. See Registry Settings .
Do not modify any XIO registry entries except the two listed under Registry Settings . Unpredictable results can occur.
The Parameters command is accessed from the View menu.
|
|
Opened Files
|
The Opened Files list is useful to view which files are currently opened and cached.
The Opened Files command is accessed from the View menu.
|
|
PerfMon
|
The PerfMon command provides a convenient way to access the counters for the PerfMon utility. The PerfMon utility is included as part of the Windows operating system. Refer to its documentation for the use of counters.
|
|
Graph
|
The Graph command lets you graph the statistical data and view it different ways. You can view data by graphing the variable, derivative, or integral.
You can also graph statistical data that has been saved to an Xiostats log. An Xiostats log is a text file saved in comma separated value (csv) format that can be viewed in a spreadsheet program.
You open and close log files (csv files) with the commands in the File menu.
|
|
Log File
|
The Log File command lets you start logging statistical information, stop logging, and set a logging schedule.
An Xiostats log is a text file saved in comma separated value (csv) format that can be viewed in a spreadsheet program.
You open and close log files (csv files) with the commands in the File menu.
Note: If your logging interval is very frequent, the log file can grow very large in a short period.
|
XIO includes a text file, xioexclude.lst, that allows you to specify data files not to accelerate. Typically, you do not need to add exclusions. However, ff you choose to exclude files, follow these steps:
By default, the file is located in Pervasive Software\PSQL under %allusersprofile%. Ensure that you search for hidden files because, by default, the operating system hides certain folders under %allusersprofile%.
XIO writes its error messages to the Windows Event Log as explained in the following table.
|
Message
|
Corrective Action
|
|---|---|
|
XIO started.
|
None required.
|
|
XIO did not shut down properly.
|
Contact Pervasive Technical Support if error occurs consistently.
|
|
XIO failed to load because a memory allocation of %2 bytes for %3 failed.
|
Verify the amount of system memory installed and the settings for MaxCacheSizeMB and MaxPAEMemMB.
|
|
XIO detected insufficient RAM (%2MB). It requires %3MB to operate.
|
Increase the system RAM to the required minimum of 2 gigabytes (GB).
|
|
XIO encountered an unrecoverable system error. %2.
|
Contact Pervasive Technical Support.
|
|
XIO detected the parameter %2 has an invalid value %3.
The legal range is %4 to %5.
The current setting has been coerced to the default value %6.
|
Set the parameter to a value within the legal range.
|
|
NT OS Version %2.%3 is not a Server Build.
XIO detected the parameter %2 has an invalid value %3.
The legal range is %4 to %5.
The current setting has been coerced to the minimum value %6.
|
Set the parameter to a value within the legal range.
|
|
XIO detected that the installed memory size changed from %2MB to %3MB.
|
Verify the amount of installed memory and ensure that the minimum amount, 2 GB, is available.
|
|
The maximum cache size parameter (%4MB) may need adjustment.
|
Check the setting MaxCacheSizeMB and adjust as required based on the amount of system memory and the data set.
|
This section offers suggestions on what to do if you encounter problems using XIO.
|
Situation
|
Discussion
|
|---|---|
|
XIO is enabled but the operating system does not load when booted
|
1. Boot the operating system into safe mode (typically, press the F8 key as the system is attempting to boot).
2. At a command prompt, execute the command xiomgr -disable to prevent the XIO driver from loading.
(By default, xiomgr is located in the PSQL\bin\ directory in the Pervasive tree under Program Files. See also Where are the Pervasive PSQL v10 files installed? in Getting Started With Pervasive PSQL.)
3. Reboot the operating system, which should load without starting XIO.
|
|
XIO cache not responding to reads or writes from database engine
|
This situation can occur if the communication between the database engine and the XIO cache becomes unlinked. Use the following sequence of actions to reestablish the communication between the database engine and the XIO cache:
1. Stop the Pervasive PSQL services.
2. Issue the Xiomgr -stop command.
3. Issue the Xiomgr -start command.
4. Start the Pervasive PSQL services.
The unlinking can occur when the actions are performed in the wrong sequence, such as:
A. Pervasive PSQL services stopped.
B. Xiomgr -stop command issued.
C. Pervasive PSQL services started.
D. Xiomgr -start command issued.
The problem is that steps C and D are reversed in sequence. Following an Xiomgr -stop command, you must first issue the Xiomgr -start command and then start the Pervasive PSQL services.
|
|
Chapter contents
Prev topic: Tuning Performance
|