我们使用presto集群作为分布式SQL查询。
我们的集群大小
1台机器作为协调机
12台印前工人机器
每台机器的内存大小为64G,每台机器上只安装预置应用程序。
关于工人身上的jvm.config,如下所示
-server
-Xmn10G
-Xmx50G
-XX:+UseG1GC
-XX:+ExplicitGCInvokesConcurrent
-XX:+CMSClassUnloadingEnabled
-XX:+AggressiveOpts
-XX:+HeapDumpOnOutOfMemoryError前协调员的jvm.config,就像这样
-server
-Xmn4096M
-Xmx30G
-XX:ReservedCodeCacheSize=600M
-XX:MaxHeapFreeRatio=30
-XX:MinHeapFreeRatio=10
-XX:+UseG1GC我们像上面一样设置Xmn和Xmx值,但是这个设置只是估计
我们能得到帮助吗?如何根据MAX memory - 64G来调优Xmn和Xmx,这样presto集群的性能就可以调整到最佳实践大小。
发布于 2019-08-08 17:06:45
通常,没有理由设置-Xmn (年轻一代的大小),因为JVM将在运行时调整这个大小。或者,换句话说,您必须有很好的理由设置-Xmn。
-Xmx --您基本上想告诉JVM它可以使用所有的内存,但同时需要考虑JVM中的非堆内存(某些缓冲区、GC数据结构等)。以及操作系统级服务占用的内存。在Presto情况下,根据经验,通常将-Xmx设置为80%的可用内存,然后根据对工作负载的监视对其进行优化。
关于您设置的其他属性:
-XX:+CMSClassUnloadingEnabled是多余的(按照-XX:+UseG1GC标志,不使用CMS垃圾收集器,而是使用-XX:+UseG1GC)。-XX:+AggressiveOpts不太可能是您想要设置的-XX:MinHeapFreeRatio,-XX:MaxHeapFreeRatio --如果Presto是盒子上唯一的服务,您不想设置这些https://stackoverflow.com/questions/57408536
复制相似问题