第 25章 性能问题常见原因

25性能问题常见原因

本节介绍常见的性能问题,这些问题可能​​的解决方案的故障排除过程。

标识硬件和段故障

Greenplum的数据库的性能取决于它所运行的硬件和IT基础设施。 Greenplum的数据库是由多台服务器(主机)为一体的综合系统(阵列)一起行动;在诊断性能问题的第一步,要确保所有Greenplum数据段是否在线。 Greenplum数据引擎的表现会像在阵列中最慢的主机一样快。与CPU利用率,内存管理,I / O处理,或者网络负荷问题影响性能。常见的硬件相关的问题:

•磁盘故障 - 但如果你正在使用RAID单个磁盘故障应该不会显着影响数据库的性能,磁盘同步并消耗与故障磁盘主机上的资源。该gpcheckperf实用程序可以帮助识别有磁盘I / O问题段上的主机。

•主机故障 - 当主机处于脱机状态,在该主机上段是不可操作。这意味着数组中的其他主机必须执行两次,他们通常的工作量,因为它们正在运行的主段和多个镜像。如果未启用镜像,服务中断。服务暂时中断恢复失败段。该gpstate工具可以帮助确定发生故障的部分。

•网络失败 - 网络接口卡,开关,或DNS服务器可以降低区段的失效。如果主机名或IP地址可以不是你的Greenplum阵列内得到解决,这些表现为在Greenplum数据互连错误。该gpcheckperf应用有助于鉴定有网络问题段上的主机。

•磁盘容量 - 在你的段上的主机磁盘容量不得超过70%满。 Greenplum数据需求运行时处理一些自由空间。要回收负荷或更新后,已删除行占用磁盘空间,运行的真空。该gp_toolkit行政架构中有检查分布式数据库对象的大小很多意见。

看到Greenplum数据参考指南有关检查数据库对象大小和磁盘空间信息

工作负载管理

数据库系统具有有限的CPU处理能力,内存和磁盘I / O资源。当多个工作负载竞争获取这些资源,数据库性能会受到影响。工作负载管理最大限度地提高系统的吞吐量,同时满足不同的业务需求。通过基于角色的资源队列,Greenplum数据引擎的工作负载管理限制活动查询并节省系统资源。

一个资源队列限制大小和/或用户或角色可以在特定队列执行查询的总数。ÿ巳分配数据库角色到相应的资源队列,管理员可以控制并发用户查询,并防止系统过载。见Workload Management with Resource Queues了解更多信息届资源队列有关设置资源队列。

避免争夺

争用出现时多个用户或工作负荷尝试使用系统中的冲突的方法;例如,当两个事务试图同时更新表发生冲突。寻求一个表级或行级锁将无限期地等待冲突锁定的事务被释放。应用程序不应该持有打开的事务很长一段时间,例如,在等待用户输入。

维护数据库统计

Greenplum的数据库使用基于成本的查询优化器依赖于数据库统计信息。准确的统计允许查询优化器更好地估计查询检索来选择最有效的查询计划的行数。如果没有数据库统计,查询优化器无法估计有多少条记录将被退回。优化器不认为它有足够的内存来执行特定操作,如聚合,所以它通过读取和写入磁盘的花费​​是最保守的行动,做这些操作。这比在内存中做他们显著慢。分析有关数据库查询优化器需要收集统计信息。注意:当执行与枢纽查询优化的SQL命令,Greenplum数据引擎发出警告,如果命令业绩可能通过收集列统计数据或提高设定由命令所引用的列。警告是在命令行上发出信息被添加到Greenplum数据日志文件。有关收集表列的统计信息,请参见Greenplum数据参考指南ANALYZE命令

识别查询计划统计问题

在您解释使用EXPLAIN或解释ANALYZE,熟悉数据,以帮助识别可能的问题,统计数据的查询的查询计划。检查计划不准确的统计的以下指标:

•是否优化器的估计接近现实?运行EXPLAIN分析和查看是否行数估计优化靠近查询操作返回的行数。

•是否在计划的早期应用选择性谓词?最有选择性的过滤器应使更少的行向上移动计划树中的计划早施。

•是否优化选择最佳的连接顺序?当你有联接多个表的查询,确保优化器选择最有选择性的连接顺序。加入该排除行人数最多的应该在更早的计划,使更少的行向上移动计划树完成。

SeeQuery Profiling for more information about readingquery plans.

调整统计集合

 

以下配置参数控制采样统计信息收集的数据量:

•default_statistics_target

•gp_analyze_relative_error

这些参数控制在系统级统计采样。这是更好地采样为最常用的查询谓词列仅增加的统计信息。您可以调整使用命令特定列的统计数据:

ALTERTABLE... SET STATISTICS

例如:

ALTER TABLE销售ALTER COLUMN区域SET统计50;

这相当于增加defauit_statistics_target论坛特定列。然后随后的ANALYZE操作将聚集更多的数据统计为列,并产生更好的查询计划的结果。

优化数据分布

当您在Greenplum的数据库中的表,你必须声明分布键,让系统中的所有部门,甚至数据分布。由于该段在并行查询工作,Greenplum数据永远是最慢的环节一样快。如果数据是不平衡的,即有更多的数据段将返回它们的结果更慢,因此,整个系统慢下来。

优化您的数据库设计

许多性能问题可以通过数据库设计加以改进。检查你的数据库设计和考虑以下几点:

•该模式反映了数据被访问的方式吗?

•可以较大的表细分为分区?

•您是否使用最小的数据类型可以存储列值?

•是用来连接相同的数据类型的表列?

•您是否索引被使用?

Greenplum的数据库最大限制

为了帮助优化数据库设计,回顾Greenplum数据支持的最大限制:

Table 51:Maximum Limits of Greenplum Database

Dimension

Limit

Database Size

Unlimited

Table Size

Unlimited, 128 TB per partition per segment

Row Size

1.6 TB (1600 columns * 1 GB)

Field Size

1 GB

Rows per Table

281474976710656 (248)

Columns per Table/View

1600

Indexes per Table

Unlimited

Columns per Index

32

Table-level Constraints per Table

Unlimited

Table Name Length

63 Bytes (Limited by name data type)

列为无限尺寸本质上并没有通过Greenplum数据引擎的限制。但是,它们在实践中可用的磁盘空间和存储器/交换空间是有限的。当这些值是非常大的性能可能会受到影响。

Note:

这里有可能在同一时间存在的对象(表,索引,和意见,但不排)的数目的上限。此限制是4294967296(2 32)。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值