gpt4 book ai didi

apache-drill - Apache Drill 不使用最大 RAM

转载 作者:行者123 更新时间:2023-12-03 21:36:32 25 4
gpt4 key购买 nike

我在具有 16GB 内存的 ubuntu 机器上本地运行 apacherill 1.0(然后在 1.4 上)。当我使用一个非常大的制表符分隔文件(5200 万行,7GB)并执行

Select distinct columns[0] from `table.tsv` 

,第二次运行相同的查询时,性能似乎根本没有提高(都用了 53 秒)。通常第二次运行相同的查询时,与第一次查询相比,它花费的时间不到一半。似乎 Drill 没有使用所有分配的内存。

我的 conf/drill-env.sh 文件如下所示:
DRILL_MAX_DIRECT_MEMORY="14G"
DRILL_HEAP="14G"

export DRILL_JAVA_OPTS="-Xms$DRILL_HEAP -Xmx$DRILL_HEAP -XX:MaxDirectMemorySize=$DRILL_MAX_DIRECT_MEMORY -XX:MaxPermSize=14G -XX:ReservedCodeCacheSize=1G -Ddrill.exec.enable-epoll=true"

我也在演练中做到了这一点
alter system set `planner.memory.max_query_memory_per_node`=12884901888

但是,当我使用 smem 检查内存使用情况时,它只使用了大约 5GB 的 RAM。

如果我将表大小减少到只有 100 万行,我可以看到第一个查询在 3.6 秒内完成,第二次运行相同的查询,只用了 1.8 秒

我错过了什么?

最佳答案

您只有 16 GB 的 RAM,Drill 不可能使用 14 GB 的堆和 14 GB 的直接内存。这些类型的内存不重叠。

我建议您为操作系统保留 2 GB,因此您还剩下 14 GB,为直接内存分配 12 GB,为堆分配 2 GB。

您会发现一个名为 planner.width.max_per_node 的选项,其值为您的核心数的 70%。将其增加到您认为合适的数量。

您可能想阅读 the answers for this question

关于apache-drill - Apache Drill 不使用最大 RAM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35227863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com