Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 普雷斯托+;query.max-memory-per-node配置_Java_Presto - Fatal编程技术网

Java 普雷斯托+;query.max-memory-per-node配置

Java 普雷斯托+;query.max-memory-per-node配置,java,presto,Java,Presto,我们没有在presto workers中配置参数-query.max memory per node 从日志中可以看出,query.max memory per node的值是自动设置的 grep -r "query.max-memory-per-node" /presto/data/var/log/server.log 2019-08-08T14:25:03.840Z INFO main Bootstrap query.max-memory-per-node

我们没有在presto workers中配置参数-
query.max memory per node

从日志中可以看出,
query.max memory per node
的值是自动设置的

grep -r "query.max-memory-per-node"  /presto/data/var/log/server.log
2019-08-08T14:25:03.840Z    INFO    main    Bootstrap       query.max-memory-per-node                              4402341478.40B
我的问题

我们是否需要在
config.properties
中设置
query.max memory per node

查询的值。每个节点的最大内存将由presto设置

但正如我们从日志中看到的,presto只设置了-
4402341478.40B
(几千兆字节),所以这个大小很小

当查询需要更多内存时,查询可能会崩溃

请给出您的意见,我们是否需要在
config.properties
中设置参数
query.max memory per node

为了将更高的值设置为
20-30千兆


参考-

查询的默认值。每个节点的最大内存为可用堆内存的10%。此属性的默认设置如下:

IIRC我们设置了默认值,这样您就可以在集群中运行一些大型查询。仅从这个值还不清楚确切的数字。如果您查看上面链接的文件中的配置,您将看到系统首先为“未计算内存分配”保留堆的30%,因为Presto不会跟踪所有分配。然后
query.max memory per node
只是对“用户”内存的限制,这是由查询作者控制的内存,例如
groupby
join
哈希表。该值不包括由Presto自动管理的输入和输出缓冲区

所有这些加在一起,我希望使用默认值,您可以在代码上并发运行3-5个大型查询


至于如何设置这些,这实际上取决于您的工作量。如果您希望有一个大的混合工作负载,那么默认值可能适合您。如果您想将整个集群专用于一个工作进程,可以将值增加到接近堆大小(确保为未跟踪的分配留出空间)。

首先非常感谢您给出了关于我的集群的明确答案-是的,我们希望有一个大的混合工作负载,因此,从您的回答中,我可以理解将query.max-memory-per-node设置为堆大小(示例query.max-memory-per-node=50GB)将非常有用,我们的Xmx是55GB,因此如果我错了,请更正我的错误-:)另一件小事-我们需要在config.properties中设置query.max-memory-per-node吗?