我们正在进行Citus
基准测试,并遇到了一种情况,即规划器parallel execution plan
在执行过程中没有parallel workers
启动。集群有 3 个工作节点,每个节点在 Centos 上运行 2 个 CPU。这背后的原因是什么?
-> Finalize Aggregate (cost=76650.31..76650.32 rows=1 width=32) (actual time=174741.832..174741.999 rows=1 loops=1)
-> Gather (cost=76650.09..76650.30 rows=2 width=32) (actual time=174741.807..174741.974 rows=1 loops=1)
Workers Planned: 2
Workers Launched: 0
-> Partial Aggregate (cost=75650.09..75650.10 rows=1 width=32) (actual time=174740.490..174740.492 rows=1 loops=
我们用于基准测试的查询是
select sum(amount) from tab_dist_1 where id>=49820 and id<=59743292;
可能有两个原因:
当您的查询开始执行时,已有 正在
max_parallel_workers
运行,因此没有更多可用的并行工作器插槽。也可能有其他后台进程正在运行;所有后台进程的总限制为max_worker_processes
。您使用 JDBC 驱动程序执行查询,并且您(或您正在使用的某些工具)使用它
setMaxRows()
来限制结果行的数量,这会在执行时禁用并行查询。有关详细信息,请参阅本文。