PostgreSQL10.0preview功能增強-動態檢視pg_stat_activity新增資料庫管理程式資訊

德哥發表於2017-03-31

標籤

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檢視的功能,增加了一個程式型別欄位,所有程式的資訊都會被展示。

方便管理員觀察資料庫的執行狀態。

+    <row>  
+     <entry><structfield>backend_type</structfield></entry>  
+     <entry><type>text</type></entry>  
+     <entry>Type of current backend. Possible types are   
+      <literal>autovacuum launcher</>, <literal>autovacuum worker</>,  
+      <literal>background worker</>, <literal>background writer</>,  
+      <literal>client backend</>, <literal>checkpointer</>,  
+      <literal>startup</>, <literal>walreceiver</>,  
+      <literal>walsender</> and <literal>walwriter</>.  
+     </entry>  
+    </row>  

patch資訊如下

Show more processes in pg_stat_activity.  
  
Previously, auxiliary processes and background workers not connected  
to a database (such as the logical replication launcher) weren`t  
shown.  Include them, so that we can see the associated wait state  
information.  Add a new column to identify the processes type, so that  
people can filter them out easily using SQL if they wish.  
  
Before this patch was written, there was discussion about whether we  
should expose this information in a separate view, so as to avoid  
contaminating pg_stat_activity with things people might not want to  
see.  But putting everything in pg_stat_activity was a more popular  
choice, so that`s what the patch does.  
  
Kuntal Ghosh, reviewed by Amit Langote and Michael Paquier.  Some  
revisions and bug fixes by me.  
  
Discussion: http://postgr.es/m/CA+TgmoYES5nhkEGw9nZXU8_FhA8XEm8NTm3-SO+3ML1B81Hkww@mail.gmail.com         

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

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

參考

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


相關文章