日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Freeze 风暴导致的IOPS飙升 - 追溯与解法

發(fā)布時間:2025/3/21 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Freeze 风暴导致的IOPS飙升 - 追溯与解法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

標簽

PostgreSQL , iops 飆升 , freeze 風暴


背景

在使用PG 9.6以前的版本時,freeze帶來的IOPS影響較大,體現(xiàn)在數(shù)據(jù)文件讀寫、WAL日志大量產(chǎn)生。

原因是9.6以前的版本,當表的年齡達到一定的閾值后(全局參數(shù)或表級參數(shù)控制),會觸發(fā)freeze的動作,掃描全表,同時有可能(如果BLOCK被FREEZE的話)產(chǎn)生WAL(越大的表,帶來的IO越大)。

freeze相關參數(shù)如下:

#autovacuum_freeze_max_age = 200000000 # maximum XID age before forced vacuum # (change requires restart) #autovacuum_multixact_freeze_max_age = 400000000 # maximum multixact age # before forced vacuum # (change requires restart) #vacuum_freeze_min_age = 50000000 #vacuum_freeze_table_age = 150000000 #vacuum_multixact_freeze_min_age = 5000000 #vacuum_multixact_freeze_table_age = 150000000 log_autovacuum_min_duration=0

那么當數(shù)據(jù)庫突發(fā)IO時,如何知道是什么產(chǎn)生的?

1、查看日志

配置了log_autovacuum_min_duration=0時,所有的auto vacuum在日志中都會被記錄下來。可以觀察日志。

$PGDATA/log 或 $PGDATA/pg_log

2、查看統(tǒng)計表,統(tǒng)計表記錄了最后一次被VACUUM的時間。

select age(a.relfrozenxid), last_autovacuum,last_vacuum,schemaname,a.relname,pg_size_pretty(pg_total_relation_size(relid)) from pg_class a, pg_stat_all_tables b where a.oid=b.relid and a.relkind in ('r', 'm') order by last_autovacuum nulls last;

可以大概推測。

age | last_autovacuum | last_vacuum | schemaname | relname | pg_size_pretty ----------+-----------------+-------------+--------------------+-------------------------+---------------- 46 | | | public | test | 5608 MB 43 | | | public | test1 | 5784 kB 80593695 | | | pg_catalog | pg_statistic | 248 kB 80593695 | | | pg_catalog | pg_type | 184 kB 39 | | | public | a | 48 kB 32 | | | public | b | 16 kB 80593695 | | | pg_catalog | pg_policy | 16 kB 22 | | | public | c | 48 kB 80593695 | | | pg_catalog | pg_authid | 72 kB ..............

3、分析WAL內(nèi)容,看看是否有大量的freeze record,方法參考如下:

《PostgreSQL 使用pg_xlogdump找到誤操作事務號》

《PostgreSQL xlog dump - pg_xlogdump 源碼講解》

預防freeze風暴

《PostgreSQL的"天氣預報" - 如何預測Freeze IO風暴》

《PostgreSQL 大表自動 freeze 優(yōu)化思路》

內(nèi)核改進

《PostgreSQL 9.6 vacuum freeze大幅性能提升 代碼淺析》

參考

《如何追溯 PostgreSQL 慢查詢當時的狀態(tài)》

《PostgreSQL的"天氣預報" - 如何預測Freeze IO風暴》

《PostgreSQL 大表自動 freeze 優(yōu)化思路》

《PostgreSQL 9.6 vacuum freeze大幅性能提升 代碼淺析》

總結

以上是生活随笔為你收集整理的Freeze 风暴导致的IOPS飙升 - 追溯与解法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。