53.2. pg_aios #

В представлении pg_aios перечисляются все используемые дескрипторы Асинхронный I/O. Дескриптор ввода-вывода ссылается на операцию ввода-вывода в состоянии подготовки, выполнения или завершения. pg_aios содержит одну строку для каждого дескриптора ввода-вывода.

Это представление прежде всего полезно для разработчиков PostgreSQL, но может также пригодиться при настройке PostgreSQL.

Таблица 53.2. Столбцы pg_aios

Тип столбца

Описание

pid int4

Идентификатор серверного процесса (PID), который инициировал операцию ввода-вывода.

io_id int4

Идентификатор дескриптора ввода-вывода. Дескрипторы используются повторно после завершения операции ввода-вывода (или если дескриптор освобождается до начала операции). При повторном использовании значение pg_aios.io_generation увеличивается.

io_generation int8

Счётчик создания дескриптора ввода-вывода.

state text

Состояние дескриптора ввода-вывода:

  • HANDED_OUT — ссылка на дескриптор есть в коде, но ещё не используется

  • DEFINED — известна информация, необходимая для выполнения

  • STAGED — операция готова к выполнению

  • SUBMITTED — операция назначена для выполнения

  • COMPLETED_IO — выполнение завершено, но результат ещё не обработан

  • COMPLETED_SHARED — завершена общая обработка результата операции

  • COMPLETED_LOCAL — завершена локальная обработка результата операции обслуживающим процессом

operation text

Операция, выполненная с помощью дескриптора ввода-вывода:

  • invalid — ещё не известна

  • readv — векторное чтение

  • writev — векторная запись

off int8

Смещение операции ввода-вывода.

length int8

Объём операции ввода-вывода.

target text

Какой тип объекта является целью операции ввода-вывода:

  • smgr — ввод-вывод для отношений

handle_data_len int2

Объём данных, связанных с операцией ввода-вывода. Для операций ввода-вывода в/из shared_buffers и temp_buffers это значение указывает на количество буферов, с которыми работает операция.

raw_result int4

Низкоуровневый результат операции ввода-вывода или NULL, если операция ещё не завершена.

result text

Высокоуровневый результат операции ввода-вывода:

  • UNKNOWN означает, что результат операции ещё не известен.

  • OK означает, что операция ввода-вывода успешно завершена.

  • PARTIAL означает, что операция ввода-вывода завершена без ошибок, но не все данные были обработаны. Как правило, вызывающему коду потребуется повторить попытку и выполнить оставшуюся работу в рамках отдельной операции ввода-вывода.

  • WARNING означает, что операция ввода-вывода завершилась без ошибок, но при её выполнении было сгенерировано предупреждение (например, при обнаружении повреждённого буфера, если включён параметр zero_damaged_pages).

  • ERROR означает, что операция ввода-вывода завершилась ошибкой.

target_desc text

Описание цели операции ввода-вывода.

f_sync bool

Флаг, показывающий, синхронно ли выполняется операция ввода-вывода.

f_localmem bool

Флаг, показывающий, ссылается ли операция ввода-вывода на локальную память процесса.

f_buffered bool

Флаг, показывающий, является ли операция ввода-вывода с буферизацией.


Представление pg_aios доступно только для чтения.

По умолчанию представление pg_aios могут читать только суперпользователи или пользователи с правами роли pg_read_all_stats.