我们使用 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我们设置Xmn和Xmx值如上,但这个设置只是估计我们能得到帮助如何根据 MAX 内存调整 Xmn 和 Xmx - 64G 所以 presto 集群性能将调整到最佳实践大小
1 回答
大话西游666
TA贡献1817条经验 获得超14个赞
通常,没有理由设置-Xmn
(新生代的大小),因为 JVM 会在运行时调整这个大小。或者,换句话说,您必须有充分的理由来设置-Xmn
.
-Xmx
-- 你基本上是想告诉 JVM 它可以使用所有内存,但同时需要考虑 JVM 中的非堆内存(某些缓冲区、GC 数据结构等)和操作系统级占用的内存服务。在 Presto 案例中,根据经验,您通常将-Xmx
可用内存设置为 80%,然后根据您对工作负载的监控对其进行调整。
关于您设置的其他属性:
-XX:+CMSClassUnloadingEnabled
是多余的(不使用 CMS 垃圾收集器,G1 是,根据-XX:+UseG1GC
标志)-XX:+AggressiveOpts
不太可能是你想要设置的-XX:MinHeapFreeRatio
,-XX:MaxHeapFreeRatio
-- 如果 Presto 是盒子上唯一的服务,你不想设置这些您缺少一些推荐的属性(我们推荐每个属性都是有原因的)。
添加回答
举报
0/150
提交
取消