VPCLASS configuration parameter
Use the VPCLASS configuration parameter to create and configure virtual processors.
- onconfig.std values
-
UNIX™:
VPCLASS cpu,num=1,noage
Windows™:VPCLASS cpu,num=1,noage
#VPCLASS aio,num=1
#VPCLASS jvp,num=1
- values
- Up to 128 bytes of characters. Each VPCLASS configuration parameter value must be unique, begin with a letter or underscore, and contain only digits, letters, underscores, or $ characters. Do not include blank spaces. See the Usage section.
- separators
- Separate each field with a comma.
- takes effect
- After you edit your onconfig file and restart the database server.
Usage
VPCLASS cpu,num=1,noage
: Creates a CPU virtual processor without aging.#VPCLASS aio,num=1
: Remove the comment symbol to create one AIO virtual processor.#VPCLASS jvp,num=1
: Remove the comment symbol to create one JVP virtual processor.
You can add multiple VPCLASS configuration parameter entries in your onconfig file. Each VPCLASS configuration parameter must describe a different class of virtual processors. Put each definition on a separate line.
Field | Values |
---|---|
class | The class value is the name
of the virtual processor class. The database server starts most virtual
processors as needed. Typically, you might set the VPCLASS configuration
parameter for the CPU, AIO, JVP, and user-defined virtual processor
classes. The virtual processor class name is not case-sensitive. For a list of class names, see Virtual processor classes. |
user_defined | The user_defined value is
the name of a virtual processor class that you create for user-defined
routines. Make sure the SINGLE_CPU_VP configuration parameter is set to 0. |
autotune | Specifies whether the database server adds virtual
processors for the specified class as needed to improve performance,
up to the value of the max option, if it is included.
If the class is cpu, any CPU virtual processors that are automatically added do not have affinity. The aff option is ignored. |
cpu | Specifies the CPU virtual processor class. |
num | The number_vps value sets
the number of virtual processors of the specified class that the database
server starts when the database server starts. The default value is
1. The range of values for the cpu and aio virtual
processor classes is 1 - 10000. The range of values for all other
virtual processor classes is 0 - 10000. You can use the onmode -p command to add virtual processors for the class for the current session. |
max | The maximum value specifies the maximum number of virtual processors that the database server can start for the class. The value can be any integer greater than 0. By default, the number is unlimited. |
aff | On multiprocessor computers that support processor
affinity, the aff option specifies the CPUs to
which the database server binds CPU virtual processors. The operating
system numbers the CPUs from 0 to one less than the number of CPUs.
By default, CPU virtual processors are assigned to available processors
in round-robin fashion. The aff option takes one
or more integers:
|
noage | Disables priority aging for CPU virtual processors, if the operating system implements priority aging. By default, priority aging is in effect. |
noyield | Specifies that a user-defined virtual processor
class does not yield, which allows the C UDR to yield to other threads
that need access to the user-defined virtual processor class. By default,
threads for user-defined virtual processors yield. A nonyielding user-defined virtual processors class runs a user-defined routine in a way that gives the routine exclusive use of the virtual processor class. User-defined routines that use a noyield virtual-processor class run serially and never yield the virtual processors to another thread. Specify only one virtual processor in a nonyielding user-defined virtual processor class, because the UDR runs on a single virtual processor until it completes and any additional virtual processors would be idle. |
The options can appear in any order, separated by commas.
Use the onmode -p command to dynamically add or remove virtual processors for the current database session. The onmode -p command does not update the onconfig file.
CPU virtual processors
On a single-processor computer, allocate only one CPU virtual processor. On a multiprocessor computer, allocate a total number of CPU virtual processes plus user-defined virtual processors up to the number of CPUs on the computer.
When the database server starts, the number of CPU virtual processors is automatically increased to half the number of CPU processors on the database server computer, unless the SINGLE_CPU_VP configuration parameter is enabled.
If you include the autotune option, the database server adds CPU virtual processors as needed to improve performance, up to the number of CPUs on the computer.
The value of the num option of the VPCLASS configuration parameter for the CPU class is not updated when the database server automatically adds CPU virtual processors.
You can configure processor affinity and whether to allow aging. For example, the following entry creates four CPU virtual processors that are bound to CPU numbers 7, 8, 9, and 10, and are not affected by priority aging:
VPCLASS CPU,num=4,aff=(7-10),noage
AIO virtual processors
Use a VPCLASS configuration parameter entry for the AIO virtual processor class to specify an exact number of AIO virtual processors or to enable the database server to add AIO virtual processors as needed.
Use a VPCLASS configuration parameter entry for the AIO virtual processor class to specify an exact number of AIO virtual processors.
- If AUTO_AIOVPS is set to 1 (on), the number of AIO virtual processors that are initially started is equal to the number of AIO chunks.
- If AUTO_AIOVPS is set to 0 (off), the number of AIO virtual processors that are started is equal to the greater of 6 or twice the number of AIO chunks.
Java™ virtual processors
If you use Java user-defined routines or Java applications, create at least one Java virtual processor by adding a VPCLASS configuration parameter entry for the JVP virtual processor class. If you set the number of JVPs to zero, or if there is no VPCLASS parameter for the JVP class, you cannot run Java UDRs.