Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon como posso configurar parâmetros JVM para minimizar pausas na coleta de lixo


como posso configurar parâmetros JVM para minimizar pausas na coleta de lixo


Para configurar parâmetros JVM para minimizar pausas na coleta de lixo, você pode seguir estas etapas:

1. Defina o tamanho do heap:

- Defina o tamanho máximo de heap:
- Use o sinalizador `-Xmx` para definir o tamanho máximo de heap.
- Por exemplo, `-Xmx2g` define o tamanho máximo de heap para 2 GB.

- Defina o tamanho inicial do heap:
- Use o sinalizador `-Xms` para definir o tamanho inicial do heap.
- Por exemplo, `-Xms2g` define o tamanho inicial do heap para 2 GB.

2. Defina o tamanho da geração jovem:

- Defina o tamanho da geração jovem:
- Use o sinalizador `-Xmn` para definir o tamanho da geração jovem.
- Por exemplo, `-Xmn1g` define o tamanho da geração jovem para 1 GB.

3. Configure o Coletor de Lixo:

- Use o coletor de lixo Garbage-First (G1):
- Use o sinalizador `-XX:+UseG1GC` para habilitar o coletor de lixo G1.
- Este coletor foi projetado para minimizar os tempos de pausa.

4. Defina o tempo máximo de pausa:

- Defina o tempo máximo de pausa:
- Use o sinalizador `-XX:MaxGCPauseMillis` para definir o tempo máximo de pausa.
- Por exemplo, `-XX:MaxGCPauseMillis=200` define o tempo máximo de pausa para 200 milissegundos.

5. Definir os threads de GC paralelos:

- Defina o número de threads de GC paralelos:
- Use o sinalizador `-XX:ParallelGCThreads` para definir o número de threads GC paralelos.
- Por exemplo, `-XX:ParallelGCThreads=20` define o número de threads GC paralelos para 20.

6. Definir os threads de GC simultâneos:

- Defina o número de threads de GC simultâneos:
- Use o sinalizador `-XX:ConcGCThreads` para definir o número de threads GC simultâneos.
- Por exemplo, `-XX:ConcGCThreads=5` define o número de threads GC simultâneos como 5.

7. Defina a porcentagem inicial de ocupação do heap:

- Definir a porcentagem inicial de ocupação do heap:
- Use o sinalizador `-XX:InitiatingHeapOccupancyPercent` para definir a porcentagem de ocupação do heap inicial.
- Por exemplo, `-XX:InitiatingHeapOccupancyPercent=70` define a porcentagem de ocupação do heap inicial para 70%.

8. Monitorar e ajustar:

- Monitorar coleta de lixo:
- Use ferramentas como VisualVM ou GCeasy para monitorar a coleta de lixo.
- Ajuste os parâmetros da JVM conforme necessário para minimizar os tempos de pausa.

Seguindo estas etapas, é possível configurar parâmetros JVM para minimizar pausas na coleta de lixo e garantir desempenho eficiente do aplicativo.

Citações:
[1] https://www.uber.com/blog/jvm-tuning-garbage-collection/
[2] https://docs.datastax.com/en/dse/6.8/managing/operations/configure-garbage-first-collection.html
[3] https://sematext.com/blog/java-garbage-collection-tuning/
[4] https://docs.oracle.com/cd/E55119_01/doc.71/e55122/cnf_jvmgc.htm
[5] https://docs.oracle.com/cd/E40972_01/doc.70/e40973/cnf_jvmgc.htm