Chuyển đến nội dung chính

第 20 課:POSTGRESQL 監控、調校與第二天操作

在 Kubernetes 上設定 pg_stat_statements、Prometheus 指標、Grafana 儀表板、真空調優、連接池最佳化和 PostgreSQL HA 的 Day-2 操作。

🔒 DevSecOps — 第 20 課 第 20 課:POSTGRESQL 監控、調校與 第 2 天操作

使用 Kubernetes HA 在本地部署微服務

第 4 部分:PostgreSQL HA 與 Patroni & CloudNativePG

xdev.asia

🎯 課程目標__HTMLTAG_68___
  • ✅ 設定 pg_stat_statements 用於查詢分析
  • ✅ 為 PostgreSQL 部署 Prometheus 監控
  • ✅ 為 PG 指標建立 Grafana 儀表板
  • ✅ 真空調節與自動真空配置
  • ✅ 使用 PgBouncer 進行連線池最佳化
  • ✅ 第 2 天操作:擴充、次要升級、主要升級

第 1 部分:pg_stat_statements — 查詢分析

1.1。啟用 pg_stat_statements

___程式碼區塊_0___

1.2。最慢的查詢

___程式碼區塊_1___

第 2 部分:普羅米修斯監控

2.1。 CloudNativePG 內建指標

___程式碼區塊_2___

2.2。 Prometheus 的 PodMonitor

___程式碼區塊_3___

2.3。自訂指標查詢

___程式碼區塊_4___

第 3 部分:GRAFANA 儀表板

3.1。導入儀表板

___程式碼區塊_5___

第 4 部分:真空調諧

4.1。自動清理配置

___程式碼區塊_6___

4.2。針對大型表的手動 VACUUM

___程式碼區塊_7___

第 5 部分:PGBOUNCER 調整

程式碼區塊_8


第 6 部分:第 2 天操作

6.1。規模副本

___程式碼區塊_9___

6.2。小版升級(例如 16.3 → 16.4)

___程式碼區塊_10___

6.3。主要版本升級(例如,16 → 17)

___程式碼區塊_11___

💡 重點

    ___HTMLTAG_127__HTMLTAG_128___pg_stat_statements:對於查詢效能分析至關重要 ___HTMLTAG_131__HTMLTAG_132___Prometheus + Grafana:即時監控、延遲/連線警報 ___HTMLTAG_135__HTMLTAG_136___真空調整:減少大型表的scale_factor(5%而不是20%) ___HTMLTAG_139__HTMLTAG_140___PgBouncer:事務池,依照工作負載調整default_pool_size ___HTMLTAG_143__HTMLTAG_144___小升級:滾動更新零停機 ___HTMLTAG_147__HTMLTAG_148___重大升級:邏輯複製策略

🎯 練習

練習 1:表現基線

  • 啟用 pg_stat_statements
  • 執行 pgbench 工作負載
  • 辨識前 5 個最慢的查詢__HTMLTAG_163___
  • 設定 Grafana 儀表板

練習 2:真空實驗室

  • 建立表,插入 1M 行,刪除 500K
  • 觀察死元組,觸發VACUUM__HTMLTAG_173___
  • 比較自動真空與手動真空計時__HTMLTAG_175___

📚 下一篇文章

在第21課:Kubernetes上的RabbitMQ HA叢集中,我們將部署HA訊息佇列用於微服務通訊。