メモリ

メモリモデル

PostgreSQLは起動時に、データ処理の効率化と信頼性向上のために、共有メモリ上に3つのメモリ領域を確保する。
バックエンドプロセス毎にも、ソートメモリ領域(sort_mem)とVACUUMメモリ領域を確保する。

postgres_memory.png

共有メモリのメモリ領域

  1. 共有バッファ(shared buffer) 更新や検索などのデータ操作時に、データを読み込む領域。キャッシュとしての機能。
  2. WALバッファ(WAL buffer) トランザクションログを保存する機構(WAL:Write Ahead Logging)をバッファするためのもの。
  3. 空き領域アップ(Free Space Map) 不要になったデータ領域を記録する。

バックエンドプロセスのメモリ領域

バックエンドプロセス毎に、ソートメモリ領域(sort_mem)とVACUUMメモリ領域(vacuum_mem)を確保する。
常時確保されているわけではなく、動的に確保される。それぞれの作業時に確保され、実行後解放される。

  1. ソートメモリ領域(sort_mem) プランナが問い合わせ実行計画を作成するときに使う。
    大きなテーブルを処理する場合には、このメモリ領域を大きく設定する必要がある。
  2. VACUUMメモリ領域(vacuum_mem) VACUUM処理実行時に一時的に確保するメモリ領域。

:PostgreSQL


添付ファイル: filepostgres_memory.png 590件 [詳細] filePostgreSQLメモリモデル.ppt 182件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-01-28 (金) 21:32:54 (2550d)