使用 DIRECT_IO 配置参数来控制用于 dbspace chunk 的熟文件直接 I/O。 该参数在 UNIX™ 平台上启用直接 I/O (绕过文件系统缓冲)或在 AIX® 操作系统上启 用并发 IO(绕过文件系统缓冲和不必要的写串行化。)
onconfig.std 值
DIRECT_IO 0
值
0 = 不使用直接 I/O 或并发 I/O
1 = 如果可以使用,则直接 I/O,绕过文件系统缓冲
2 = 在 AIX 操作系统上启用并发 I/O(并发 I/O 选项包括直接 I/O 和并发 I/O。)
生效
编辑 onconfig 文件并重启数据库服务器之后。
用法
直接 I/O 仅可用于 dbspace chunk,其文件系统支持页大小的直接 I/O。
通过使用直接 I/O,您能减少 AIO 虚拟处理器的数目。
如果启用直接 I/O,则使用文件系统支持的 KAIO(内核异步 I/O)。然而,如果设置环境 变量 KAIOOFF,则不使用 KAIO。当直接 IO 和 KAIO 都使用时,可减少 AIO 虚拟处 理器的数目。如果使用直接 IO,但不使用 KAIO,则不应减少 AIO 虚拟处理器的数目。 对于用作临时 dbspace chunk 的熟文件,GBase 8s 不使用直接或并发 I/O。
在 AIX 上,如果 GBase 8s 使用 chunk 的并发 I/O,则另一个程序(比如一个联机外部 备份程序)必须也使用并发 I/O。否则,文件打开操作将失败。
如果 GBase 8s 使用 chunk 的直接 I/O,且另一个程序试图不使用直接 I/O 来打开该 chunk,则打开操作正常成功,但可发生性能损失。之所以发生损失,是因为文件系统可能 试图确保每个打开操作查看相同的文件数据,或者通过在冲突打开操作期间根本不使用直 接 I/O,或者通过在每次直接 I/O 前清空文件系统高速缓存并在每次直接写之后使文件系 统高速缓存无效。
在 Windows™ 平台上使用 dbspace chunk 的直接 I/O,与 DIRECT_IO 配置参数的值无关。