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

简介:

标签

PostgreSQL , iops 飙升 , freeze 风暴


背景

在使用PG 9.6以前的版本时,freeze带来的IOPS影响较大,体现在数据文件读写、WAL日志大量产生。

原因是9.6以前的版本,当表的年龄达到一定的阈值后(全局参数或表级参数控制),会触发freeze的动作,扫描全表,同时有可能(如果BLOCK被FREEZE的话)产生WAL(越大的表,带来的IO越大)。

freeze相关参数如下:

#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   

那么当数据库突发IO时,如何知道是什么产生的?

1、查看日志

配置了log_autovacuum_min_duration=0时,所有的auto vacuum在日志中都会被记录下来。可以观察日志。

$PGDATA/log   
   
或   
   
$PGDATA/pg_log   

2、查看统计表,统计表记录了最后一次被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内容,看看是否有大量的freeze record,方法参考如下:

《PostgreSQL 使用pg_xlogdump找到误操作事务号》

《PostgreSQL xlog dump - pg_xlogdump 源码讲解》

预防freeze风暴

《PostgreSQL的"天气预报" - 如何预测Freeze IO风暴》

《PostgreSQL 大表自动 freeze 优化思路》

内核改进

《PostgreSQL 9.6 vacuum freeze大幅性能提升 代码浅析》

参考

《如何追溯 PostgreSQL 慢查询当时的状态》

《PostgreSQL的"天气预报" - 如何预测Freeze IO风暴》

《PostgreSQL 大表自动 freeze 优化思路》

《PostgreSQL 9.6 vacuum freeze大幅性能提升 代码浅析》

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍如何基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
15天前
|
Linux 开发工具 iOS开发
Codex保姆级教程(下载+安装+登录+使用,含所有版本,2026最新)
Codex是OpenAI推出的开源AI编程智能体,本地运行,可理解整个代码库,支持自然语言指令改代码、执行命令、跑测试、修Bug,兼容Win/macOS/Linux。(239字)
6360 45
|
3天前
|
云安全 人工智能 安全
|
15天前
|
JavaScript API iOS开发
DeepSeek Harness下载、安装、配置一篇搞定(2026整理,送常用插件)
DeepSeek Harness(DSH)是DeepSeek于2026年开源的MIT协议AI Agent框架,支持插件化组装模型、工具、沙箱与UI,兼容主流大模型。本文提供免Node.js的桌面端安装包(Win/macOS),含详细图文教程及热门插件推荐。
5202 61
|
9天前
|
Linux 开发工具 iOS开发
2026最新codex下载安装保姆级使用教程(下载+安装+登录+使用,含所有历史版本)
本文详解OpenAI Codex国内快速上手指南:提供Win/macOS/Linux全平台免安装包、npm/Homebrew等多方式安装、账号/API Key双登录、简体中文切换,覆盖下载、安装、汉化、使用及高频避坑(如微软商店失败、npm超时等),10分钟即可跑通。
2560 6
|
2天前
|
JSON 前端开发 API
阿里云最新Qwen4-Max大模型介绍:模型定位、特征、能力、适用场景解析
2026 年 11 月 11 日,阿里发布第四代旗舰模型Qwen4-Max预览版,首发千问 AI 平台 Token Plan,并同步接入千问办公、Qoder 等入口。该版本聚焦知识理解、世界感知、编程与 Agentic 四项升级,主打复杂编程、专业办公、前端设计与专业软件操作。预览期至 11 月 25 日 24:00,到期后模型标识下线;限时 2 折、新用户再享 5 折,最低 1 折可体验。
|
7天前
|
人工智能 安全 API
DeepSeek Harness下载、安装、配置一篇搞定(2026整理,送常用插件)
DeepSeek Harness(dsh)是DeepSeek AI于2026年开源的轻量级Agent运行框架,基于Cordis内核,践行“一切皆插件”理念。支持Web/桌面双端,开箱即用;内置多模型接入、丰富插件生态(超3.5万),适配编程、办公、创作等场景。(239字)
1631 1