- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- PostgreSQL/解析/autovacuum へ行く。
- 1 (2019-06-02 (日) 07:59:22)
- 2 (2019-06-03 (月) 04:09:41)
autovacuum launcher †
- autovacuum workerは、autovacuum launcherによって起動される。
メモ backend/postmaster/autovacuum.c#AutoVacLauncherMain() - autovacuum_naptime / データベース数 のインターバルごとにautovacuum worker(autovacuum_max_works)が起動される。デフォルトでは、autovacuum_naptimeは1min、3つのworkerが起動される設定となっている。freeのworkerがいない場合は、workerは起動されない。
- autovacuum workerを起動するのは、Postmasterである。autovacuum launcherは、autovacuum対象のデータベースがあれば、PostmasterにSignalFlagsがPMSIGNAL_START_AUTOVAC_WORKERのシグナルSIGUSR1を送る。
メモ backend/postmaster/autovacuum.c#do_start_worker() - workerが次に起動する時間は、autovacuum_naptime / データベース数 で分散されている。statエントリを持たないデータベースは対象外となる。
メモ backend/postmaster/autovacuum.c#rebuild_database_list() - autovacuum workerは、autovacuumが実行された時間が最も古いデータベースに対して起動される。
- メモ backend/postmaster/autovacuum.c#do_start_worker()
- autovacuum_freeze_max_ageの世代を超えたデータベースがある場合は優先される。
- autovacuum workerを起動するのは、Postmasterである。autovacuum launcherは、autovacuum対象のデータベースがあれば、PostmasterにSignalFlagsがPMSIGNAL_START_AUTOVAC_WORKERのシグナルSIGUSR1を送る。