【DB吐槽大会】第64期 - PG 里面的某些单核瓶颈

简介: 大家好,这里是DB吐槽大会,第64期 - PG 里面的某些单核瓶颈

背景


1、产品的问题点

  • PG 里面的某些单核瓶颈

2、问题点背后涉及的技术原理

  • 虽然PG已经支持并行计算, 大多数的SQL支持通过并行计算加速, 使得PG可以支撑OLAP类业务. 但是还存在一些单核场景.
  • WAL writer
  • vacuum 单表/单分区时
  • checkpointer
  • 崩溃recovery时

3、这个问题将影响哪些行业以及业务场景

  • 写压力较大的场景
  • 表比较大而且这个表的更新并发较高的场景, 例如互联网业务
  • ssd云盘使用网络通信, 相比本地盘存在先天缺陷, 虽然带宽大, 但是每次IO的延迟较高. 所以小IO或离散IO的场景(特别是数据库): 单线程打不满IO.

4、会导致什么问题?

  • 写压力特别大的场景, 可能有两个性能瓶颈, datalbock extend exclusive lock, 或者 wal insert exclusive lock.
  • 表比较大, 而且更新并发高时, 可能导致vacuum赶不上产生垃圾的速度, 产生恶性表膨胀.
  • shared buffer配置较大而且脏页较多时, checkpoint 周期可能会很长.
  • 如果检查点周期很长, 崩溃恢复过程中需要恢复的WAL文件数可能较多, 从而导致恢复时间漫长.

5、业务上应该如何避免这个坑

  • 拆库
  • 拆表或使用分区表, 解决vacuum 单表/单分区串行问题.
  • 配置更豪华的SSD存储, 一定程度缓解检查点慢或者恢复慢点问题

6、业务上避免这个坑牺牲了什么, 会引入什么新的问题

  • 需要调整业务, 可能涉及业务代码的修改.
  • 分区表会引入一定的性能问题. (PG大版本有改观, 性能影响几乎可以忽略不计, 一定要用大版本).

7、数据库未来产品迭代如何修复这个坑

  • 希望内核层面可以支持更多并行化的后台进程任务
  • 采用 wal 分区设计、减少锁冲突、同时支持更多的并行insert
  • 支持vacuum 单表/单分区/单索引内的并行(目前支持单表的多个索引的并行)
  • 支持并行的checkpoint, 支持并行的recovery



相关文章
|
PyTorch 算法框架/工具 Python
Python 量化投资(一):滑动均值、布林带、MACD、RSI、KDJ、OBV
Python 量化投资(一):滑动均值、布林带、MACD、RSI、KDJ、OBV
623 0
|
10月前
|
移动开发 JavaScript weex
UniApp开发的App在启动速度方面有哪些优势和劣势?
UniApp开发的App在启动速度方面有哪些优势和劣势?
694 137
|
5月前
|
人工智能 API 数据安全/隐私保护
10分钟搞定iMessage专属AI助手:OpenClaw无影云电脑部署全流程(含代码+FAQ)
iMessage作为苹果生态核心即时通讯工具,结合OpenClaw(Clawdbot)开源AI智能体框架,可快速搭建跨设备AI助手,实现消息自动回复、文本生成、系统控制等功能。本文基于2026年最新稳定版,从阿里云无影云电脑创建到iMessage环境配置,再到OpenClaw部署与大模型接入,全程提供可直接复制的代码命令,附带新手避坑指南,助力零基础用户快速完成搭建,打造高效智能通讯助手。
890 4
|
人工智能 并行计算 异构计算
MT-TransformerEngine:国产训练核弹!FP8+算子融合黑科技,Transformer训练速度飙升300%
MT-TransformerEngine 是摩尔线程开源的高效训练与推理优化框架,专为 Transformer 模型设计,通过算子融合、并行加速等技术显著提升训练效率,支持 FP8 混合精度训练,适用于 BERT、GPT 等大型模型。
927 10
MT-TransformerEngine:国产训练核弹!FP8+算子融合黑科技,Transformer训练速度飙升300%
|
API Android开发
微信虚拟摄像头模块,微信虚拟视频聊天,安卓虚拟摄像头插件
该实现包含虚拟摄像头服务核心、视频流生成和Android配置三个关键模块,使用Camera2
|
机器学习/深度学习 算法 机器人
强化学习:时间差分(TD)(SARSA算法和Q-Learning算法)(看不懂算我输专栏)——手把手教你入门强化学习(六)
本文介绍了时间差分法(TD)中的两种经典算法:SARSA和Q-Learning。二者均为无模型强化学习方法,通过与环境交互估算动作价值函数。SARSA是On-Policy算法,采用ε-greedy策略进行动作选择和评估;而Q-Learning为Off-Policy算法,评估时选取下一状态中估值最大的动作。相比动态规划和蒙特卡洛方法,TD算法结合了自举更新与样本更新的优势,实现边行动边学习。文章通过生动的例子解释了两者的差异,并提供了伪代码帮助理解。
1211 2
|
机器学习/深度学习 算法 数据挖掘
周志华《机器学习》西瓜书精炼版笔记来了!16 章完整版
周志华《机器学习》西瓜书精炼版笔记来了!16 章完整版
2825 0
周志华《机器学习》西瓜书精炼版笔记来了!16 章完整版
|
SQL 分布式计算 DataWorks
享受成本分析自由,体验账单数据订阅及查询分析功能
使用DataWorks进行账单数据订阅和查询分析,您可以有效地管理和可视化您的阿里云消费数据。本指南提供了详细步骤和示例,帮助您快速入门实现账单数据的高效分析。
1277 9
享受成本分析自由,体验账单数据订阅及查询分析功能
|
数据中心
配置案例 | CE交换机如何配置堆叠?
配置案例 | CE交换机如何配置堆叠?
766 2