日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

RDS PostgreSQL stats collector進程占用CPU和IO高導致慢SQL增多

問題描述

RDS PostgreSQL出現慢SQL增多的情況,經排查發現stats collector進程占用了較高的CPU和IO。

說明

在增強監控中,可以通過查看指標os.cpu_process.pgstat來監測stats collector進程的CPU占用情況。詳情請參見查看增強監控

問題原因

在RDS PostgreSQL 14及以下版本中,統計信息是通過stats collector進程寫入文件的,而autovacuum worker進程需要頻繁更新統計信息。首先,autovacuum worker進程會讀取統計信息,然后進行更新,并將更新后的信息發送給stats collector進程,由后者負責寫入。當autovacuum頻繁運行時,autovacuum workerstats collector都會占用較高的CPU和IO資源,導致實例中出現更多的慢SQL。此外,autovacuum清理死元組(dead tuple)的效率也會降低,從而進一步導致出現慢SQL。

在表特別多的實例中,更容易發生上述場景,因為隨著表的增多,統計信息的規模也會增大,從而導致統計信息的讀寫速度變慢。

解決方案

短期解決方案

  • 定期手動運行SQL命令:VACUUM FREEZE,以減少autovacuum運行的頻率。

  • 增加autovacuum_vacuum_scale_factorautovacuum_vacuum_insert_scale_factor等參數的值,以減少autovacuum運行的頻率。詳細操作請參見設置實例參數

  • 使用通用云盤提高IO吞吐量性能。ESSD云盤支持變更為通用云盤,詳情請參見ESSD云盤變更為通用云盤

長期解決方案

將RDS PostgreSQL的大版本升級至15版本及以上。RDS PostgreSQL 15及以上版本將統計信息放入了共享內存,并去掉了stats collector進程,避免對物理IO的占用。升級實例大版本請參見RDS PostgreSQL大版本升級

相關文檔