【PostgreSQL 创新营】第七课:PostgreSQL性能优化和体系化运维 答疑汇总

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS PostgreSQL Serverless,0.5-4RCU 50GB 3个月
推荐场景:
对影评进行热评分析
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
简介: 【PostgreSQL 创新营】第七课:PostgreSQL性能优化和体系化运维 答疑汇总

Q1:购买的rds实例可以ssh到实例所在服务器吗? 需要su postgres的那些指令该如何执行?例如pgbench.谢谢
不能。云产品中MyBase支持
可以在其他服务器上配置PG安装包,使用pgbench -h 指定PG RDS实例地址

Q2:一个数据库连接init有多大? 这个怎么查看呢?有时候通过htop的res看到一个conn能到3-4g 这个有什么办法避免吗?
1)初始化连接内存大小一般与页表大小、会话级别的内存分配参数有关
2)通常出现这种情况以及规避方式有:
2.1 长事务访问过较多的元数据,元数据缓存在cache中未释放
规避方式:连接池设置合理的生命周期
2.2 分区表分区数过多,子表元数据缓存
2.3 多租户模式

Q3:数据库年龄怎么理解
1)PG事务txid上限是2^32。每执行一个事务操作,txid会加一(部分衍生品将32位优化成64位)
2)超过年龄上限会导致事务id回卷问题,从而影响数据库业务
3)建议单独为大表设置合理的freeze参数

Q4:PG如何使用内存表(不是临时表)。库存如何在并发100的情况下实时扣减。
1)PG中无内存表,可以关注是否有这方面的接口
2)秒杀场景可见:
https://github.com/digoal/blog/blob/master/201801/20180105_03.md
https://github.com/digoal/blog/blob/master/201611/20161117_01.md

Q5:PG有无类似oracle spm的功能?可以自动绑定最优执行计划
没有。但可以借助pg_plan_advsr。关于这个问题可参考如下github内容:
https://github.com/digoal/blog/blob/master/201606/20160617_02.md

Q6:pg_stat_activity 中status是IDLE IN TRANSCATION 这个和IDLE有啥区别呢
1)idle、idle in transaction、idle in transaction (aborted)区别:
idle: 表示后端会话正在等待新的客户端命令
idle in transaction:后端会话处于事务中,但当前未执行查询(大量idle in transaction是危险的信号,可能导致数据库膨胀,在从库可能引发apply延迟)
idle in transaction (aborted): 后端会话处于事务中,且事务中的部分语句报错。
2)可以通过参数idle_in_transaction_session_timeout配置连接超时

Q7:pg有资源管理功能么?用来限制不通session对资源的使用情况
没有。可以结合cgroup
若期望这方面的功能,可以借鉴已实现该功能的PG衍生品代码/去德哥github许愿墙写下你的需求

Q8:pg数据页组织和MySQL的索引组织表对比有什么区别?风咏,应用如何选择最适合的db(mysql or pg),主要有哪些可参考的标准?
PG采用堆表,MySQL采用索引组织表
详见视频详解/github等

Q9:连接数设置太大对实际性能没有太大提高吧?
是的。只与真实连接有关系。
PG是进程模式,不断增加线程数并不会无限制提高数据库处理吞吐。一般吞吐的上限可能出现在2到4倍CPU核数之间

Q10:小学生,greenplum 6+ 与 pg 在oltp/olap 上区别,网上的介绍前后矛盾。
1)OLAP系统推荐使用GP
2)OLTP/重OLTP轻OLAP推荐使用PG。其中PG 13对混合模式进行了增强

Q11:陈亮,如果新上pg项目,当作数据中心来规划,有哪些注意的,版本用最新的吗?
1)推荐使用最新版本
2)建议规划时从业务架构、应用场景、高可用方案、读写分离、存储方案、监控与备份等方面着手

Q12:Crazyzhou008,物理内存>32G时,pg建议shared_buffer设置为8G,是不是跟pg的环形缓冲区也有关系(大表读取时pg使用环形缓冲区而不是缓冲池)?
1)环形缓冲区是共享内存中分配出来的临时缓冲区域,shared buffer pool属于共享内存的子区
2)建议shared_buffer设置为25%内存大小,大内存系统使用hugepage大页
3)Windows系统上shared_buffers的有用范围通常是64MB至512MB,设置过大也用不上
4)用huge page就可以大一点. 不过太大了也不一定好, 写入或更新过于频繁会增加bgwriter, checkpoint等负担, 无法合并IO. 交给OS层可以做IO合并.
5)PG可以结合OS cache使用, 因为PG的文件操作用的是buffer io接口 , 没有使用direct io.
WAL 日志可以用direct io(当没有配置standby时), 如果配置了standby也是buffer io, 因为写入后立即要读出来发给standby, 避免多次IO.
6)OS参数可详见:
https://github.com/digoal/blog/blob/master/201608/20160803_01.md
https://github.com/digoal/blog/blob/master/201507/20150730_01.md

Q13:GP两套集群 ,可以做主从吗?
建议使用分布式存储

Q14: 主备,逻辑复制支持ddl同步了吗?读写分离推荐物理复制还是逻辑复制
1)可以的,event trigger去实现
详见github:PostgreSQL 事件触发器 - DDL审计 , DDL逻辑复制 , 打造DDL统一管理入
https://github.com/digoal/blog/blob/master/201412/20141211_01.md
2)读写分离推荐物理复制,其中从库只读
若想针对部分表进行复制/有写入要求的,可以采用逻辑复制

Q15:pg有列存的引擎?做ap业务
1)PG有列式索引,通过插件实现列式存储引擎
2)混合性业务可以参考:
PostgreSQL 列存, 混合存储, 列存索引, 向量化存储, 混合索引 - OLTP OLAP OLXP HTAP 混合负载应用
https://github.com/digoal/blog/blob/master/201902/20190216_01.md

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
1月前
|
机器学习/深度学习 人工智能 运维
智能化运维:AI在IT管理中的创新应用
【7月更文挑战第15天】本文探讨了人工智能(AI)如何革新传统的IT运维模式,通过智能自动化、实时分析和预测性维护,显著提高运维效率和准确性。文章将深入分析AI技术在故障检测与解决、资源优化配置以及安全监控等方面的具体应用案例,并讨论实施AI时可能遇到的挑战和解决方案。
71 2
|
3月前
|
人工智能 运维 监控
SLS 智能运维 AI 基础模型创新
SLS 全新发布运维场景基础模型,覆盖 Log、Metric、Trace 等可观测数据场景,模型提供开箱即用的异常检测、自动标注、分类和根因分析等能力;根因分析算法千级异常请求秒级定位,生产中准确率达95%;同时支持人工辅助微调,提供人工标注、结果打标修正,模型根据人工反馈自动微调,提升场景准确率。
91243 1
|
关系型数据库 测试技术 分布式数据库
PolarDB | PostgreSQL 高并发队列处理业务的数据库性能优化实践
在电商业务中可能涉及这样的场景, 由于有上下游关系的存在, 1、用户下单后, 上下游厂商会在自己系统中生成一笔订单记录并反馈给对方, 2、在收到反馈订单后, 本地会先缓存反馈的订单记录队列, 3、然后后台再从缓存取出订单并进行处理. 如果是高并发的处理, 因为大家都按一个顺序获取, 容易产生热点, 可能遇到取出队列遇到锁冲突瓶颈、IO扫描浪费、CPU计算浪费的瓶颈. 以及在清除已处理订单后, 索引版本未及时清理导致的回表版本判断带来的IO浪费和CPU运算浪费瓶颈等. 本文将给出“队列处理业务的数据库性能优化”优化方法和demo演示. 性能提升10到20倍.
761 4
|
运维 Kubernetes 负载均衡
《企业运维之云上网络原理与实践》——第四章 负载均衡 ALB——负载均衡ALB:课前答疑(上)
《企业运维之云上网络原理与实践》——第四章 负载均衡 ALB——负载均衡ALB:课前答疑(上)
173 0
|
弹性计算 运维 负载均衡
《企业运维之云上网络原理与实践》——第四章 负载均衡 ALB——负载均衡ALB:课前答疑(下)
《企业运维之云上网络原理与实践》——第四章 负载均衡 ALB——负载均衡ALB:课前答疑(下)
171 0
|
人工智能 运维 监控
《生来创新-金融级云原生》——2 金融级云原生的“新标准和新蓝图”——2.2 定义金融云原生的10大新要素——要素10:业务连续性和数智化运维
《生来创新-金融级云原生》——2 金融级云原生的“新标准和新蓝图”——2.2 定义金融云原生的10大新要素——要素10:业务连续性和数智化运维
138 0
|
存储 缓存 关系型数据库
|
存储 SQL 并行计算
PolarDB for PostgreSQL 开源必读手册-开源PolarDB for PostgreSQL架构介绍(中)
PolarDB for PostgreSQL 开源必读手册-开源PolarDB for PostgreSQL架构介绍
383 0
|
存储 算法 安全
PolarDB for PostgreSQL 开源必读手册-开源PolarDB for PostgreSQL架构介绍(下)
PolarDB for PostgreSQL 开源必读手册-开源PolarDB for PostgreSQL架构介绍
349 0
|
SQL 运维 监控
《阿里云认证的解析与实战-数据仓库ACP认证》——云原生数据仓库AnalyticDB PostgreSQL版功能演示(上)——七、常用运维SQL
《阿里云认证的解析与实战-数据仓库ACP认证》——云原生数据仓库AnalyticDB PostgreSQL版功能演示(上)——七、常用运维SQL

相关产品

  • 云原生数据库 PolarDB
  • 云数据库 RDS PostgreSQL 版