管理性能

系统性能管理包含了性能计算,确定性能问题的造成原因,以及使用可用的工具和技术来解决问题的应用。

Greenplum根据数据库管理系统(DBMS)向请求者提供信息的频率来计算数据库的性能。

Parent topic: 性能管理

理解性能因素Understanding the Performance Factors

在计算数据库性能时,有几项关键的性能参数会影响数据库的性能,通过理解这些参数,能够帮助我们更好的去提升性能以及防止发生问题:

系统资源

数据库的性能在极大程度上取决于硬盘的I/O速度以及内存使用量,你需要先了解你部署的DBMS所在的硬件平台的基线性能, 然后才能对数据库设置正确的性能预期。

工作负载

工作负载即所有来自于DBMS的需求,这个量是会变化的。总工作负载包含了在任意时间点的用户请求、应用、批处理作业、事物以及DBMS直接收到的系统指令。 比如说,在快要进行工作汇报的月底,工作负载会增加,而在绝大部分用户都不上班的周末,工作负载就会减少。 充分了解你的工作负载以及需求高峰时段可以帮助你对你的系统资源进行最有效的规划,还可以尽可能的提升你的最大工作负载量。

吞吐量

系统的吞吐量决定了它能够处理的最大数据量。DBMS通过每秒的请求数、事物数或者平均反应时间来计算吞吐量。 DBMS的吞吐量在很大程度上取决于其所在的系统的处理能力(包括了硬盘I/O,CPU处理速度,内存带宽等等),所以在设置DBMS的目标之前,你必须要清楚地知道你的硬件平台的吞吐能力。

竞争Contention

竞争是指在两个以上的组件想要以冲突的方式使用系统时所产生的情况 —— 比如说, 多个请求在同一时间试图更新同一部分数据,或是多个大型工作负载想要争夺系统资源。系统的吞吐量会随阻塞量的增加而减少。

优化

DBMS优化可以影响系统的整体性能,包括SQL表达式、数据库配置参数、表设计、数据分发等等。 启用数据库请求优化器可以帮助创造最多、最有效的访问计划。

判断可接受的性能

在进行性能调试时,你应该要知道你的系统的性能预期,并定义可以量化的性能需求,这样你才可以准确地评估你的系统性能,在设定性能目标时,请参考以下内容:

基线硬件性能

绝大部分的数据库性能问题都不是数据库本身造成,而是数据所在的系统。I/O瓶颈、内存问题、以及网络故障将会显著地降低数据库的性能。为了更好确认以及排查硬件相关的问题,请在进行数据库级别或请求级别的性能调优前,先了解你的硬件和操作系统的基线性能。

有关运行gpcheckperf工具验证硬件和网络性能的信息请见 Greenplum数据库参考指南

性能基准

为了保持良好的性能或是修复性能故障,你应该要了解你的DBMS在对应工作负载下的性能水平, 基准就是一个预定义的工作负载,它的运行结果是已知的。你可以通过定期运行这个工作负载来确定系统级的性能。 你可以使用基准来对工作负载进行比较、或是测试需要优化的请求或应用。

许多第三方机构,比如事务处理性能委员会(TPC),会向数据库行业提供基准工具。其提供的决策支持系统TPC-H可以对大批量的数据进行检测、处理高复杂度的请求、以及提供关键的业务性问题的解决方案。欲知详情,请前往:

http://www.tpc.org/tpch