31
ANÁLISE DE DESEMPENHO DAS ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA Luciano Jerez Chaves Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade Federal de Juiz de Fora Universidade Federal de Juiz de Fora 12 de Dezembro de 2007

Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA

ANÁLISE DE DESEMPENHO DASANÁLISE DE DESEMPENHO DASIMPLEMENTAÇÕES DE COLETA DELIXO DA MÁQUINA VIRTUAL JAVA

Luciano Jerez ChavesOrientador: Prof. Marcelo Lobosco, D.Sc.

Universidade Federal de Juiz de ForaUniversidade Federal de Juiz de Fora12 de Dezembro de 2007

Page 2: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA

AGENDA

ContextualizaçãoçMotivaçãoAlgoritmos de coleta de lixoColetores na Máquina Virtual JavaAvaliação de desempenhoConclusõesTrabalhos futuros

2

Page 3: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA

CONTEXTUALIZAÇÃO

O gerenciamento de memória:g

ManualM l kMemory leakDangling reference

AutomáticoGarbage CollectionMecanismo antigoSmalltalk, Lisp, ML, Prolog, Java, C#

3

Page 4: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA

MOTIVAÇÃO

Coletores de Lixo:SeguroEficienteT E F üê iTempo x Espaço x Freqüência

ObjetivosObjetivosAvaliar algoritmos de coleta distintos em diferentes classes de aplicaçõesE t do a Má i a Vi t al Ja aEstudo na Máquina Virtual Java

4

Page 5: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA

A COLETA DE LIXO

Três perguntas:p g

Como identificar o lixo?Id tifi ã lí it t átiIdentificação explícita ou automática

Quando coletar o lixo?Esperar até o último momentoRealizar uma coleta contínua

Como realizar a limpeza?ReusoReciclagemg

5

Page 6: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA

CONTAGEM DE REFERÊNCIAS

IncrementalIncrementalParaleloTempo real

São pouco eficientesNão são efetivosNão são efetivos

6

Page 7: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA

ALGORITMOS DE RASTREAMENTO

Duas etapas:pDetecção do lixo

Conhecimento do grafo de relações entre os objetos

LiberaçãoDiferentes abordagens como compactação e cópia

Para a liberação...

Marcação e varredura (Mark-Sweep)

Marcação e compactação (Mark-Sweep Compact) 7

Page 8: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA

ALGORITMOS DE RASTREAMENTO

Para a liberação...çColeta com cópia (copying collection)

8

Page 9: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA

ALGORITMOS DE RASTREAMENTO

Rastreamento incrementalAbstração em três cores (branco, preto e cinza)Treadmill:

9

Page 10: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA

COLETA POR GERAÇÕES

Gerações novas e antigasGerações novas e antigasColetas distintas em cada geraçãoGerações não são independentes.

10Referências entre objetos de gerações diferentes

Page 11: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA

COLETORES NA MÁQUINA VIRTUAL JAVA

C Coletor serial:Coleta com cópia na geração jovemColeta com compactação na geração estável e na p ç g çgeração permanente 11

Page 12: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA

COLETORES NA MÁQUINA VIRTUAL JAVA

Coletor Paralelo

Paralelismo em uma ou ambas as geraçõesParalelismo em uma ou ambas as geraçõesPequena fragmentação na geração estável

12

Page 13: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA

COLETORES NA MÁQUINA VIRTUAL JAVA

Coletor concorrente

Modo incremental13

Page 14: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA

DIVISÃO DE MEMÓRIA DA HEAP

14

Page 15: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA

AVALIAÇÃO DE DESEMPENHO

Indicadores:Throughput

15g p

FootprintTempos de execução e de pausas

Page 16: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA

AVALIAÇÃO DE DESEMPENHO - GCOLD

GCOldModela aplicações com uso da geração estávelTamanho pequeno de heap utilizado

Throughput baixo para todas as configuraçõesmelhores resultados para o CMS

FootprintMaiores para os coletores CMS clientMenores para os coletores CMS serverp

Destaque para o CMS paralelo na geração jovem 4 melhores indicadores

16

Page 17: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA

AVALIAÇÃO DE DESEMPENHO - GCBENCH

GCBenchModela carga inicial de dados na heap e alocações e liberação de objetos durante a execuçãoDois tamanhos de heap analisados (256MB e 512MB)Dois tamanhos de heap analisados (256MB e 512MB)

Coletas maiores no início e no fim da execuçãoOs coletores clientes não fizeram uso da memória disponível, salvo os CMSSem restrição de memória, a melhor opção é o coletor Sem restrição de memória, a melhor opção é o coletor servidor paraleloCom restrição de memória, o coletor serial cliente obteve os melhores resultadosobteve os melhores resultados

17

Page 18: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA

AVALIAÇÃO DE DESEMPENHO - GCBENCH

Comportamento anormal no coletor paralelo na geração p p g çestável para heap de 256MB

18

Page 19: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA

1012

Tempo de execução (seg) Heap 256MBHeap 512MB

02468

1 2 3 4 5 6 7 8 9 10 11 12 13 14 151 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Configuração

80

Throughput (%) Heap 256MBHeap 512MB

20

40

60

Footprint (MB) Heap 256MB

01 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Configuração

200300400500600

p ( )Heap 512MB

0100

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Configuração

19

Page 20: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA

AVALIAÇÃO DE DESEMPENHO -JGFCREATEBENCH

JGFCreateBenchModela aplicações com alocações de vida curta

Th h Throughputs Melhores resultados com coletor paralelo cliente e servidor

Footprints (consumo médio baixo)Altos para os coletores seriais e paralelos clientes Pequeno para o coletor cliente paralelo na geração estável e no servidor serial

Coletores CMS pouco eficientesColetor servidor serial (10) teve os melhores resultados

20

Page 21: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA

50525456

Tempo de execução (seg)

4244464850

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Configuração

80

100

Throughput (%)

0

20

40

60

80

300

Footprint (MB)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Configuração

50100150200250

2101 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Configuração

Page 22: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA

AVALIAÇÃO DE DESEMPENHO -JGFSERIALBENCH

JGFSerialBench

707274

Tempo de execução (seg) Heap 256MB

Heap 512MB

606264666870

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

98

Throughput (%) Heap 256MB

Heap 512MB

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Configuração

86889092949698

8486

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Configuração

22

Page 23: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA

AVALIAÇÃO DE DESEMPENHO -JGFFORKJOINBENCH

JGFForkJoinBenchAplicação multithreadAvalia criação e junção de threadsT h d h dTamanho de heap grande

Throughputs e footprints praticamente os mesmos g p f p ppara n threadsDiferenças nos indicadores de tempos

Os coletores paralelos cliente e o dois coletores seriais foram os que melhor gerenciaram a memória.

23

Page 24: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA

25303540

Tempo de execução (seg) 2 threads3 threads4 threads

05

10152025

100

Throughput (%) 2 threads3 threads4 threads

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Configuração

98,5

99

99,5

Footprint (MB) 2 threads3 threads4 h d

981 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Configuração

203040506070 4 threads

01020

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Configuração

24

Page 25: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA

AVALIAÇÃO DE DESEMPENHO - GENEID

GeneIdAplicação multithreadExecução com dois tamanhos de heap: 512 e 1024 MB

Nenhuma aplicação fez uso máximo da memóriaThroughputsg p

Os coletores CMS mantiveram os melhoresColeta paralela na geração estável com os piores valores

FootprintsFootprintsMelhores valores com o coletor paralelo na geração estável

Os coletores serias foram os mais constantes com os dois tamanhos de heap e todos os números de threadsdois tamanhos de heap e todos os números de threads 25

Page 26: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA

AVALIAÇÃO DE DESEMPENHO -JGFSORBENCH

JGFSORBenchSó há alocação de memória no início da aplicaçãoHeap grande para avaliar o processo de expansão da mesma pelo coletormesma pelo coletor

Melhores throughputs com coletor CMS incrementalConsumo de memória e tempos de execução uniformes para cada uma das n threads avaliadasMelhores resultados de tempo com os coletores Melhores resultados de tempo com os coletores paralelos na geração jovemPara os outros indicadores o coletor CMS incremental foi superiorfoi superior

26

Page 27: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA

AVALIAÇÃO DE DESEMPENHO -JGFMONTECARLOBENCH

JGFMonteCarloBenchAlocação linear crescente de memória independente do número de threadsColetas menores e maiores intercaladasColetas menores e maiores intercaladas

Coletores paralelos para a geração estável tiveram os menores throughputs e os maiores tempos de execução.Destaque para o coletor CMS incremental

Melhor throughput, footprint e menores tempos de pausasOs melhores tempos de execução ficaram com o CMS defaultf

27

Page 28: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA

AVALIAÇÃO DE DESEMPENHO

Coletor SerialRealiza mudanças no tamanho da heap e geraçõesGeração estável predominanteB lt d l ã ã ótiBons resultados no geral, mas não são sempre ótimos

Coletor ParaleloColetor ParaleloMelhores resultadosCom paralelismo na geração jovem ou estável

T dê i t d ã l li dTendência em manter grande a geração paralelizadaGeração estável grande resulta em grandes pausas

Paralelo na geração estável é o pior28

Page 29: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA

AVALIAÇÃO DE DESEMPENHO

Coletor ConcorrenteObjetivos de pausa alcançadoAproveitam melhor a heap disponível

Coletor Concorrente incrementalBons resultados somente em: Bons resultados somente em:

JGFSORBenchJGFMonteCarloBench

Consumo maior de tempoConsumo maior de tempo

29

Page 30: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA

CONCLUSÕES

Mecanismos automáticos de gerenciamento geliminam erros de gerenciamento se bem programadosN l lh lt d l t No geral, melhores resultados com coletor paralelo na geração jovemPiores resultados com o coletor paralelo na Piores resultados com o coletor paralelo na geração estávelUma boa opção de escolha é deixar que a JVM f j d dfaça os ajustes antes de tentar uma mudança

30

Page 31: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA

TRABALHOS FUTUROS

Avaliar:os mesmos aplicativos em máquinas com apenas um processadordesempenho para heap com tamanho inicial maiordesempenho para heap com tamanho inicial maioralgumas metas de tempo máximo para os coletores paralelosgerenciamento dos dados estatísticos das coletas já realizadasproporções diferentes entre gerações da heap

31