使用 VPCLASS 配置参数的 aio 和 num 选项来指示数据库服务器最初启动的 AIO 虚拟处理器的数量。
如果您的操作系统不支持内核异步 I/O (KAIO),那么数据库服务器使用 AIO 虚拟处理器 (VP) 管理所有数据库 I/O 请求。
如果 VPCLASS 配置参数没有指定要在 ONCONFIG 文件中启动的 AIO VP 的数量,那么 AUTO_AIOVPS 配置参数的设置将控制 AIO VP 的数量:
AIO 虚拟处理器的推荐数量取决于配置支持的磁盘数。如果在您的平台上没有实现 KAIO,那么建议您为包含数据库表的每个磁盘分配一个 AIO 虚拟处理器。可以为数据库服务器频繁访问的每个块添加附加的 AIO 虚拟处理器。
当服务器检测到 AIO 虚拟处理器无法满足 I/O 工作负载时,AUTO_AIOVPS 配置参数可使数据库服务器自动增加 AIO 虚拟处理器和 page-cleaner 线程的数量。
数据库服务器版本的机器说明文件指示操作系统是否支持 KAIO。如果支持 KAIO,那么机器说明描述如何在特定的操作系统上启用 KAIO。
如果您的操作系统支持 KAIO,那么 CPU VP 对操作系统而不是 AIO 虚拟处理器做出异步 I/O 请求。在这种情况下,只能配置一个 AIO 虚拟处理器,以及为每个不使用 KAIO 的文件块配置两个额外 AIO 虚拟处理器。
如果使用了熟文件(即已缓冲的文件)并且使用 DIRECT_IO 配置参数启用了直接 I/O,那么您可以减少 AIO 虚拟处理器的数量。如果数据库服务器实现了 KAIO 并且启用了直接 I/O,那么数据库服务器将尝试使用 KAIO,这样您可能不需要多个 AIO 虚拟处理器。临时数据库空间不使用直接 I/O。如果您拥有临时数据库空间,那么您可能需要多个 AIO 虚拟处理器。
即使使用 DIRECT_IO 配置参数启用了直接 I/O,如果文件系统不支持直接 I/O 或 KAIO,那么您仍必须为每个不使用 KAIO 的活动数据库空间块分配两个额外的 AIO 虚拟处理器。
分配 AIO 虚拟处理器的目的在于分配足够多的虚拟处理器以使 I/O 请求队列的长度保持简短(即队列中的 I/O 请求尽可能地少)。 如果 I/O 请求队列始终保持较短,那么会在 I/O 请求出现的同时对其进行处理。onstat -g ioq 命令可用于监视 AIO 虚拟处理器的 I/O 队列长度。
分配足够的 AIO VP 以适应 I/O 请求的峰值数。通常情况下,分配几个额外的 AIO VP 有益无害。要在数据库服务器处于联机方式时启动附加的 AIO VP,请使用 onmode -p 命令。 在联机方式中,您无法删除 AIO VP。