Presto集群+如何根据内存资源调优jvm.config

我们使用 presto 集群作为分布式 SQL 查询

我们的集群规模

1台机器作为协调机

12台presto worker机器

每台机器64G内存大小,每台机器只安装presto应用程序

关于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

我们设置XmnXmx值如上,但这个设置只是估计

我们能得到帮助如何根据 MAX 内存调整 Xmn 和 Xmx - 64G 所以 presto 集群性能将调整到最佳实践大小


汪汪一只猫
浏览 112回答 1
1回答

大话西游666

通常,没有理由设置-Xmn(新生代的大小),因为 JVM 会在运行时调整这个大小。或者,换句话说,您必须有充分的理由来设置-Xmn.-Xmx-- 你基本上是想告诉 JVM 它可以使用所有内存,但同时需要考虑 JVM 中的非堆内存(某些缓冲区、GC 数据结构等)和操作系统级占用的内存服务。在 Presto 案例中,根据经验,您通常将-Xmx可用内存设置为 80%,然后根据您对工作负载的监控对其进行调整。关于您设置的其他属性:-XX:+CMSClassUnloadingEnabled是多余的(不使用 CMS 垃圾收集器,G1 是,根据-XX:+UseG1GC标志)-XX:+AggressiveOpts不太可能是你想要设置的-XX:MinHeapFreeRatio, -XX:MaxHeapFreeRatio-- 如果 Presto 是盒子上唯一的服务,你不想设置这些您缺少一些推荐的属性(我们推荐每个属性都是有原因的)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java