VPCLASS 配置参数

使用 VPCLASS 配置参数来创建和配置虚拟处理器。

onconfig.std 值

UNIX™ : VPCLASS cpu,num=1,noage

Windows™ :
  • VPCLASS cpu,num=1,noage
  • #VPCLASS aio,num=1
  • #VPCLASS jvp,num=1
最多 128 字节字符。每一 VPCLASS 配置参数值必须是唯一的,以一个字母或下划线开头,且仅包含数字、字母、下划线或 $ 字符。不包括空格。请参阅“用法”部分。
分隔符
以逗号分隔每一域。
生效
编辑 onconfig 文件并重启数据库服务器之后。

用法

您可在 onconfig 文件中添加多个 VPCLASS 配置参数条目。每一 VPCLASS 配置参数必须描述一个不同的虚拟处理器类。每一定义置于单独的行上。

VPCLASS 配置参数的语法
cpu class
表 1. VPCLASS 配置参数值的选项.

class class 值是虚拟处理器类的名称。数据库服务器根据需要启动大多数虚拟处理器。典型地,您可能为 CPU、AIO、JVP 和用户定义的虚拟处理器类设置 VPCLASS 配置参数。

虚拟处理器类名不区分大小写。

要查看类名称的列表,请参阅虚拟处理器的类型

user_defined user_defined 值是您为用户定义的例程创建的虚拟处理器类名称。

请确保 SINGLE_CPU_VP 配置参数设置为 0。

autotune 指定数据库服务器是否根据需要为指定的类添加虚拟处理器来提高性能,如果包括 max 选项,则最多达 max 选项的值。
  • autotune=0 防止自动添加虚拟处理器
  • autotune=1 启用虚拟处理器的自动添加

如果该类是 cpu,则自动地添加的任何 CPU 虚拟处理器都没有 affinity。忽略 aff 选项。

cpu 指定 CPU 虚拟处理器类。
num number_vps 值设置指定类的虚拟处理器数目,当数据库服务器启动时数据库服务器启动这个类。缺省值是 1。cpuaio 虚拟处理器类的值域是 1 - 10000。所有其他虚拟处理器类的值域是 0 - 10000。

您可使用 onmode -p 命令来为当前会话的类添加虚拟处理器。

max maximum 值指定数据库服务器可为该类启动的虚拟处理器的最大数目。该值可为大于 0 的任何整数。缺省情况下,该数目是无限制的。
aff 在支持处理器 affinity 的多处理器计算机上,aff 选项指定数据库服务器绑定 CPU 虚拟处理器的那些 CPU。操作系统将这些 CPU 编号,从 0 至小于 CPU 数目的一个数。缺省情况下,以轮转法方式将CPU 虚拟处理器分派到可用处理器。aff 选项为一个或多个整数:
  • processor = 将 CPU 虚拟处理器绑定到得那个 CPU 编号。CPU 编号可以任何顺序罗列。
  • start = CPU 编号范围的起始。
  • end = CPU 编号范围的终止。
  • increment = 指定在一个使用的范围中 CPU 编号的因子。例如,aff=(1-5/2) 指定使用 CPU 编号 1、3 和 5。
noage 如果操作系统实现优先级 aging,则对于 CPU 虚拟处理器禁用优先级 aging。缺省情况下,优先级 aging 有效。
noyield 指定用户定义的虚拟处理器类不 yield,允许 C UDR yield 给其他需要访问用户定义的虚拟处理器类的线程。缺省情况下,用户定义的虚拟处理器的线程 yield。

非 yielding 用户定义的虚拟处理器类以一种方式运行用户定义的线程,即给线程排他使用虚拟处理器类。使用非 yield 虚拟处理器类的用户定义的线程串行地运行,且从不将该虚拟处理器 yield 给另一个线程。

因为 UDR 运行在单个虚拟处理器上直到完成,且任何附加的虚拟处理器都会空闲,所以在非 yielding 用户定义的虚拟处理器类中仅指定一个虚拟处理器。

这些选项可以任何顺序出现,以逗号分隔。

使用 onmode -p 命令来动态地添加或移除当前数据库会话的虚拟处理器。onmode -p 命令不更新 onconfig 文件。

CPU 虚拟处理器

在单处理器计算机上,仅分配一个 CPU 虚拟处理器。在多处理器计算机上,分配的 CPU 虚拟处理器加上用户定义的虚拟处理器的总数目最多达到计算机上的 CPU 数。

当数据库服务器启动时,CPU 虚拟处理器的数目自动地增加到数据库服务器计算机上 CPU 处理器数目的一半,除非启用 SINGLE_CPU_VP 配置参数。

如果包括 autotune 选项,则数据库服务器根据需要添加 CPU 虚拟处理器来提高性能,最多达到计算机上的 CPU 数。

当数据库服务器自动地添加 CPU 虚拟处理器时,不更新 CPU 类 VPCLASS 配置参数的 num 选项。

您可配置处理器 affinity 和是否允许 aging。例如,下列条目创建绑定到 CPU 编号 7、8、9 和 10 的四个 CPU 虚拟处理器,且不受优先级 aging 的影响:

VPCLASS CPU,num=4,aff=(7-10),noage

AIO 虚拟处理器

使用 AIO 虚拟处理器类的 VPCLASS 配置参数条目来指定 AIO 虚拟处理器的确切数目,或启用数据库服务器来根据需要添加 AIO 虚拟处理器。

当没有为 AIO 虚拟处理器类设置 VPCLASS 配置参数条目时,由 AUTO_AIOVPS 配置参数的设置确定 AIO 虚拟处理器的数目,且限定到 128:
  • 如果 AUTO_AIOVPS 设置为 1(开),则初始启动的 AIO 虚拟处理器数目等于 AIO chunk 的数目。
  • 如果 AUTO_AIOVPS 设置为 0(关),则启动的 AIO 虚拟处理器数目等于 6 或 AIO chunk 的数目之中较大的一个。

Java™ 虚拟处理器

如果您使用 Java 用户定义的例程或 Java 应用,则通过为 JVP 虚拟处理器类添加 VPCLASS 配置参数条目,创建至少一个 Java 虚拟处理器。如果您设置 JVP 的数目为零,或如果没有 JVP 类的 VPCLASS 参数,则您不可运行 Java UDR。