为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

汪汪一只猫 2023-05-24 14:58:02
我们使用 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 是盒子上唯一的服务,你不想设置这些

  • 您缺少一些推荐的属性(我们推荐每个属性都是有原因的)。

查看完整回答
反对 回复 2023-05-24
  • 1 回答
  • 0 关注
  • 111 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信