当前位置:网站首页>[Presto] Presto parameter configuration optimization
[Presto] Presto parameter configuration optimization
2022-07-06 11:31:00 【kiraraLou】
Preface
Former company presto The service has not been very stable , With resource group , Configuration optimization , Code secondary development .presto The service has basically stabilized . This record presto What optimization has been done to service parameter configuration .
The production environment here JVM
Are configured as 40G.
config.properties
- Disable reservation pool
Reserved Pool : When you have one worker Of General Pool Out of memory ,reserved pool Will work . This is the time coordinator The cluster will select the query that consumes the most memory , And assign the query to all worker Of reserved pool.
Reserved Pool The value is equal to the query.max-total-memory-per-node Size . query.max-total-memory-per-node Is a single node User memory and system memory Maximum occupancy .
and Reserved Pool It is reserved by the system at startup , Moving together will occupy , So now there's a question , In reality , We seldom use Reserved Pool, And it also takes up a lot of memory resources .
So we can configure parameters
experimental.reserved-pool-enabled=false
- query.max-memory-per-node
In a single worker The largest one that can be used above user memory value ( Default JVM max memory * 0.1) To adjust to JVM max memory * 0.25
query.max-memory-per-node=10GB
- query.max-total-memory-per-node
Single Query In a single Worker The maximum allowed on the user memory + system memory To adjust to JVM max memory * 0.4
query.max-total-memory-per-node=16GB
- memory.heap-headroom-per-node
This memory is mainly the memory allocation of third-party libraries , Unable to track statistics . ( Default JVM max memory * 0.3) To adjust to JVM max memory * 0.2
memory.heap-headroom-per-node=8GB
- query.max-memory
The maximum memory that a single query can use instantly on all task scheduling nodes ( Peak memory for a single query ) To adjust to <= query.max-total-memory-per-node * workers * 0.8
query.max-memory=192GB
- query.low-memory-killer.policy
When presto Occurrence cluster OOM Memory protection strategy when , To configure total-reservation yes kill Lose the task that occupies the most memory .
query.low-memory-killer.policy=total-reservation
- More configuration
# Extend the waiting time
exchange.http-client.request-timeout=10s
# From the other Presto The number of threads that the node obtains data . Higher values can improve the performance of large clusters or clusters with high concurrency ( The default value is :25)
exchange.client-threads=50
exchange.http-client.idle-timeout = 10s
# Parallel operator ( For example, join and aggregate ) Default local concurrency . Lower values are better for clusters that run many queries at the same time ( The default value is :16, Must be 2 The power of )
task.concurrency=2
task.max-worker-threads=60
# You can create for processing HTTP The maximum number of threads responding . On a cluster with a large number of concurrent queries or on a cluster with hundreds or thousands of workers , It can be raised ( The default value is :100)
task.http-response-threads=200
join-distribution-type=AUTOMATIC
node-scheduler.max-splits-per-node=200
query.max-stage-count=400
# Automatically kill Run longer than 20 Minutes of sql( Replace script kill Mission , Give Way presto Automatic management ):
query.max-run-time=1200s
# Solve the new version remote too large Report errors
exchange.http-client.max-content-length=128MB
node-manager.http-client.max-content-length=64MB
jvm.config
-Xmx40G
-Xms40G
-XX:-UseBiasedLocking
-XX:+UseG1GC
-XX:+ExplicitGCInvokesConcurrent
-XX:+HeapDumpOnOutOfMemoryError
-XX:+UseGCOverheadLimit
-XX:OnOutOfMemoryError=kill -9 %p
-DHADOOP_USER_NAME=hive
-Duser.timezone=Asia/Shanghai
-Djdk.attach.allowAttachSelf=true
-Djava.security.krb5.conf=/etc/krb5.conf
-XX:G1ReservePercent=15
-XX:InitiatingHeapOccupancyPercent=40
-XX:ConcGCThreads=8
边栏推荐
- L2-007 family real estate (25 points)
- Base de données Advanced Learning Notes - - SQL statements
- Codeforces Round #771 (Div. 2)
- [蓝桥杯2021初赛] 砝码称重
- nodejs连接Mysql
- Double to int precision loss
- Image recognition - pyteseract TesseractNotFoundError: tesseract is not installed or it‘s not in your path
- MySQL and C language connection (vs2019 version)
- Integration test practice (1) theoretical basis
- Solution of deleting path variable by mistake
猜你喜欢
Dotnet replaces asp Net core's underlying communication is the IPC Library of named pipes
Rhcsa certification exam exercise (configured on the first host)
In the era of DFI dividends, can TGP become a new benchmark for future DFI?
Learn winpwn (3) -- sEH from scratch
How to build a new project for keil5mdk (with super detailed drawings)
MySQL与c语言连接(vs2019版)
Double to int precision loss
PHP - whether the setting error displays -php xxx When PHP executes, there is no code exception prompt
[蓝桥杯2017初赛]方格分割
2019腾讯暑期实习生正式笔试
随机推荐
QT creator uses Valgrind code analysis tool
Unable to call numpy in pycharm, with an error modulenotfounderror: no module named 'numpy‘
What does BSP mean
Niuke novice monthly race 40
vs2019 桌面程序快速入门
L2-004 is this a binary search tree? (25 points)
When using lambda to pass parameters in a loop, the parameters are always the same value
error C4996: ‘strcpy‘: This function or variable may be unsafe. Consider using strcpy_ s instead
AcWing 1298. Solution to Cao Chong's pig raising problem
Base de données Advanced Learning Notes - - SQL statements
AcWing 1294.樱花 题解
搞笑漫画:程序员的逻辑
Windows下安装MongDB教程、Redis教程
What does usart1 mean
QT creator specify editor settings
[Blue Bridge Cup 2017 preliminary] grid division
基于apache-jena的知识问答
Codeforces Round #753 (Div. 3)
02 staff information management after the actual project
QT creator runs the Valgrind tool on external applications