在Amazon Redshift上,并发查询会影响彼此的性能吗?
例如,假设有两个查询:一个在相对较小的表(~5m行)上检索所有行,另一个在大型表(~500m)行上。两个表都具有相同的字段,两者都没有压缩。两个查询都检索其各自表中的所有数据以计算其结果。没有连接或过滤器。两个查询都会检索大约2-4个字段进行计算。
自行运行,小查询返回大约700毫秒。但是,当大型查询正在运行时(这本身需要几分钟),小查询将在4-6秒内返回。
这是在具有单个XL节点的群集上观察到的行为。
这是预期的行为吗?是否有配置设置可以保证小查询的性能一致性,即使大型查询正在运行?
答案 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