天天看點

PostgreSQL 10.0 preview 功能增強 - 動态視圖pg_stat_activity新增資料庫管理程序資訊

postgresql , 10.0 , pg_stat_activity , 管理程序 , 背景程序 , 工作程序 , 并行計算程序

postgresql為程序模型,啟動時、啟動後會fork一些管理程序,以及使用者連接配接時會産生使用者的服侍程序。

例如

1. postmaster,負責監聽

2. startup程序,負責recovery

3. logger, 負責寫日志

4. shared buffer writer,負責通過lru算法刷髒頁,持久化資料檔案

5. wal buffer writer,負責将wal寫入wal日志檔案

6. checkpointer,負責檢查點任務

7. stats process,負責收集統計資訊,更新計數器計數(query 消耗資源統計、表插入記錄數、更新記錄數、删除記錄數、deadtuple 等等)。

8. autovacuum launcher,負責監控表的年齡,垃圾比例,觸動門檻值時喚醒vacuum worker進行垃圾回收,更新表的統計資訊(用于執行計劃成本計算的統計資訊,pg_stats)。

9. autovacuum worker,自動垃圾回收的工作程序。

10. 并行計算worker process,當執行并行計算任務時的工作程序。

11. wal sender,作為上遊節點時,流複制消息發送程序。

12. wal receiver,作為下遊節點是,流複制消息接收程序。

13. 其他worker process,其他插件開發的工作程序。

14. user backend process,使用者程序。

以前的版本,資料庫的管理程序都不會被展示出來,10.0擴充了pg_stat_activity視圖的功能,增加了一個程序類型字段,所有程序的資訊都會被展示。

友善管理者觀察資料庫的運作狀态。

patch資訊如下

這個patch的讨論,詳見郵件組,本文末尾url。

postgresql社群的作風非常嚴謹,一個patch可能在郵件組中讨論幾個月甚至幾年,根據大家的意見反複的修正,patch合并到master已經非常成熟,是以postgresql的穩定性也是遠近聞名的。

<a href="https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=fc70a4b0df38bda6a13941f1581f25fbb643c7f3">https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=fc70a4b0df38bda6a13941f1581f25fbb643c7f3</a>