Concurrency 计划性眩晕

Concurrency 计划性眩晕,concurrency,vertica,Concurrency,Vertica,我一直试图通过更改常规资源池的PlannedConcurrency值来调整Vertica集群上运行的查询的性能。我们有一个由4个节点组成的集群,每个节点有32个核心。 根据Vertica文件 查询预算=常规池/计划并发的排队阈值 增加PlannedConcurrency应该减少查询预算,保留更少的内存/查询,这可能会导致排队的查询更少。 增加PlannedConcurrency的值似乎可以提高查询性能 PlannedConcurrency=256提供比128更好的性能,后者的性能比AUTO更好

我一直试图通过更改常规资源池的PlannedConcurrency值来调整Vertica集群上运行的查询的性能。我们有一个由4个节点组成的集群,每个节点有32个核心。 根据Vertica文件

查询预算=常规池/计划并发的排队阈值

增加PlannedConcurrency应该减少查询预算,保留更少的内存/查询,这可能会导致排队的查询更少。
增加PlannedConcurrency的值似乎可以提高查询性能

PlannedConcurrency=256提供比128更好的性能,后者的性能比AUTO更好

PlannedConcurrency作为资源池中并发执行查询的首选数量,该数量如何能够大于核心数量并仍然提供更好的查询性能

此外,资源\u获取。内存\u使用\u KB和查询\u配置文件。保留\u额外\u内存之间的差异应提供正在使用的内存。
但是,当计划的并发性更改时,对于单个查询,此数字不会保持不变。
有人能帮我理解为什么这种内存使用与PlannedConcurrency的值不同吗

谢谢

参考文献:


如果没有实际的疑问,很难给出准确的答案。 但是,一般来说,增加计划的并发性意味着您为每个查询保留和分配更少的资源,并允许更大的并发性

如果您的用例中有很多不需要大量资源的小查询,那么它可能会改善一些事情


还要记住,CPU不是唯一被使用的资源-您必须等待IO(磁盘、网络等)这是您最好花在运行更多查询上的时间…

如何了解查询的实际内存使用情况@Cohenjoth该用例主要涉及多个(至少2-3个)表上带有连接的大型查询。@singsuyash-如问题中所述,获取和额外内存之间的差异显示了正在使用的内容。BhaviJagwani-保留的额外内存值是多少?当您增加并发性时,您应该看到它们会缩小。(大/小是相对的术语-如果您有额外的资源,那么对于您的集群来说,这些不是大型查询:)@cohenjo,是的,随着并发性的增加,保留的额外内存值确实会减少。但这不是因为查询预算随着plannedConcurrency的增加而减少吗。两个值之间的差值如何不保持恒定(或接近恒定)?基本内存的价值差异有多大?是的,随着计划并发性的增加,保留会减少,因此额外内存保留会减少。但这也意味着有运行更多查询的空间-这将影响吞吐量(-我猜这是您看到的主要性能增益。)并且还将影响您的采集(因为机器上的负载应该会增加…)