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 檢視。

提交更正

如果您在文件中看到任何不正確、與您對特定功能的體驗不符或需要進一步說明的內容,請使用此表單來報告文件問題。