他のバージョンの文書 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

53.2. pg_aios #

pg_aiosビューは、現在使用中のすべてのAsynchronous I/O【非同期I/Oハンドルを列挙します。 I/Oハンドルは、準備中、実行中、または完了処理中のI/O操作を参照するために使用されます。 pg_aiosには、各I/Oハンドルごとに1つの行が含まれます。

このビューは、主に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ハンドルの世代。

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、リレーションに対する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はエラーなく完了したが、IOの実行により警告が発生したことを意味します。 たとえば、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_aiosビューはスーパーユーザか、pg_read_all_statsロールの権限を持つロールだけが読み取りできます。