我們使用 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 會在運行時調整這個大小?;蛘撸瑩Q句話說,您必須有充分的理由來設置-Xmn
.
-Xmx
-- 你基本上是想告訴 JVM 它可以使用所有內存,但同時需要考慮 JVM 中的非堆內存(某些緩沖區、GC 數據結構等)和操作系統級占用的內存服務。在 Presto 案例中,根據經驗,您通常將-Xmx
可用內存設置為 80%,然后根據您對工作負載的監控對其進行調整。
關于您設置的其他屬性:
-XX:+CMSClassUnloadingEnabled
是多余的(不使用 CMS 垃圾收集器,G1 是,根據-XX:+UseG1GC
標志)-XX:+AggressiveOpts
不太可能是你想要設置的-XX:MinHeapFreeRatio
,?-XX:MaxHeapFreeRatio
-- 如果 Presto 是盒子上唯一的服務,你不想設置這些您缺少一些推薦的屬性(我們推薦每個屬性都是有原因的)。
添加回答
舉報
0/150
提交
取消