亚马逊红移中的并发查询性能

时间:2013-10-16 12:21:01

标签: amazon-web-services amazon-redshift paraccel

在Amazon Redshift上,并发查询会影响彼此的性能吗?

例如,假设有两个查询:一个在相对较小的表(~5m行)上检索所有行,另一个在大型表(~500m)行上。两个表都具有相同的字段,两者都没有压缩。两个查询都检索其各自表中的所有数据以计算其结果。没有连接或过滤器。两个查询都会检索大约2-4个字段进行计算。

自行运行,小查询返回大约700毫秒。但是,当大型查询正在运行时(这本身需要几分钟),小查询将在4-6秒内返回。

这是在具有单个XL节点的群集上观察到的行为。

这是预期的行为吗?是否有配置设置可以保证小查询的性能一致性,即使大型查询正在运行?

2 个答案:

答案 0 :(得分:4)

复制粘贴自:https://forums.aws.amazon.com/thread.jspa?threadID=137540#

  

我已经执行了一些并发查询基准测试。

     

我创建了一个简单的查询,它本身花了大约一分钟   跑步。然后我立刻运行了其中一个查询,然后是两个,三个,   等,并为每个查询定时。

     

每个查询基本上使数据库性能减半 - 例如你有什么   期望;负载加倍,性能减半。

     

实际上,它比减半更好 - 你得到额外的10%   性能

     

此性能行为最多可保留5个并发查询   是在数据库I上配置的最大并发查询数   正在与...合作。如果我运行了六个查询,则最终查询不能   执行,直到第一个查询之一完成并释放a   槽。

     

最后,真空的行为与普通查询非常相似 - 它将性能降低了一半。   这并不特别。

     

实际上,真空不仅仅是减半 - 它对于a来说是等同的   相当沉重的查询。

答案 1 :(得分:2)

没有任何保证,因为所有这些都在固定数量的CPU上运行。当您增加工作时具有固定的工作能力会降低吞吐量。简短的回答是获得更大的机器(即更多节点)。

以下是您答案的具体内容:

https://forums.aws.amazon.com/message.jspa?messageID=437015#

http://docs.aws.amazon.com/redshift/latest/dg/c_workload_mngmt_classification.html