trino集群优化
https://www.cnblogs.com/erlou96/p/16878170.html
config.properties
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 coordinator=true node-scheduler.include-coordinator=true http-server.http.port=8089 #query.max-total-memory-per-node=2GB discovery-server.enabled=true discovery.uri=http://cdh192-147.hadoop.xy:8089 #禁用保留池 (新版本已经删除了) #experimental.reserved-pool-enabled=false #在单个 worker 上面可以使用的最大的user memory值 (默认JVM max memory * 0.1)调整到 JVM max memory * 0.25 #query.max-memory-per-node=100GB #单个Query在单个Worker上允许的最大user memory + system memory 调整到 JVM max memory * 0.4 #query.max-total-memory-per-node=16GB #这个内存主要是第三方库的内存分配,无法统计跟踪。 (默认JVM max memory * 0.3)调整到 JVM max memory * 0.2 #memory.heap-headroom-per-node=8GB #单个查询在所有任务调度的节点上瞬间最大能用的内存(单个查询的峰值内存) 调整到 <= query.max-total-memory-per-node * workers * 0.8 query.max-memory=300GB #当presto集群发生OOM时的内存保护策略,配置 total-reservation 是kill 掉占用内存最大的任务 query.low-memory-killer.policy=total-reservation #延长等待时间 exchange.http-client.request-timeout=10s #从其他Presto节点获取数据的线程数。较高的值可以提高大型群集或具有很高并发性的群集的性能(默认值:25) exchange.client-threads=128 exchange.http-client.idle-timeout = 10s #并行运算符(例如联接和聚合)的默认本地并发性。较低的值对于同时运行许多查询的集群更好(默认值:16,必须是2的幂次) task.concurrency=2 task.max-worker-threads=256 #可以创建用于处理HTTP响应的最大线程数。在具有大量并发查询的群集上或在具有数百或数千个工作程序的群集上,可以调高(默认值:100) task.http-response-threads=2000 join-distribution-type=AUTOMATIC node-scheduler.max-splits-per-node=2000 query.max-stage-count=4000 #自动kill运行时长超过20分钟的sql(代替脚本kill任务,让presto 自动管理): query.max-run-time=1200s #解决新版本 remote too large 报错 exchange.http-client.max-content-length=128MB node-manager.http-client.max-content-length=64MB
jvm.config
1 2 3 4 5 6 7 8 9 10 11 12 13 -Xmx1024G -Xms1024G -XX:+UseG1GC -XX:+ExplicitGCInvokesConcurrent -XX:+HeapDumpOnOutOfMemoryError -XX:+UseGCOverheadLimit -XX:OnOutOfMemoryError=kill -9 %p -DHADOOP_USER_NAME=hdfs -Duser.timezone=Asia/Shanghai -Djdk.attach.allowAttachSelf=true -XX:G1ReservePercent=15 -XX:InitiatingHeapOccupancyPercent=40 -XX:ConcGCThreads=8