Presto 之GENERAL POOL & RESERVED POOL

在Presto中,查询内存分为GENERAL_POOL和RESERVED_POOL。初始查询在GENERAL_POOL运行,高内存消耗查询会被转移至RESERVED_POOL,该池一次仅执行一个查询。内存大小由query.max-total-memory-per-node和xmx设置决定,启用或关闭reserved-pool会影响内存分配策略。
摘要由CSDN通过智能技术生成
一. 前言

        我们知道,在Presto中,查询内存的分GENERAL内存池内存和RESERVED内存池内存。本文主要讲述在Presto中GENERAL POOL和RESERVED POOL的划分意义以及大小计算。

二. GENERAL_POOL和RESERVED_POOL

     GENERAL_POOL和RESERVED_POOL 具有如下特点:

  1. 在Presto中,查询任务一开始都会被提交到GENERAL POOL中运行。

  2. RESERVED内存池设计是为了给最耗内存的那个查询使用的,并且此内存池最多只会执行一条查询。

  3. Presto会定期扫描所有查询,当GENERAL使用内存被占满但是RESERVED又是空的时候,Presto将执行最耗内存的查询从通用区移到保留区内执行。

  4. 不在保留区的查询,只能申请使用通用区的内存使用。

     上述的核心代码如下所示:

三. Presto中GENERAL_POOL和RESERVED_POOL 的大小管理

      1. 开启保留区内存时(开启experimental.reserved-pool-enabled):

       保留区内存的大小 = query.max-total-memory-per-node

      通用区内存的大小 = xmx大小 - memory.heap-headroom-per-node的大小 - 保留区的大小

       2. 关闭保留区内存时:

       保留区内存的大小 = 0

       通用区内存的大小 = xmx大小 - memory.heap-headroom-per-node的大小

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值