【DB吐槽大会】第40期 - PG 缺少qps计数器

简介: 大家好,这里是DB吐槽大会,第40期 - PG 缺少qps计数器

背景


1、产品的问题点

  • PG 缺少qps计数器

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

  • qps: 包括insert, update, select, delete.
  • 通常需要支持 nestloop、top选择(由于function 有内置sql的存在).

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

  • 通用

4、会导致什么问题?

  • 无法统计qps, 缺少展现业务吞吐的指标. 其他指标无法直接反映业务吞吐.
  • CPU负载、IOPS无法体现业务指标. 不能说负载高业务吞吐就高(有可能是SQL没有优化导致)
  • TPS可以, 但是只算commit、rollback两个维度, 并且不包括只读的事务, 体现维度较弱. (纯粹的查询无法通过tps反映)
  • 索引扫描了多少条目、表扫描了多少行数、插入行数、删除行数、更新行数.

《PostgreSQL tuples_returned , tuples_fetched 说明》

 blks_read                | bigint                   |           |          |   
 blks_hit                 | bigint                   |           |          |   
 tup_returned             | bigint                   |           |          |   
 tup_fetched              | bigint                   |           |          |   
 tup_inserted             | bigint                   |           |          |   
 tup_updated              | bigint                   |           |          |   
 tup_deleted  

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

  • 通过 pg_stat_statements 的calls进行计算, 但是无法完美计算qps, 因为记录的sql容量有限(参数控制)
  • 或者自己写个插件,改一下pg_stat_statement也能支持qps.

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

  • qps监控指标的获取非常麻烦, 而且不准确, 而且可能重复统计, 例如function和sql. 同时区分 insert,update,delete,select 需要做文本匹配, 有性能损耗.

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

  • 建议内核层支持qps指标. 在pg_stat_database中支持insert,update,delete,select各项指标.
  • 支持到database特别有意义, 因为很多saas类或者dbaas类业务每个database都对应一个独立的客户, 能反应更加精准意义的业务指标, 有业务价值的功能就是好功能.



相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍如何基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
Ubuntu 机器人 API
ubuntu 16.04+ros kinetic + gazebo+ aws-robotics 室内环境导航仿真
ubuntu 16.04+ros kinetic + gazebo+ aws-robotics 室内环境导航仿真
1250 0
|
2月前
|
人工智能 弹性计算 Cloud Native
2026阿里云优惠活动与政策解析:省钱选购云服务器和AI产品指南与常见问题解答
2026年阿里云推出多项优惠活动助力用户降本上云。入门级轻量应用服务器低至38元/年,每天10点、15点限时抢购;经济型e实例99元/年、通用型u1实例199元/年,均享新购续费同价,有效期至2027年3月。企业级u2i实例3折起,第九代c9i/g9i/r9i实例低至6.4折。用户还可叠加AI焕新礼包(最高1728元)、学生300元无门槛券、百炼先用后返最高200元等优惠券,大模型按量付费最高可享5.3折,HappyHorse视频生成限时6折。组合购方面,加1元即可获域名+ECS+建站套餐,首年仅102元起。新老用户均可通过合理搭配实现高性价比上云。
|
存储 关系型数据库 MySQL
【赵渝强老师】OceanBase数据库从零开始:MySQL模式
《OceanBase数据库从零开始:MySQL模式》是一门包含11章的课程,涵盖OceanBase分布式数据库的核心内容。从体系架构、安装部署到租户管理、用户安全,再到数据库对象操作、事务与锁机制,以及应用程序开发、备份恢复、数据迁移等方面进行详细讲解。此外,还涉及连接路由管理和监控诊断等高级主题,帮助学员全面掌握OceanBase数据库的使用与管理。
688 5
|
SQL Oracle 关系型数据库
OceanBase数据库
OceanBase数据库
1272 1
|
Kubernetes 异构计算 容器
Kubelet之Topology Manager分析
Topology Manager是kubelet的一个组件,在kubernetes 1.16加入,而kubernetes 1.18中该feature变为beta版。本篇文档将分析Topology Manager的具体工作原理。1.为什么需要Topology Manager现代计算机的CPU架构多采用NUMA(Non-Uniform Memory Access,非统一内存)架构。NUMA就是将cpu
5369 0
布谷直播App系统源码开发之后台管理功能详解
直播系统开发搭建管理后台功能详解!
|
存储 关系型数据库 Java
postgresql清理表空间
postgresql清理表空间
820 0
|
JavaScript 前端开发 Java
解决跨域问题大集合:vue-cli项目 和 java/springboot(6种方式) 两端解决(完美解决)
这篇文章详细介绍了如何在前端Vue项目和后端Spring Boot项目中通过多种方式解决跨域问题。
1555 1
解决跨域问题大集合:vue-cli项目 和 java/springboot(6种方式) 两端解决(完美解决)
|
编解码
RTP 包格式 详细解析
H.264 视频 RTP 负载格式 1. 网络抽象层单元类型 (NALU) NALU 头由一个字节组成, 它的语法如下:       +---------------+      |0|1|2|3|4|5|6|7|      +-+-+-+-+-+-+-+-+      |F|NRI|  Type   |      +---------------+ F: 1 个比特.
1551 0
|
关系型数据库 MySQL 数据安全/隐私保护
Docker 安装 MySQL5.7 和 MySQL8
Docker 安装 MySQL5.7 和 MySQL8
1309 0