2017-06-04 48 views
0

我一直在觀察,我的PostgreSQL只讀副本顯示覆制滯後的週期性延遲。滯後時間似乎長達30-40分鐘,然後自動下降到0.與CPU Utilization有關聯,但它遠不及CPU限制。定期RDS Postgresql複製延遲

  • 閱讀流量來自一個名爲DOMO的報告軟件。 DOMO會定期將大量的數據全部複製到倉庫中。

這是AWS Cloudwatch圖。紅線在幾秒鐘內顯示Replication Lag。藍線顯示CPU負載。

滯後VS CPU Periodic replication lag

滯後VS網絡中斷enter image description here

滯後VS讀取IOPS enter image description here

滯後VS寫入IOPS enter image description here

雲:Amazon RDS

實例大小:db.m3.2xlarge

PostgreSQL的版本:9.3

Postgres的設置:

共享緩衝器(由RDS設置)= 7.3 GB(956978 * 8KB)

更新

  • 嘗試設置Shared Buffers到1GB(沒有幫助)

更新六月,2017年5

  • 我創建了一個新的分支副本爲我的數據庫,並指出報告軟件(DOMO)。現在,新實例中的情況看起來很穩定。現在沒有讀取流量的舊副本也是穩定的。開始懷疑某種類型的AWS配置問題或其他問題需要執行數據庫中剩餘的工件(真空?)。

回答

0

RDS只讀副本滯後指標在沒有任何要複製時未更新。如果master數據庫沒有複製的更改,則複製只會在強制時間更新(即所謂的檢查點) - 從預先寫入日誌到表的數據的定期同步。

這會使圖形看起來像上面那樣。要查看真實的圖形數據,您必須在主設備上生成一些流量,例如每分鐘甚至每秒更新一些特殊序列 - 取決於您需要多少分辨率。

此外,副本圖形上主副本和網絡利用率的WAL生成日誌會很有趣 - 備選解釋是副本需要處理的流量(IO或網絡)過多,並且只能在流量停止。

+0

我已經證實,發生在主站發生更多寫操作時。附加網絡圖。我們將此副本附加到名爲DOMO的數據倉庫工具,該工具定期將整個表複製到其數據存儲中。 –

+0

我也檢查過slave上的replay_location遠遠落後於master。 警告:流:MASTER:7543524458904重播:7543440487376 :: REPLAY 83971528bytes BEHIND(00:22:38.922488秒) –