Presto参数设置

Presto内存配置是开发者很关心的核心配置:

很难给出确切的数字,因为这些数字应该根据您的工作量来设置。所以,我能做的就是为你提供一些数字,然后你应该试验这些配置和你的工作量来微调它们。

假设每个节点有47G,你可以从35G的Xmx开始,因为你应该为本机内存留出一些开销,并为机器上运行的操作系统和其他守护进程留出一些空间,如果有的话。在生产中,我们使用32M的G1区域大小,这也是部署文档中记录的值。

鉴于最大堆大小为35G,我认为您可以开始尝试使用以下值并确定适合您的工作负载的值:

query.max-memory-per-node = 12GB

query.max-total-memory-per-node = 15GB

memory.heap-headroom-per-node = 8GB(这是作为余量/缓冲区留出的堆内存量(例如,用于未跟踪的分配))。

每个节点的净空间为8G,最大总内存为15G,每个工作站的总体池大小为35-8-15 = 12G,整个群集中的12G * 11 = 132G。当我们确定query.max-memory(峰值全局用户内存限制)时,我们还会考虑散列分区计数(query.initial-hash-partitions配置,即分布式连接和聚合的分区数)。由于你有11个节点,你可以设置query.initial-hash-partitions 为8,如果我们设置query.max-memory为48G,将导致每个节点内存使用量大约48/8 = 6GB(如果没有偏差,数据分布均匀),并且因为我们有query.max-memory-per-node12GB,这意味着我们允许偏斜因子为12/6 = 2(也就是说,当数据分布不均时,我们允许任务消耗两倍的内存)。同样,你一定要试验和调整这些值,并弄清楚什么对你有用。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 9,552评论 0 13
  • 版权声明:本文为博主原创文章,未经博主允许不得转载。https://www.jianshu.com/p/979ec...
    Moon_魔宽阅读 5,770评论 0 3
  • 1. 安装: 要求至少Java 8(推荐使用Oracle JDK version 1.8.0_121)并设置$JA...
    simonsgj阅读 2,308评论 0 9
  • 突然想起曾经一起上课的一个女生,她身高不高,长发披肩,容貌清秀,骨子里带着安静,经常上课坐在她旁边打盹,而每次醒来...
    燕过无影阅读 273评论 0 0
  • “这就好像一些非常勇敢顽强的英雄有时也会跪下来祈求上帝的恩赐。” 我总有一种不安的情绪,因为我是中...
    鲲_3408阅读 285评论 0 0