我們使用 presto 集群作為分布式 SQL 查詢我們的集群規(guī)模1臺機器作為協(xié)調(diào)機12臺presto worker機器每臺機器64G內(nèi)存大小,每臺機器只安裝presto應(yīng)用程序關(guān)于jvm.config工人,看起來像這樣-server
-Xmn10G
-Xmx50G
-XX:+UseG1GC
-XX:+ExplicitGCInvokesConcurrent
-XX:+CMSClassUnloadingEnabled
-XX:+AggressiveOpts
-XX:+HeapDumpOnOutOfMemoryError以及jvm.config像這樣的急速協(xié)調(diào)器-server
-Xmn4096M
-Xmx30G
-XX:ReservedCodeCacheSize=600M
-XX:MaxHeapFreeRatio=30
-XX:MinHeapFreeRatio=10
-XX:+UseG1GC我們設(shè)置Xmn和Xmx值如上,但這個設(shè)置只是估計我們能得到幫助如何根據(jù) MAX 內(nèi)存調(diào)整 Xmn 和 Xmx - 64G 所以 presto 集群性能將調(diào)整到最佳實踐大小
1 回答

大話西游666
TA貢獻1817條經(jīng)驗 獲得超14個贊
通常,沒有理由設(shè)置-Xmn
(新生代的大?。驗?JVM 會在運行時調(diào)整這個大小。或者,換句話說,您必須有充分的理由來設(shè)置-Xmn
.
-Xmx
-- 你基本上是想告訴 JVM 它可以使用所有內(nèi)存,但同時需要考慮 JVM 中的非堆內(nèi)存(某些緩沖區(qū)、GC 數(shù)據(jù)結(jié)構(gòu)等)和操作系統(tǒng)級占用的內(nèi)存服務(wù)。在 Presto 案例中,根據(jù)經(jīng)驗,您通常將-Xmx
可用內(nèi)存設(shè)置為 80%,然后根據(jù)您對工作負載的監(jiān)控對其進行調(diào)整。
關(guān)于您設(shè)置的其他屬性:
-XX:+CMSClassUnloadingEnabled
是多余的(不使用 CMS 垃圾收集器,G1 是,根據(jù)-XX:+UseG1GC
標志)-XX:+AggressiveOpts
不太可能是你想要設(shè)置的-XX:MinHeapFreeRatio
,?-XX:MaxHeapFreeRatio
-- 如果 Presto 是盒子上唯一的服務(wù),你不想設(shè)置這些您缺少一些推薦的屬性(我們推薦每個屬性都是有原因的)。
添加回答
舉報
0/150
提交
取消