我是靠谱客的博主 热心大叔,最近开发中收集的这篇文章主要介绍presto内存配置1. presto的内存结构2. 参考文献,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

  • 1. presto的内存结构
  • 2. 参考文献

1. presto的内存结构

下图是presto-worker节点的内存示意图:
在这里插入图片描述 图片来源于互联网
可以粗略的认为presto的jvm.properties配置文件中的jvm堆内存会被分为3份:

  1. 系统内存池(SystemMemoryPool)
  2. 保留内存池(ReservedMemoryPool)
  3. 普通内存池(GeneralMemoryPool)

这三者的区别:

  • System Pool 是用来保留给系统使用的,默认为40%的内存空间留给系统使用。
  • Reserved PoolGeneral Pool 是用来分配query运行时内存的。
    其中大部分的query使用general Pool。 而最大的一个query,使用Reserved Pool, 所以Reserved Pool的空间等同于一个query在一个机器上运行使用的最大空间大小。
    General则享有除了System Pool和General Pool之外的其他内存空间。

presto的官方文档中有几个内存配置项:

  • 单个节点维度的内存配置项:

    • query.max-memory-per-node一个 query可以使用的最大内存(用户内存),这对应的就是Reserved Pool的内存。默认jvm堆内存*0.1
    • query.max-total-memory-per-node一个 query可以使用的最大内存(用户内存+系统内存,即包含系SystemMemoryPool内存),默认jvm堆内存*0.3
    • memory.heap-headroom-per-node,非查询使用的内存 。不确定是否属于SystemMemoryPool
  • presto集群维度的内存配置项:

    • query.max-memory,在presto集群中,一个query可以使用的最大内存(用户内存)。默认20G
    • query.max-total-memory,在presto集群中,一个query可以使用的最大内存(用户内存+系统内存,即包含系SystemMemoryPool内存)。默认query.max-memory*2

举个例子,presto-worker机器配置为32C128G,worker节点数为8,按如下进行分配:

  • presto的jvm堆内存分配70G,
  • query.max-memory-per-node分配40G,
  • query.max-total-memory-per-node分配45G,
  • query.max-memory分配320G,40G*8=320G,
  • query.max-total-memory分配360G,45G*8=360G,
  • memory.heap-headroom-per-node分配21G,jvm堆内存*0.3=70G*0.3=21G(假如走的默认配置)。

根据上述配置可推出,

  • 耗费内存最大的 一个 query,
    • 在每个worker上能使用的内存=query.max-total-memory-per-node=45G,
    • 在整个presto集群上能使用的内存=query.max-total-memory=360G。
  • 其他query,
    • 在每个worker上能使用的内存=jvm堆内存 - query.max-total-memory-per-node - memory.heap-headroom-per-node = 70G - 45G - 21G = 4G,
    • 在整个presto集群上能使用的内存=4G*8=32G,感觉这里给少了。。

注:这个配置不一定合理,只是举这个例子来理解presto的内存配置。

2. 参考文献

[1] 深入理解Presto(3):Presto内存管理
[2] Presto内存调优及原理(基础篇)
[3] Presto 0.269 Documentation

最后

以上就是热心大叔为你收集整理的presto内存配置1. presto的内存结构2. 参考文献的全部内容,希望文章能够帮你解决presto内存配置1. presto的内存结构2. 参考文献所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部