2025年9月25日: PostgreSQL 18 发布!
支持的版本:当前 (18)
开发版本:devel

53.2. pg_aios #

pg_aios 视图列出了所有当前正在使用的异步 I/O 句柄。I/O 句柄用于引用正在准备、执行或正在完成中的 I/O 操作。pg_aios 包含每个 I/O 句柄的一行。

此视图主要对 PostgreSQL 的开发人员有用,但在调整 PostgreSQL 时也可能有用。

表 53.2. pg_aios

列 类型

描述

pid int4

发出此 I/O 的服务器进程的进程 ID。

io_id int4

I/O 句柄的标识符。句柄在 I/O 完成(或在 I/O 开始前释放句柄)后会被重新使用。在重新使用时,pg_aios.io_generation 会递增。

io_generation int8

I/O 句柄的代(generation)。

state text

I/O 句柄的状态

  • HANDED_OUT,由代码引用但尚未使用的

  • DEFINED,执行所需的信息已知

  • STAGED,准备好执行

  • SUBMITTED,已提交执行

  • COMPLETED_IO,已完成,但结果尚未处理

  • COMPLETED_SHARED,共享完成处理已完成

  • COMPLETED_LOCAL,后端本地完成处理已完成

operation text

使用 I/O 句柄执行的操作

  • invalid,尚不确定

  • readv,一个向量化读取

  • writev,一个向量化写入

off int8

I/O 操作的偏移量。

length int8

I/O 操作的长度。

target text

I/O 操作的目标对象类型

  • smgr,对关系(relations)的 I/O

handle_data_len int2

与 I/O 操作关联的数据长度。对于到/从 shared_bufferstemp_buffers 的 I/O,这表示 I/O 操作的缓冲区数量。

raw_result int4

I/O 操作的底层结果,如果操作尚未完成则为 NULL。

result text

I/O 操作的高层结果

  • UNKNOWN 表示操作的结果尚不确定。

  • OK 表示 I/O 已成功完成。

  • PARTIAL 表示 I/O 已完成但未出现错误,但未处理所有数据。通常调用者需要重试并在单独的 I/O 中执行剩余工作。

  • WARNING 表示 I/O 已完成但未出现错误,但 I/O 的执行触发了警告。例如,当启用 zero_damaged_pages 时遇到损坏的缓冲区。

  • ERROR 表示 I/O 由于错误而失败。

target_desc text

I/O 操作的目标描述。

f_sync bool

指示 I/O 是否同步执行的标志。

f_localmem bool

指示 I/O 是否引用进程本地内存的标志。

f_buffered bool

指示 I/O 是否为缓冲 I/O 的标志。


pg_aios 视图是只读的。

默认情况下,只有超级用户或拥有 pg_read_all_stats 角色特权的角色才能读取 pg_aios 视图。

提交更正

如果您在文档中看到任何不正确、与您对特定功能的体验不符或需要进一步说明的内容,请使用此表单来报告文档问题。