为了账号安全,请及时绑定邮箱和手机立即绑定

Presto + query.max-memory-per-node 配置

Presto + query.max-memory-per-node 配置

四季花海 2023-05-24 14:38:27
我们没有在我们的 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我的问题我们需要设置query.max-memory-per-nodein吗config.properties ?或 , 的值query.max-memory-per-node将由 presto 设置但正如我们从日志中看到的那样,presto set only - 4402341478.40B(几千兆字节) ,所以这是小尺寸当查询需要更多内存时,查询可能会崩溃请您的意见,我们是否需要设置参数 query.max-memory-per-node - 在config.properties为了将更高的值设置为20-30 GIGA
查看完整描述

1 回答

?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

默认为query.max-memory-per-node可用堆内存的 10%。此属性的默认值在此处设置:

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

将所有这些放在一起,我希望使用默认值可以在代码上同时运行 3-5 个大型查询。

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


查看完整回答
反对 回复 2023-05-24
  • 1 回答
  • 0 关注
  • 101 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信