SlideShare uma empresa Scribd logo
1 de 23
Baixar para ler offline
Agenda
• Para que serve?
• Como funciona?
• Onde Otimizar?
• Como Otimizar?
Para que Serve?
A Especificação da JVM
https://docs.oracle.com/javase/specs/index.html
As Implementações Ativas
Como funciona o HotSpot (OpenJDK)
Gerenciamento de Memória na JVM
Parametrizações de JVM
Como aumentar os tamanhos máximos e mínimos da
heap:
Lidando com o Metaspace:
Estratégias de Garbage Collector
Tipos de Garbage Collector:
• Serial Garbage Collector
• Parallel Garbage Collector (Default até o Java 8)
• CMS Garbage Collector
• G1 Garbage Collector (Default a partir do Java 9)
Garbage Collector Experimentais (Java 11):
• Epsilon
• Shenandoah
• Z
Em uma escala de 1 a 5, qual é a melhor opção :
https://bit.ly/2uL2mf5
O que é Otimização de JVM?
É mais do que
parametrização, é uma
combinação de Hardware
e Software
O que é Otimização de JVM?
O que Buscar ?
• Considerando seus ambientes, você pode ganhar mais capacitando seu
hardware do que perder um bom tempo tentando otimizar a sua JVM.
Custo
• No longo prazo, é mais eficiente otimizar para estabilidade, do que
performance, ainda mais que as duas coisas sempre se sobrepõe.
Aonde você quer chegar?
• O principal passo é a monitoração, você não consegue fazer uma otimização
na JVM, nem mesmo debugar se você não tiver monitorando a JVM.
Monitore seu ambiente
• Quase sempre os problemas com a garbage collection (GC) vão apontar para
um vazamento de memória.
Memory Leaks
Monitoração - Uso de Memória
Monitoração – Uso de Memória
Monitoração – Uso de Memória
Monitoração – Garbage Collector
Standard Java Profilers – Oracle Java Mission Control
Ferramental – Eclipse Memory Analyser Tool (MAT)
Quais suas metas de Performance
• Representa quanto o sistema pode aguentar.
Throughput
• O tempo de resposta da suas aplicações
influenciam o todo.
Latência
• A quantidade de Memória requerida para o GC
rodar tranquilamente.
Footprint
Isso é só o começo
Para quem quiser ler
https://deviniciative.wordpress.com/2020/02/06/desmistifican
do-otimizacao-de-jvm/
Guia para otimização da JVM

Mais conteúdo relacionado

Semelhante a Guia para otimização da JVM

JVM and Tools - ESIG Academy
JVM and Tools - ESIG AcademyJVM and Tools - ESIG Academy
JVM and Tools - ESIG AcademyGleydson Lima
 
Rodando a BlackFriday do seu eCommerce na nuvem
Rodando a BlackFriday do seu eCommerce na nuvemRodando a BlackFriday do seu eCommerce na nuvem
Rodando a BlackFriday do seu eCommerce na nuvemAmazon Web Services LATAM
 
Introdução Java virtual machine
Introdução Java virtual machineIntrodução Java virtual machine
Introdução Java virtual machineBruno Coan
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHPFelipe Ribeiro
 
TDC2012 - Sua aplicação JAVA flutuando nas nuvens
TDC2012 - Sua aplicação JAVA flutuando nas nuvensTDC2012 - Sua aplicação JAVA flutuando nas nuvens
TDC2012 - Sua aplicação JAVA flutuando nas nuvensDextra
 
TDC2012 - Sua aplicação JAVA flutuando nas nuvens
TDC2012 - Sua aplicação JAVA flutuando nas nuvensTDC2012 - Sua aplicação JAVA flutuando nas nuvens
TDC2012 - Sua aplicação JAVA flutuando nas nuvensLeandro Guimarães
 
ClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs PhpClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs PhpCampus Party Brasil
 
Curso de Performance and Tuning - Linux
Curso de Performance and Tuning - LinuxCurso de Performance and Tuning - Linux
Curso de Performance and Tuning - LinuxDell Technologies
 
Há quanto tempo você não revisa seu ambiente de virtualização de servidores V...
Há quanto tempo você não revisa seu ambiente de virtualização de servidores V...Há quanto tempo você não revisa seu ambiente de virtualização de servidores V...
Há quanto tempo você não revisa seu ambiente de virtualização de servidores V...Bravo Tecnologia
 
Programando java independente da ide
Programando java independente da ideProgramando java independente da ide
Programando java independente da ideHeider Lopes
 
Programando java independente da ide
Programando java independente da ideProgramando java independente da ide
Programando java independente da ideHeider Lopes
 
Escalando o ambiente com MariaDB Cluster (Portuguese Edition)
Escalando o ambiente com MariaDB Cluster (Portuguese Edition)Escalando o ambiente com MariaDB Cluster (Portuguese Edition)
Escalando o ambiente com MariaDB Cluster (Portuguese Edition)Wagner Bianchi
 
JBoss-WildFly - Avançado
JBoss-WildFly - AvançadoJBoss-WildFly - Avançado
JBoss-WildFly - AvançadoAdriano Schmidt
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoelliando dias
 

Semelhante a Guia para otimização da JVM (20)

JVM and Tools - ESIG Academy
JVM and Tools - ESIG AcademyJVM and Tools - ESIG Academy
JVM and Tools - ESIG Academy
 
Rodando a BlackFriday do seu eCommerce na nuvem
Rodando a BlackFriday do seu eCommerce na nuvemRodando a BlackFriday do seu eCommerce na nuvem
Rodando a BlackFriday do seu eCommerce na nuvem
 
Introdução Java virtual machine
Introdução Java virtual machineIntrodução Java virtual machine
Introdução Java virtual machine
 
Dr Java Virtual Machine
Dr Java Virtual MachineDr Java Virtual Machine
Dr Java Virtual Machine
 
Java20141215 17[1]
Java20141215 17[1]Java20141215 17[1]
Java20141215 17[1]
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHP
 
Por dentro da jvm
Por dentro da jvmPor dentro da jvm
Por dentro da jvm
 
TDC2012 - Sua aplicação JAVA flutuando nas nuvens
TDC2012 - Sua aplicação JAVA flutuando nas nuvensTDC2012 - Sua aplicação JAVA flutuando nas nuvens
TDC2012 - Sua aplicação JAVA flutuando nas nuvens
 
TDC2012 - Sua aplicação JAVA flutuando nas nuvens
TDC2012 - Sua aplicação JAVA flutuando nas nuvensTDC2012 - Sua aplicação JAVA flutuando nas nuvens
TDC2012 - Sua aplicação JAVA flutuando nas nuvens
 
ClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs PhpClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs Php
 
Clusterização de Aplicações PHP
Clusterização de Aplicações PHPClusterização de Aplicações PHP
Clusterização de Aplicações PHP
 
Curso de Performance and Tuning - Linux
Curso de Performance and Tuning - LinuxCurso de Performance and Tuning - Linux
Curso de Performance and Tuning - Linux
 
Há quanto tempo você não revisa seu ambiente de virtualização de servidores V...
Há quanto tempo você não revisa seu ambiente de virtualização de servidores V...Há quanto tempo você não revisa seu ambiente de virtualização de servidores V...
Há quanto tempo você não revisa seu ambiente de virtualização de servidores V...
 
Programando java independente da ide
Programando java independente da ideProgramando java independente da ide
Programando java independente da ide
 
Programando java independente da ide
Programando java independente da ideProgramando java independente da ide
Programando java independente da ide
 
Escalando o ambiente com MariaDB Cluster (Portuguese Edition)
Escalando o ambiente com MariaDB Cluster (Portuguese Edition)Escalando o ambiente com MariaDB Cluster (Portuguese Edition)
Escalando o ambiente com MariaDB Cluster (Portuguese Edition)
 
JBoss-WildFly - Avançado
JBoss-WildFly - AvançadoJBoss-WildFly - Avançado
JBoss-WildFly - Avançado
 
JMeter
JMeterJMeter
JMeter
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardo
 
Java virtual machine quantas linguas fala a jvm2
Java virtual machine   quantas linguas fala a jvm2Java virtual machine   quantas linguas fala a jvm2
Java virtual machine quantas linguas fala a jvm2
 

Guia para otimização da JVM

  • 1.
  • 2.
  • 3. Agenda • Para que serve? • Como funciona? • Onde Otimizar? • Como Otimizar?
  • 5. A Especificação da JVM https://docs.oracle.com/javase/specs/index.html
  • 7. Como funciona o HotSpot (OpenJDK)
  • 9. Parametrizações de JVM Como aumentar os tamanhos máximos e mínimos da heap: Lidando com o Metaspace:
  • 10. Estratégias de Garbage Collector Tipos de Garbage Collector: • Serial Garbage Collector • Parallel Garbage Collector (Default até o Java 8) • CMS Garbage Collector • G1 Garbage Collector (Default a partir do Java 9) Garbage Collector Experimentais (Java 11): • Epsilon • Shenandoah • Z Em uma escala de 1 a 5, qual é a melhor opção : https://bit.ly/2uL2mf5
  • 11. O que é Otimização de JVM? É mais do que parametrização, é uma combinação de Hardware e Software
  • 12. O que é Otimização de JVM?
  • 13. O que Buscar ? • Considerando seus ambientes, você pode ganhar mais capacitando seu hardware do que perder um bom tempo tentando otimizar a sua JVM. Custo • No longo prazo, é mais eficiente otimizar para estabilidade, do que performance, ainda mais que as duas coisas sempre se sobrepõe. Aonde você quer chegar? • O principal passo é a monitoração, você não consegue fazer uma otimização na JVM, nem mesmo debugar se você não tiver monitorando a JVM. Monitore seu ambiente • Quase sempre os problemas com a garbage collection (GC) vão apontar para um vazamento de memória. Memory Leaks
  • 14. Monitoração - Uso de Memória
  • 15. Monitoração – Uso de Memória
  • 16. Monitoração – Uso de Memória
  • 18. Standard Java Profilers – Oracle Java Mission Control
  • 19. Ferramental – Eclipse Memory Analyser Tool (MAT)
  • 20. Quais suas metas de Performance • Representa quanto o sistema pode aguentar. Throughput • O tempo de resposta da suas aplicações influenciam o todo. Latência • A quantidade de Memória requerida para o GC rodar tranquilamente. Footprint
  • 21. Isso é só o começo
  • 22. Para quem quiser ler https://deviniciative.wordpress.com/2020/02/06/desmistifican do-otimizacao-de-jvm/