《PolarDB-X开源分布式数据库实战进阶》——对PolarDB-X进行TP负载测试(4)

本文涉及的产品
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: 《PolarDB-X开源分布式数据库实战进阶》——对PolarDB-X进行TP负载测试(4)

《PolarDB-X开源分布式数据库实战进阶》——对PolarDB-X进行TP负载测试(3) https://developer.aliyun.com/article/1228676?groupCode=polardbforpg



image.png

 

压测中的常用性能指标包含QPS、TPS、RT。

 

QPS指每秒查询数,从数据库层面来看指1秒内执行的SQL语句数,包括增删改查。

 

TPS指每秒事务数,从数据库层面看,既包含了commit事务,也包含rollback事务。TPS在不同语境下具有不同的含义:在数据库系统中,指每秒执行的事务数量;在web应用中,可以理解为对页面的一次访问在区块链中,代表产生交易的速率。

 

RT指响应时间,反映了执行一个请求时,从开始到收到响应数据所花费的总体时间。这也是用户感受最为直观的一个指标,在实际应用中又分为客户端RT与服务端RT,网络环境越差,两个RT的差距也会越大。

 

三个性能指标相互之间存在关联。假设运行的Sysbench是单线程的点查,如果每条查询的平均RT是1ms,则意味着在1秒内可以同步执行1000次点查,也即:在并发数为1的情况下,QPS是1000。

 

image.png

 

选择一个历史任务进行查看,平均时延为0.47ms,1000/0.47=2127,与上图中的2112.86基本相等,也验证了上述理论。

 

image.png

 

系统的监控指标包括饱和度、延迟、流量以及错误。

 

饱和度主要用于衡量资源的使用量,比如CPU使用率、内存使用率、IOPS使用率、任务队列的长度等。

 

延迟反映了完成操作所需要的时间,比如网络延迟、IO wait、接口调用延迟、数据同步延迟等。

 

流量则用于衡量系统的繁忙程度,比如磁盘流量、网卡流量、核心接口的请求速率,web服务通常更关心请求速率。

 

错误包含了显式错误与隐式错误,比如可能直接报错,返回了错误,也可能没有报错,但是返回了非预期的结果。错误反映了系统当前的运行状况,一般体现为宕机、进程crash、主备切换、核心功能错误等。

 

不同角色也会关注不同的指标项,比如DBA可能更关注数据库的饱和度,可以根据业务周期对系统的性能、水位进行评估,从而判断是否要进行扩缩、容升降配等操作;应用开发人员则会更关注QPS和RT两个指标。

 

使用CPU或IO等机器指标,确实可以一定程度反映数据库的负载。但如果瓶颈在于数据库系统自身,比如有强烈的锁冲突,此时底层的硬件资源利用率难以衡量数据库本身的饱和度。因此需要数据库层面提供更多维度的监控指标来定位性能瓶颈。

 

image.png

 

PolarDB-X提供了丰富的性能指标,其为计算存储分离架构,因此监控指标也分为计算节点和存储节点两大类。

 

计算节点里的指标有CPU内存使用率、逻辑QPS、物理QPS、逻辑RT、物理RT等。存储节点则有CPU内存使用率、存储空间QPS、buffer pool命中率、读写次数行锁、IOPS等。

 

结合以上监控信息,有经验的DBA或数据库开发人员可以更轻松地定位数据库的性能瓶颈,从而对当前的数据库进行优化。



《PolarDB-X开源分布式数据库实战进阶》——对PolarDB-X进行TP负载测试(5) https://developer.aliyun.com/article/1228673?groupCode=polardbforpg

相关实践学习
快速体验PolarDB开源数据库
本实验环境已内置PostgreSQL数据库以及PolarDB开源数据库:PolarDB PostgreSQL版和PolarDB分布式版,支持一键拉起使用,方便各位开发者学习使用。
相关文章
|
1月前
|
机器学习/深度学习 PyTorch 算法框架/工具
目标检测实战(一):CIFAR10结合神经网络加载、训练、测试完整步骤
这篇文章介绍了如何使用PyTorch框架,结合CIFAR-10数据集,通过定义神经网络、损失函数和优化器,进行模型的训练和测试。
86 2
目标检测实战(一):CIFAR10结合神经网络加载、训练、测试完整步骤
|
6天前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
34 3
|
11天前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
25 1
|
1月前
|
机器学习/深度学习 编解码 监控
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
这篇文章详细介绍了如何使用YOLOv8进行目标检测任务,包括环境搭建、数据准备、模型训练、验证测试以及模型转换等完整流程。
1136 1
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
|
1月前
|
PyTorch 算法框架/工具 计算机视觉
目标检测实战(二):YoloV4-Tiny训练、测试、评估完整步骤
本文介绍了使用YOLOv4-Tiny进行目标检测的完整流程,包括模型介绍、代码下载、数据集处理、网络训练、预测和评估。
104 2
目标检测实战(二):YoloV4-Tiny训练、测试、评估完整步骤
|
1月前
|
Java 程序员 应用服务中间件
「测试线排查的一些经验-中篇」&& 调试日志实战
「测试线排查的一些经验-中篇」&& 调试日志实战
20 1
「测试线排查的一些经验-中篇」&& 调试日志实战
|
15天前
|
前端开发 数据管理 测试技术
前端自动化测试:Jest与Cypress的实战应用与最佳实践
【10月更文挑战第27天】本文介绍了前端自动化测试中Jest和Cypress的实战应用与最佳实践。Jest适合React应用的单元测试和快照测试,Cypress则擅长端到端测试,模拟用户交互。通过结合使用这两种工具,可以有效提升代码质量和开发效率。最佳实践包括单元测试与集成测试结合、快照测试、并行执行、代码覆盖率分析、测试环境管理和测试数据管理。
31 2
|
16天前
|
前端开发 JavaScript 数据可视化
前端自动化测试:Jest与Cypress的实战应用与最佳实践
【10月更文挑战第26天】前端自动化测试在现代软件开发中至关重要,Jest和Cypress分别是单元测试和端到端测试的流行工具。本文通过解答一系列问题,介绍Jest与Cypress的实战应用与最佳实践,帮助开发者提高测试效率和代码质量。
27 2
|
1月前
|
机器学习/深度学习 监控 计算机视觉
目标检测实战(八): 使用YOLOv7完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
本文介绍了如何使用YOLOv7进行目标检测,包括环境搭建、数据集准备、模型训练、验证、测试以及常见错误的解决方法。YOLOv7以其高效性能和准确率在目标检测领域受到关注,适用于自动驾驶、安防监控等场景。文中提供了源码和论文链接,以及详细的步骤说明,适合深度学习实践者参考。
296 0
目标检测实战(八): 使用YOLOv7完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
|
1月前
|
机器学习/深度学习 XML 并行计算
目标检测实战(七): 使用YOLOX完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
这篇文章介绍了如何使用YOLOX完成图像目标检测任务的完整流程,包括数据准备、模型训练、验证和测试。
152 0
目标检测实战(七): 使用YOLOX完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)

热门文章

最新文章

相关产品

  • 云原生数据库 PolarDB