estamos utilizando o cluster presto como consulta SQL distribuída
nosso tamanho do cluster
Uma máquina como máquina coordenador
12 máquinas de trabalhadores presto
cada máquina é 64G tamanho da memória, e em cada máquina única aplicação presto instalado
sobre o jvm.config
sobre os trabalhadores, olhar como este
-server
-Xmn10G
-Xmx50G
-XX:+UseG1GC
-XX:+ExplicitGCInvokesConcurrent
-XX:+CMSClassUnloadingEnabled
-XX:+AggressiveOpts
-XX:+HeapDumpOnOutOfMemoryError
e jvm.config
no coordenador presto, gosto como esta
-server
-Xmn4096M
-Xmx30G
-XX:ReservedCodeCacheSize=600M
-XX:MaxHeapFreeRatio=30
-XX:MinHeapFreeRatio=10
-XX:+UseG1GC
vamos definir os Xmn
e Xmx
valores como acima, mas esta definição só é estimativa
podemos obter ajuda como ajustar o XmnI e Xmx de acordo com a memória MAX - 64G assim sintonia conjunto presto desempenho vontade para o melhor dimensionamento prática
Normalmente, não há nenhuma razão para set -Xmn
(tamanho do jovem gen), porque a melodia vontade JVM deste tamanho em tempo de execução. Ou, em outras palavras, você tem que ter boas razões para definir -Xmn
.
-Xmx
- você basicamente quer dizer a JVM pode usar toda a memória, mas ao mesmo tempo precisam conta para memória não-heap na JVM (certos tampões, estruturas de dados GC, etc.) e memória ocupada por OS-nível Serviços. No caso Presto, como uma regra de ouro que você normalmente definido -Xmx
a 80% da memória disponível e ajustá-lo mais tarde, com base no seu monitoramento de suas cargas de trabalho.
Em relação a outras propriedades que você definir:
-XX:+CMSClassUnloadingEnabled
é redundante (colelctor lixo CMS não é usado, o G1 é, como por-XX:+UseG1GC
bandeira)-XX:+AggressiveOpts
É improvável algo que você deseja definir-XX:MinHeapFreeRatio
,-XX:MaxHeapFreeRatio
- se Presto é o único serviço na caixa, você não deseja definir estes- você está perdendo algumas propriedades recomendados (e nós recomendamos a cada um deles por uma razão). veja https://prestosql.io/docs/current/installation/deployment.html#jvm-config