SAP BTP Hyperscaler PostgreSQL都有哪些Performance监控 (一)

前言

SAP BTP云平台中,除了自身的HANA数据库作为首选以外,它还支持PostgreSQL的整套服务,并以PaaS的形式提供给客户。你可以按照实例为单位进行购买申请不同标准规格的PG实例,然后构建自己的业务逻辑。Hyperscaler是这套产品或方案的代号名称。大概意为超大型有弹性、可扩展可伸缩。

SAP BTP本身并不对PostgreSQL进行深度定制,只是对原始的来自AWS、Azure、GCP甚至AC (Ali Cloud)的PostgreSQL RDS做了进一步的抽象和整体集成,让用户对PG的管理更能自动化,降低使用难度,并且力图达到较好的SLA。

那么它都有哪些有用的性能监控指标呢?

分析介绍

1、Hyperscaler PostgreSQL的服务规格

SAP BTP云平台上的监控这一块,采取了与dynatrace全面集成的一体化方案,数据库这一块基本上也是如此。

cf marketplace -s postgresql-db
Getting service plan information for service postgresql-db as my.user@*.com...
OKservice plan   description                                            free or paid
development    PostgreSQL service offering for development purposes   paid
standard       Standard PostgreSQL service offering                   paid
premium        Premium PostgreSQL service offering                    paid

典型的,我们可以看到,PostgreSQL-db服务,提供了下边三种规格的plan。相当于三种由低到高的规格。

Service Plan (Marketplace)Associated EntitlementsCompute ResourcesStorage Disk
developmentdevelopment1 vCPU + 2GB RAM (default, non-configurable)20GB (non-configurable)
standardstandardstorage and/or storage_ha1 vCPU + 2GB RAM (default), 2 vCPU + 4GB RAMConfigurable in blocks of 5GB
premiumpremiumstorage and/or storage_ha2 vCPU + 8GB RAM (default), 4 vCPU + 16GB RAM8 vCPU + 32GB RAM16 vCPU + 64GB RAMConfigurable in blocks of 5GB

开发版,它是规定死的,20G的存储,1个core的cpu以及2GB的内存。适用于开发环境。标准版,计算资源只有两档:2GB ram或者4GB 的ram。根据实际需求,可以选择此档。至于premium档,则是可以不断往上调相关配置。CPU与RAM是成比例放大的。

你可以通过命令进行规格的由低往高方向的升级,反之则不行。cf update-service <instance_name> -p <new_plan>

在实例化的时候,还可以提供一些定制化的DB实例本身的参数。那些参数也都是比较有限的。此得不表。

比如:
engine_version, multi_az (用于多地灾备和高可用),locale,  backup_retention_period (各IaaS提供商对应的值各不相同)

db_parameters:[], 使用一个数组来定实例级的配置参数。也是比较有限的几个。常见的如:

max_wal_size, checkpoint_timeout, autovacuum_vacuum_scale_factor, autovacuum_max_workers, max_locks_per_transaction, idle_in_transaction_session_timeout。

2、相关监控指标

相关指标现在越来越多,主要是因为Dynatrace的监控能力越来越强。

这里主要分成三大部分:系统指标(由RDS供应商提供并完善)、进程指标(是指PG实例运行过程中的一些指标)、Multi AZ相关指标。

限于篇幅,本文就先介绍Hyperscaler中AWS相关的监控指标。

系统指标:

来自AWS的hyperscaler相关监控指标:

1)、Burst Balance:

这表示实例可用的通用SSD (gp2)突发桶I/O积分的百分比。此度量仅对突发实例类型有效。

  • Timeseries IDcustom:postgres-db.burst_balance

  • Metric Keyext:postgres-db.burst_balance

  • UnitPercent

  • DimensionsN/A

  • SourceCloudWatch (AWS/RDS) - BurstBalance

  • Aggregation TypeAVG

2)、CPU Credit Balance

实例自启动或启动以来累积的CPU积分数。此度量仅对突发实例类型有效。

  • Timeseries IDcustom:postgres-db.cpu_credit_balance

  • Metric Keyext:postgres-db.cpu_credit_balance

  • UnitCount (count)

  • DimensionsN/A

  • SourceCloudWatch (AWS/RDS) - CPUCreditBalance

  • Aggregation TypeAVG

3)、CPU Credit Usage

实例用于CPU利用率的CPU积分数。此度量仅对突发实例类型有效。

  • Timeseries IDcustom:postgres-db.cpu_credit_usage

  • Metric Keyext:postgres-db.cpu_credit_usage

  • UnitCount (count)

  • DimensionsN/A

  • SourceCloudWatch (AWS/RDS) - CPUCreditUsage

  • Aggregation TypeAVG

4)、CPU Utilization

实例的CPU利用率百分比。

  • Timeseries IDcustom:postgres-db.cpu_utilization

  • Metric Keyext:postgres-db.cpu_utilization

  • UnitPercent

  • DimensionsN/A

  • SourceCloudWatch (AWS/RDS): CPUUtilization

  • Aggregation TypeAVG

5)Database Connections

实例正在使用的数据库连接数。这还不包括数据库尚未清理的断开的数据库连接。

  • Timeseries IDcustom:postgres-db.db_connections

  • Metric Keyext:postgres-db.db_connections

  • UnitCount (count)

  • DimensionsN/A

  • SourceCloudWatch (AWS/RDS): DatabaseConnections

  • Aggregation TypeCOUNT

6)Disk Queue Depth

等待访问磁盘的未处理I/ o(读/写请求)数量。

  • Timeseries IDcustom:postgres-db.disk_queue_depth

  • Metric Keyext:postgres-db.disk_queue_depth

  • UnitCount (count)

  • DimensionsN/A

  • SourceCloudWatch (AWS/RDS): DiskQueueDepth

  • Aggregation TypeCOUNT

7)Memory Utilization

实例上随机访问内存使用的百分比。

  • Timeseries IDcustom:postgres-db.memory_utilization

  • Metric Keyext:postgres-db.memory_utilization

  • UnitPercent

  • DimensionsN/A

  • SourceCloudWatch (AWS/RDS): FreeableMemory

  • Aggregation TypeAVG

注意:来自AWS CloudWatch的原始度量以字节为单位提供了可用内存。度量处理器需要进行计算,将其转换为实例使用的内存百分比。公式如下:

memory_utilization = ((instance_memory - freeable_memory)/instance_memory) x 100

8)Disk Utilization

实例上存储空间使用的百分比。

  • Timeseries IDcustom:postgres-db.disk_utilization

  • Metric Keyext:postgres-db.disk_utilization

  • UnitPercent

  • DimensionsN/A

  • SourceCloudWatch (AWS/RDS): DiskUtilization

  • Aggregation TypeAVG

注意:来自AWS CloudWatch的原始度量以字节为单位提供了可用存储空间。度量处理器需要进行计算,将其转换为实例使用的内存百分比。公式如下:

disk_utilization = ((instance_disk - free_storage_space)/instance_disk) x 100

9)Free Storage Space

实例上可用的空闲存储空间。

  • Timeseries IDcustom:postgres-db.free_storage_space

  • Metric Keyext:postgres-db.free_storage_space

  • UnitMegaByte (MB)

  • DimensionsN/A

  • SourceCloudWatch (AWS/RDS): FreeStorageSpace

  • Aggregation TypeAVG

注意:来自AWS CloudWatch的原始度量以字节为单位提供了可用存储空间。指标处理器需要计算将其转换为兆字节。公式如下:

free_storage = (free_storage_space / (1024 * 1024))

10)Maximum Used Transaction IDs

目前用到的最大的事务ID值。

  • Timeseries IDcustom:postgres-db.max_used_txn_ids

  • Metric Keyext:postgres-db.max_used_txn_ids

  • UnitCount (count)

  • DimensionsN/A

  • SourceCloudWatch (AWS/RDS): MaximumUsedTransactionIDs

  • Aggregation TypeAVG

11)Network Receive Throughput

DB实例上的传入(接收)网络流量,包括客户数据库流量和用于监视和复制的Amazon RDS流量。

  • Timeseries IDcustom:postgres-db.network_receive_throughput

  • Metric Keyext:postgres-db.network_receive_throughput

  • UnitMegaBytePerSecond (MB/s)

  • DimensionsN/A

  • SourceCloudWatch (AWS/RDS): NetworkReceiveThroughput

  • Aggregation TypeAVG

注意:来自AWS CloudWatch的原始度量提供了以字节/秒为单位的吞吐量。指标处理器需要计算将其转换为兆字节。公式如下:

network_receive_throughput = (network_receive_throughput_in_bytes/(1024 x 1024))

12)Network Transmit Throughput

DB实例上的传出(传输)网络流量,包括客户数据库流量和用于监视和复制的Amazon RDS流量。

  • Timeseries IDcustom:postgres-db.network_transmit_throughput

  • Metric Keyext:postgres-db.network_transmit_throughput

  • UnitMegaBytePerSecond (MB/s)

  • DimensionsN/A

  • SourceCloudWatch (AWS/RDS): NetworkTransmitThroughput

  • Aggregation TypeAVG

注意:来自AWS CloudWatch的原始度量提供了以字节/秒为单位的吞吐量。指标处理器需要计算将其转换为兆字节。公式如下:

network_transmit_throughput = (network_transmit_throughput_in_bytes/(1024 x 1024))

13)Oldest Replication Slot Lag

就收到的预写日志(write-ahead log, WAL)数据而言,该副本的滞后大小的最大值。

  • Timeseries IDcustom:postgres-db.oldest_replication_slot_lag

  • Metric Keyext:postgres-db.oldest_replication_slot_lag

  • UnitMegaByte (MB)

  • DimensionsN/A

  • SourceCloudWatch (AWS/RDS): OldestReplicationSlotLag

  • Aggregation TypeAVG

14)Read IOPs

每秒磁盘读I/O操作的平均次数。

  • Timeseries IDcustom:postgres-db.read_iops

  • Metric Keyext:postgres-db.read_iops

  • UnitPerSecond (count/s)

  • DimensionsN/A

  • SourceCloudWatch (AWS/RDS): ReadIOPS

  • Aggregation TypeAVG

15)Read Latency

每个磁盘I/O操作所花费的平均时间。

  • Timeseries IDcustom:postgres-db.read_latency

  • Metric Keyext:postgres-db.read_latency

  • UnitSeconds

  • DimensionsN/A

  • SourceCloudWatch (AWS/RDS): ReadLatency

  • Aggregation TypeAVG

16)Read Throughput

每秒从磁盘读取的平均字节数。

  • Timeseries IDcustom:postgres-db.read_latency

  • Metric Keyext:postgres-db.read_latency

  • UnitMegaBytePerSecond (MB/s)

  • DimensionsN/A

  • SourceCloudWatch (AWS/RDS): ReadThroughput

  • Aggregation TypeAVG

注意:来自AWS CloudWatch的原始度量提供了以字节/秒为单位的吞吐量。指标处理器需要计算将其转换为兆字节。公式如下:

read_throughput = (read_throughput_in_bytes/(1024 x 1024))

17)Replication Slot Disk Usage

复制槽占用的磁盘空间。

  • Timeseries IDcustom:postgres-db.replication_slot_disk_usage

  • Metric Keyext:postgres-db.replication_slot_disk_usage

  • UnitMegaByte (MB)

  • DimensionsN/A

  • SourceCloudWatch (AWS/RDS): ReplicationSlotDiskUsage

  • Aggregation TypeAVG

18)Swap Usage

DB实例所占用的Swap空间大小

  • Timeseries IDcustom:postgres-db.swap_usage

  • Metric Keyext:postgres-db.swap_usage

  • UnitMegaByte (MB)

  • DimensionsN/A

  • SourceCloudWatch (AWS/RDS): SwapUsage

  • Aggregation TypeAVG

注意:来自AWS CloudWatch的原始度量以字节为单位提供吞吐量。指标处理器需要计算将其转换为兆字节。公式如下:

swap_usage = (swap_usage_in_bytes/(1024 x 1024))

19)Transaction Logs Disk Usage

事务日志使用的磁盘空间。

  • Timeseries IDcustom:postgres-db.txn_log_disk_usage

  • Metric Keyext:postgres-db.txn_log_disk_usage

  • UnitMegaByte (MB)

  • DimensionsN/A

  • SourceCloudWatch (AWS/RDS): TransactionLogsDiskUsage

  • Aggregation TypeAVG

20)Transaction Logs Generation

每秒生成的事务日志的大小。

  • Timeseries IDcustom:postgres-db.txn_log_generation

  • Metric Keyext:postgres-db.txn_log_generation

  • UnitMegaBytePerSecond (MB/s)

  • DimensionsN/A

  • SourceCloudWatch (AWS/RDS): TransactionLogsGeneration

  • Aggregation TypeAVG

注意:来自AWS CloudWatch的原始度量提供了以字节/秒为单位的吞吐量。指标处理器需要计算将其转换为兆字节。公式如下:

txn_log_generation = (txn_log_generation_in_bytes/(1024 x 1024))

21)Write IOPS

磁盘平均每秒写I/O次数。

  • Timeseries IDcustom:postgres-db.write_iops

  • Metric Keyext:postgres-db.write_iops

  • UnitPerSecond (count/s)

  • DimensionsN/A

  • SourceCloudWatch (AWS/RDS): WriteIOPS

  • Aggregation TypeAVG

22)Write Latency

每个磁盘I/O操作所花费的平均时间。

  • Timeseries IDcustom:postgres-db.write_latency

  • Metric Keyext:postgres-db.write_latency

  • UnitSecond (s)

  • DimensionsN/A

  • SourceCloudWatch (AWS/RDS): WriteLatency

  • Aggregation TypeAVG

23)Write Throughput

每秒写入磁盘的平均字节数。

  • Timeseries IDcustom:postgres-db.write_throughput

  • Metric Keyext:postgres-db.write_throughput

  • UnitMegaBytePerSecond (MB/s)

  • DimensionsN/A

  • SourceCloudWatch (AWS/RDS): WriteThroughput

  • Aggregation TypeAVG

注意:来自AWS CloudWatch的原始度量提供了以字节/秒为单位的吞吐量。指标处理器需要计算将其转换为兆字节。公式如下:

write_throughput = (write_throughput_in_bytes/(1024 x 1024))

总结

以上列举出来的相关性能指标,都能通过Dynatrace的监控面板直接定制出来。一个来自于Dynatrace的简单的示例如下:

图片

SAP BTP中hyperscaler PG 的 dynatrace指标展示面板示例

这都是在绑定了Dynatrace以后,它的监控系统自动抓取的相关结果。

从这上边的近23个指标,我们也可以学习到如何抓住系统当中最关键的那些性能指标,从而更好的维护系统。

Dynatrace这个专心做APM的厂商,居然能做到上市,它还是有它的独到之处。从以上性能指标,面向DBA相关人员,我们从侧面也可以向自己提问:我们利用已有的知识和技能,能将上述指标一一映射到对应的SQL监控语句吗?

基于本地部署的传统的DBA,可以自己设定监控指标,进行监控,到了云平台,可能厂商都给包办了,你所需要做的就是监控,然后理解其含义,能分析出现的问题并妥善解决,让系统更健康的运转。

想关注所有文章,也可以关注我的公众号:数据库杂记

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/736037.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Python-Docx库】Word与Python的完美结合

今天给大家分享Python处理Word的第三方库&#xff1a;Python-Docx。 什么是Python-Docx&#xff1f; Python-Docx是用于创建和更新Microsoft Word&#xff08;.docx&#xff09;文件的Python库。 日常需要经常处理Word文档&#xff0c;用Python的免费第三方包&#xff1a;Pyt…

【Linux】Shell及Linux权限

Shell Shell的定义 Shell最简单的定义是&#xff1a;命令行解释器。 Shell的主要任务&#xff1a;1. 将使用者的命令翻译给核心进行处理。2.将核心的处理结果翻译给使用者 为什么要有Shell? 使用者和内核的关系就相当于两个完全陌生的外国人之间的关系&#xff0c;他们要进…

Linux:线程互斥与同步

目录 线程互斥 锁的初始化 加锁 解锁 锁的初始化 锁的原理 死锁 线程同步 方案一&#xff1a;条件变量 条件变量初始化 等待 唤醒 条件变量的代码示例 基于阻塞队列的生产消费模型 方案二&#xff1a;POSIX信号量 初始化信号量&#xff1a; 销毁信号量 等待信…

中国大学生计算机设计大赛--智慧物流挑战赛基础

文章目录 一、Ubuntu基础1.1 基本操作1.2 文本编辑 二、ROS基础介绍2.1 概念与特点2.2 基本结构2.3 创建工程2.4 节点和节点管理器2.5 启动文件 三、ROS通信机制3.1 话题3.2 服务3.3 动作3.4 参数服务器 四、ROS可视化工具4.1 rviz4.2 rqt4.3 tf 五、Python实现简单的ROS节点程…

01-分析同步通讯/异步通讯的特点及其应用

同步通讯/异步通讯 微服务间通讯有同步和异步两种方式 同步通讯: 类似打电话场景需要实时响应(时效性强可以立即得到结果方便使用),而且通话期间不能响应其他的电话(不支持多线操作)异步通讯: 类似发邮件场景不需要马上回复并且可以多线操作(适合高并发场景)但是时效性弱响应…

MQ高可用相关设置

文章目录 前言MQ如何保证消息不丢失RabbitMQRocketMQKafkaMQ MQ如何保证顺序消息RabbitMQRocketMQKafka MQ刷盘机制/集群同步RabbitMQRocketMQKafka 广播消息&集群消息RabbitMQRocketMQ MQ集群架构RabbitMQRocketMQKafka 消息重试RabbitMQRockeMqKafka 死信队列RocketMQKaf…

Claude3横空出世:颠覆GPT-4,Anthropic与亚马逊云科技共启AI新时代

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

车载电子电器架构 —— 汽车电子电气系统分解

车载电子电器架构 —— 汽车电子电气系统分解 我是穿拖鞋的汉子&#xff0c;魔都中坚持长期主义的汽车电子工程师。 老规矩&#xff0c;分享一段喜欢的文字&#xff0c;避免自己成为高知识低文化的工程师&#xff1a; 屏蔽力是信息过载时代一个人的特殊竞争力&#xff0c;任何…

【操作系统概念】第14章:系统保护

文章目录 0. 前言14.1 保护目标14.2 保护原则14.3 保护域14.3.1 域结构14.3.2 实例&#xff1a;UNIX14.3.3 实例&#xff1a;MUTICS 14.4 访问矩阵14.5 访问矩阵的实现14.5.1 全局表14.5.2 对象的访问列表14.5.3 域的能力(权限)列表14.5.4 锁-钥匙机制*14.5.5 比较* 14.6 访问控…

Github 2024-03-10php开源项目日报Top10

根据Github Trendings的统计,今日(2024-03-10统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量PHP项目10Blade项目1Laravel:表达力和优雅的 Web 应用程序框架 创建周期:4631 天开发语言:PHP, BladeStar数量:75969 个Fork数量:24281 次…

Vue脚手架

Vue脚手架 学习目标&#xff1a; 理解Node.js基本使用方法理解包资源管理器NPM的使用理解webpack的作用理解 vue-cli 脚手架 (重点)Element-UI 组件库 1.vue的格式&#xff1a;new Vue({//作用的视图el:"id选择器",//vue中的数据/*data:{key:value,key:value,...}…

Java 基于微信小程序的快递柜小程序

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

devops-Jenkins【内网环境部署及插件安装】

1、准备工作 外网Linux机器一台&#xff0c;内网Linux机器一台。硬件环境要求&#xff1a;至少1GB的可用内存空间&#xff0c;至少50GB的可用硬盘空间。软件环境需求&#xff1a;需要安装好Java8&#xff0c;Java的运行环境JRE1.8或者Java的开发工具包JDK1.8都可以。 2、外网安…

结构指针的使用

结构指针的使用 指针类型变量&#xff1a; 指针类型&#xff0c;是变量类型的一种&#xff0c;它是专门用来存储变量的地址的。 例如 int *p; 表示p是一个指针变量&#xff0c;它用来存储某个整型变量的地址。 int a5; int *p&a; 这样&#xff0c;就将整型变量a的地…

体系班第十三节

1判断完全二叉树递归做法 有四种情况&#xff1a;1 左树完全&#xff0c;右数满&#xff0c;且左高为右高加一 2左满 &#xff0c;右满&#xff0c;左高为右高加一 3左满&#xff0c;右完全&#xff0c;左右高相等 4左右均满且高相等 #include<iostream> #include&l…

转移表回调函数实现

回调函数实现 计算器的模拟&#xff08;函数指针数组的使用&#xff09;&#xff08;回调函数&#xff09; 简化 冗余 老的代码的问题就是 冗余 写死 不能完成不同的任务 函数调用的时候只需要知道地址就可以 calc计算器 这里也称之为转移表 #define _CRT_SECURE_NO_WAR…

出现“error: failed to push some refs to ‘https://github.com/****.git‘”,如何解决问题

一、出错情况&#xff1a; 今天继续推送整理的知识点的时候&#xff0c;出现了一个报错。“error: failed to push some refs to https://github.com/.git”&#xff0c;百思不得其解&#xff0c;之前推送的时候都可以轻松推送成功&#xff0c;如今却说本地库与远程库不一致。…

腾讯云轻量应用服务器“月流量”什么意思?用完了怎么办?

腾讯云轻量应用服务器“月流量”什么意思&#xff1f;就是限制月流量的意思。腾讯云轻量服务器流量用完了怎么办&#xff1f;超额部分的流量另外支付流量费&#xff0c;流量价格为0.8元/GB&#xff0c;会自动扣你的腾讯云余额&#xff0c;如果你的腾讯云账号余额不足&#xff0…

Git win与linux换行符转换的问题

转载&#xff1a;warning: in the working copy of ‘package-lock.json‘, LF will be replaced by CRLF the next time Git_warning: in the working copy of package.json, lf-CSDN博客 warning: in the working copy of ‘package-lock.json‘, LF will be replaced by CRL…

ModStartBlog 稳定版 v9.0.0

ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用&#xff0c;支持后台一键快速安装&#xff0c;让开发者能快的实现业务功能开发。系统完全开源&#xff0c;基于 Apache 2.0 开源协议。 功能特性 丰富的模块市场&#xff0c;后台一键快速安装 会…