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

The VPCLASS configuration parameter has three entries in the onconfig.std file, but only the first one is in effect:
  • 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.

Figure 1: Syntax for the VPCLASS configuration parameter

1  VPCLASS
1 class
1 %cpu class
1  aio ? autotune =
2.1 0
2.1 1
1  user_defined?  , noyield
2?  , num = number_vps
2?  , max = maximum
cpu class

1  cpu?  , aff = (
2.1+ ,
2.1 processor
2.1  start - end?  / increment
1 )?  , noage?  , ? autotune =
2.1 0
2.1 1
Table 1. Options for the VPCLASS configuration parameter value

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.
  • autotune=0 prevents the automatic addition of virtual processors
  • autotune=1 enables the automatic addition of virtual processors

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:
  • processor = The CPU number to which to bind the CPU virtual processors. The CPU numbers can be listed in any order.
  • start = The beginning of a range of CPU numbers.
  • end = The end of a range of CPU numbers.
  • increment = A factor that specifies which of the CPU numbers in a range are used. For example, aff=(1-5/2) specifies to use CPU numbers 1, 3, and 5.
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.

When no VPCLASS configuration parameter entry for the AIO virtual processor class is set, the number of AIO virtual processors is determined by the setting of the AUTO_AIOVPS configuration parameter and is limited to 128:
  • 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.