首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何提高greenplum并发性和每秒#查询量

如何提高greenplum并发性和每秒#查询量
EN

Stack Overflow用户
提问于 2017-09-15 00:25:51
回答 2查看 721关注 0票数 5

我们有一个相当大的Greenplum v4.3集群。18台主机,每台主机有3个段节点。每台主机大约有40个内核和60G内存。

我们的表有30列宽,有1亿行。当没有并发压力时,我们测试的查询有3-10秒的响应时间。随着我们并行触发的查询数量的增加,延迟从平均3秒减少到50秒,正如预期的那样。

但我们发现,无论我们并行触发了多少查询,我们只有非常低的QPS(每秒查询数),几乎只有3-5个查询/秒。我们设置了max_memory=60G、memory_limit=800MB和active_statments=100,希望CPU和内存能得到很高的利用率,但它们的利用率仍然很低,比如30%-40%。

我有一种强烈的感觉,我们试图并行地填充集群,希望最大限度地利用CPU和内存利用率。但它并不像我们预期的那样工作。设置有什么问题吗?或者还有其他我不知道的事情吗?

EN

回答 2

Stack Overflow用户

发布于 2018-06-20 01:39:32

造成这种行为的原因可能有多种。

首先,每个Greenplum查询在一个逻辑段上使用的处理器核心不超过一个。假设您在每个节点上有3个数据段,每个节点有40个物理核心。运行两个并行查询将在每个节点上使用最大的2 x 3 = 6核心,因此您将需要关于40 / 6 ~= 6并行查询来利用您的所有CPU。因此,对于每个节点的核心数量,最好创建更多的段(gpexpand可以做到这一点)。顺便问一下,查询中使用的表是压缩的吗?

其次,这可能是一个糟糕的查询。如果您将为查询提供一个计划,它可能有助于理解。Greenplum中有一些查询类型可能会将master作为瓶颈。

最后,这可能是一些错误的OS或blockdev设置。

票数 1
EN

Stack Overflow用户

发布于 2018-08-01 10:26:35

我认为这个文档页面Managing Resources可能会帮助你管理你的资源

  • 您可以使用资源组限制/控制资源,特别是并发属性(资源组中允许的最大并发事务处理数,包括活动事务处理和空闲事务处理)。
  • 资源队列帮助限制ACTIVE_STATEMENTS

注意: ACTIVE_STATEMENTS将是当前运行的总语句,当您有50s的开销查询和下一个传入的查询时,这可能无法工作,mybe 5* 50更好。此外,您还需要配置内存/CPU设置才能继续执行查询。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46224134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档