Presto中各类内存的清晰解释

Arc*_*hon 5 presto

我对 Presto 中的内存设置感到非常困惑。请检查以下内容:

  1. query.max-memory

  2. query.max-memory-per-node基本配置在此输入图像描述

  3. query.max-total-memory0.205 发布在此输入图像描述

  4. resources.reserved-system-memory管理属性在此输入图像描述

  5. 内存池(通用池和保留池) 在此输入图像描述

我能找到的就是这些。

这是我的 Presto 设置:

  1. 等/config.properties

查询.最大内存=2.25GB
查询.最大总内存=2.25GB
查询.每个节点最大内存=0.75GB

  1. jvm: -Xmx3G -Xms3G

根据我的设置,我发现了以下规则:

  1. query.max-memory-per-node<= jvm * 0.25

  2. 一般Pool = jvm * 0.4,与默认值相同resources.reserved-system-memory

  3. 预留池 = jvm * 0.3

这是我的问题:

  1. 各种内存设置之间的关系。(比如resources.reserved-system-memoryGeneral Pool?query.max-total-memory=用户内存+系统内存,什么是用户内存和系统内存?)

  2. 通用池和保留池有什么用?我怎样才能改变他们的价值观?

  3. General Pool(jvm的40%),Reserved Pool(jvm的30%),jvm的最后30%在哪里?或者 Presto 如何分配我的 3GB jvm 内存?

Arc*_*hon 2

reserved = query.max-memory-per-node 
system = 40% of heap 
general = heap - system - reserved 
Run Code Online (Sandbox Code Playgroud)