debug_io_direct 是一个实验性的 配置参数,用于请求内核最小化对关系数据和 WAL 文件缓存的影响。
debug_io_direct 在 PostgreSQL 16 中添加。
用法
重要提示:debug_io_direct 是一项实验性功能,不应在生产环境系统中使用。
debug_io_direct 可以包含一个或多个以下值,用逗号分隔:
data用于主数据文件wal用于 WAL 文件wal_init用于 WAL 文件在初始分配时。
如果通过设置以上一个或多个值来启用 debug_io_direct,则会使用以下文件选项之一:
O_DIRECT(大多数类 Unix 系统)F_NOCACHE(macOS)FILE_FLAG_NO_BUFFERING(Windows)。
请注意,某些系统可能不支持直接 I/O,在这种情况下,为 debug_io_direct 指定的任何值都可能被拒绝,或者在启动时导致错误。
默认值
debug_io_direct 的默认值为:''(空字符串)
按 PostgreSQL 版本详细信息
debug_io_direct (PostgreSQL 19)
| 设置 | |
| 单位 | |
| 类别 | 开发者选项 |
| 简短描述 | 使用直接 I/O 进行文件访问。 |
| 扩展描述 | 空字符串禁用直接 I/O。 |
| 上下文 | postmaster |
| 变量类型 | string |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | |
| 重置值 | |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
debug_io_direct (PostgreSQL 18)
| 设置 | |
| 单位 | |
| 类别 | 开发者选项 |
| 简短描述 | 使用直接 I/O 进行文件访问。 |
| 扩展描述 | 空字符串禁用直接 I/O。 |
| 上下文 | postmaster |
| 变量类型 | string |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | |
| 重置值 | |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
debug_io_direct (PostgreSQL 17)
| 设置 | |
| 单位 | |
| 类别 | 开发者选项 |
| 简短描述 | 使用直接 I/O 进行文件访问。 |
| 扩展描述 | |
| 上下文 | postmaster |
| 变量类型 | string |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | |
| 重置值 | |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
debug_io_direct (PostgreSQL 16)
| 设置 | |
| 单位 | |
| 类别 | 开发者选项 |
| 简短描述 | 使用直接 I/O 进行文件访问。 |
| 扩展描述 | |
| 上下文 | postmaster |
| 变量类型 | string |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | |
| 重置值 | |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
变更历史
参考资料
- PostgreSQL 文档: debug_io_direct
