在Amazon Redshift上,并发查询是否会影响彼此的性能?
例如,假设有两个查询:一个在相对较小的表(~5m行)上检索所有行,另一个在较大的表(~500M行)上。这两个表都有相同的字段,都没有压缩。这两个查询都检索各自表中的所有数据以计算其结果。没有联接或筛选器。这两个查询都检索大约2-4个字段进行计算。
这个小查询自己运行,大约在700ms内返回。但是,当大型查询正在运行时(这本身需要几分钟),小型查询在4-6秒内返回。
这是在具有单个XL节点的群集上观察到的行为。
这是预期的行为吗?是否有一个配置设置可以保证小查询的性能一致性,即使大查询正在运行?
发布于 2013-10-17 14:24:05
复制-粘贴自:https://forums.aws.amazon.com/thread.jspa?threadID=137540#
我执行了一些并发查询基准测试。
我创建了一个简单的查询,它本身运行大约需要一分钟。然后我一次运行这些查询中的一个,然后运行两个,然后运行三个,等等,并对每个查询进行计时。
每个查询基本上都会使数据库性能减半--比如你所期望的;负载翻倍,性能减半。
实际上,这比减半要好一点--你可以获得大约10%的额外性能。
此性能行为适用于5个并发查询,这是我正在使用的数据库上配置的并发查询的最大数量。如果我运行了6个查询,那么直到第一个查询中的一个查询完成并释放了一个插槽,最后的查询才能执行。
最后,vacuum的行为与普通查询非常相似--它将性能减半。这没什么特别的。
实际上,vacuum不仅仅是减半--它等同于一个相当繁重的查询。
发布于 2013-10-16 21:05:46
没有保证,因为所有这些都是在固定数量的CPU上运行的。在工作容量固定的情况下,当您增加工作时,它会降低吞吐量。简短的答案是得到一个更大的机器(即更多的节点)。
以下是您答案的具体内容:
https://forums.aws.amazon.com/message.jspa?messageID=437015#
http://docs.aws.amazon.com/redshift/latest/dg/c_workload_mngmt_classification.html
https://stackoverflow.com/questions/19403248
复制相似问题