SlideShare a Scribd company logo
Troubleshooting a server
       side JVM: fast problem
           determination




Giuseppe Galli - K-Tech - g.galli@k-tech.it   1
Relatore
•    Ing. Giuseppe Galli

•    Partner in K-Tech, CTO
•    Esperto in APM da 4 anni
•    Lavora su soluzioni Java
       nel dominio enterprise
       dal 1998
•    In K-Tech da 7 anni
     g.galli@k-tech.it
•    Collabora con
     Javaportal.it

    Giuseppe Galli - K-Tech - g.galli@k-tech.it   2
L'azienda: K-Tech s.r.l.
                                                        Dove ci ha portato
                                                       il nostro Know-How

Siamo una società romana che opera a 360°
sulla tecnologia Java in ambito Enterprise.

Competenze in:
• Application Performance Management
• Software Performance Engineering
• Project Management
• System Administration
• OOAD
• Formazione
• Oracle – IBM – CA|Wily - ..
• Open Source

Servizi in EMEA: MCS, CRC, Business Continuity
24X7 – on site < 24h from call

Certificati ISO 9001 in “Progettazione ed erogazione
di corsi di formazione”
 Giuseppe Galli - K-Tech - g.galli@k-tech.it                             3
Troubleshooting

• Il Metodo:
   Vantaggi
   Requisiti
• APM:
              gestione delle
               performance
               applicative
• ITIL:
       incident management
       (IcM) in ITSM
Giuseppe Galli - K-Tech - g.galli@k-tech.it      4
Gestione delle
                               Performance Applicative
Performance applicative = Performance ditta
Ruolo IT : i dati ← WWW → i processi




Giuseppe Galli - K-Tech - g.galli@k-tech.it              5
Gestione delle
                               Performance Applicative
        Aumentare                                    Diminuire

●   Competitività                             ●   Costi IT
●   Time 2 market                             ●   Tempi per riparare
●   Affidabilità                              ●   Errori e fermi
●   Brand                                     ●   Stress




Giuseppe Galli - K-Tech - g.galli@k-tech.it                        6
Metodo
• Individua e verifica
• Caratterizza e
   priorizza (triage)
• Isola e scopre
    l'origine
• Documentare
• Invia allo
    specialista

Giuseppe Galli - K-Tech - g.galli@k-tech.it   7
Fase 1: Individua e
                               verifica
• Individuazione
    automatica o
    manuale
• Monitoraggio attivo
   o passivo
• Verifica e convalida
   il problema ed
   evita i falsi
   allarmi

Giuseppe Galli - K-Tech - g.galli@k-tech.it          8
Fase 2: Triage
• Caratterizzare il
   problema
   attraverso i
   sintomi
• Triage assegna le
    priorità ai diversi
    incident



Giuseppe Galli - K-Tech - g.galli@k-tech.it     9
Fase 3: Isola e scopre
                               l'origine
• Lo SME separa gli
   effetti dalle cause
   originarie
• Individuare il
    componente
    problematico
• Tipicamente:
    carico,
    configurazione,
    codice, back-end
Giuseppe Galli - K-Tech - g.galli@k-tech.it         10
Fase 4:
                               Documentazione
• La documentazione dovrebbe presentare:
          – Quando il problema si è presentato
          – L'impatto sul servizio
          – I dati rilevati nella verifica e nell'analisi
          – La causa principale ed il perché è accaduto
• Fare confronto con valori dello stato
   normale
• Mostrare oltre ai dati il comportamento
   dei componenti
Giuseppe Galli - K-Tech - g.galli@k-tech.it                 11
Documentazione


                                              Sul mio    L'applicazione
                        E' colpa
                                               laptop           è
                       della rete
                                              funziona    stata testata




                                                              Il DB
                           Il cluster                       risponde
                           va bene                           veloce




Giuseppe Galli - K-Tech - g.galli@k-tech.it                               12
Monitoraggio

• Architettura
• Monitoraggio
 attivo/passivo




Giuseppe Galli - K-Tech - g.galli@k-tech.it   13
Misure nella JVM
• Metriche                                    • Strumenti di misura
          – Tempi                                 – Probe:
          – Uso delle risorse                        java.lang.instru
             HW                                      ment
          – Concorrenza                           – JMX:
                                                      java.lang.manag
          – Crash                                     ement
          – Errori



Giuseppe Galli - K-Tech - g.galli@k-tech.it                       14
Rilevazione
• Automatica o
   manuale
• Soglie di allarme e
   di pericolo
• Monitoraggio
   passivo real-time
• Log


Giuseppe Galli - K-Tech - g.galli@k-tech.it   15
Triage
• Priorità e
    caratterizzazione
          – Assegnazione
             della priorità
          – Analisi delle
             metriche
          – Tecnica
             esclusione



Giuseppe Galli - K-Tech - g.galli@k-tech.it   16
Triage problemi JVM
Caratterizzazione problemi tipici della JVM:
• Progressivi: occupazione memoria, blocco
   thread
• Costanti: errori o timeout che si ripetono
• Improvvisi: blocco thread, picchi di utilizzo
   della CPU
• Periodici: rallentamenti, crash


Giuseppe Galli - K-Tech - g.galli@k-tech.it          17
Documentazione
• Dati monitoraggio
• Log con stack trace
• Core dumps
• Thread dump
• Vendor site




Giuseppe Galli - K-Tech - g.galli@k-tech.it     18
Caso pratico 1

• Livelock, macchina biprocessore con
    utilizzo costante 50% CPU (1 CPU al
    100%)
          – Misura: valore (50%) e tendenza (fisso da ore)
          – Triage: urgente, improvviso e poi costante
          – Isolamento: due thread in live-lock
          – Documentazione: thread dump successivi, bug
             parade su sito del vendor




Giuseppe Galli - K-Tech - g.galli@k-tech.it                  19
Caso pratico 2

• Memory leak
         – Misura: dimensione memoria permanent crescente,
            OOM
         – Triage: progressivo e poi restart JVM
         – Isolamento: PermGen, -XNoClassGC
         – Documentazione: tempi, mem dump, opzioni start
            jvm




 Giuseppe Galli - K-Tech - g.galli@k-tech.it           20
Conclusioni
• Gestire correttamente le performance è
   un aspetto vitale per ogni progetto
• Il metodo è necessario oltre gli strumenti
    – Necessita del monitoraggio
    – Assicura i risultati nel
        minor tempo possibile




  Giuseppe Galli - K-Tech - g.galli@k-tech.it   21
Riferimenti
●   http://www.k-tech.it
●   http://www.javaportal.it
●   http://java.sun.com/javase/reference/index.jsp
●   http://www.perfeng.com/




Giuseppe Galli - K-Tech - g.galli@k-tech.it      22
Ringraziamenti

Un ringraziamento a
 tutto il personale K-
 Tech:
          /.*/@k-tech.it


 e all'organizzazione
           del
                Jax Italia

Giuseppe Galli - K-Tech - g.galli@k-tech.it     23
Q/A




Giuseppe Galli - K-Tech - g.galli@k-tech.it   24

More Related Content

Troubleshooting a server side JVM: fast problem determination

  • 1. Troubleshooting a server side JVM: fast problem determination Giuseppe Galli - K-Tech - g.galli@k-tech.it 1
  • 2. Relatore • Ing. Giuseppe Galli • Partner in K-Tech, CTO • Esperto in APM da 4 anni • Lavora su soluzioni Java nel dominio enterprise dal 1998 • In K-Tech da 7 anni g.galli@k-tech.it • Collabora con Javaportal.it Giuseppe Galli - K-Tech - g.galli@k-tech.it 2
  • 3. L'azienda: K-Tech s.r.l. Dove ci ha portato il nostro Know-How Siamo una società romana che opera a 360° sulla tecnologia Java in ambito Enterprise. Competenze in: • Application Performance Management • Software Performance Engineering • Project Management • System Administration • OOAD • Formazione • Oracle – IBM – CA|Wily - .. • Open Source Servizi in EMEA: MCS, CRC, Business Continuity 24X7 – on site < 24h from call Certificati ISO 9001 in “Progettazione ed erogazione di corsi di formazione” Giuseppe Galli - K-Tech - g.galli@k-tech.it 3
  • 4. Troubleshooting • Il Metodo: Vantaggi Requisiti • APM: gestione delle performance applicative • ITIL: incident management (IcM) in ITSM Giuseppe Galli - K-Tech - g.galli@k-tech.it 4
  • 5. Gestione delle Performance Applicative Performance applicative = Performance ditta Ruolo IT : i dati ← WWW → i processi Giuseppe Galli - K-Tech - g.galli@k-tech.it 5
  • 6. Gestione delle Performance Applicative Aumentare Diminuire ● Competitività ● Costi IT ● Time 2 market ● Tempi per riparare ● Affidabilità ● Errori e fermi ● Brand ● Stress Giuseppe Galli - K-Tech - g.galli@k-tech.it 6
  • 7. Metodo • Individua e verifica • Caratterizza e priorizza (triage) • Isola e scopre l'origine • Documentare • Invia allo specialista Giuseppe Galli - K-Tech - g.galli@k-tech.it 7
  • 8. Fase 1: Individua e verifica • Individuazione automatica o manuale • Monitoraggio attivo o passivo • Verifica e convalida il problema ed evita i falsi allarmi Giuseppe Galli - K-Tech - g.galli@k-tech.it 8
  • 9. Fase 2: Triage • Caratterizzare il problema attraverso i sintomi • Triage assegna le priorità ai diversi incident Giuseppe Galli - K-Tech - g.galli@k-tech.it 9
  • 10. Fase 3: Isola e scopre l'origine • Lo SME separa gli effetti dalle cause originarie • Individuare il componente problematico • Tipicamente: carico, configurazione, codice, back-end Giuseppe Galli - K-Tech - g.galli@k-tech.it 10
  • 11. Fase 4: Documentazione • La documentazione dovrebbe presentare: – Quando il problema si è presentato – L'impatto sul servizio – I dati rilevati nella verifica e nell'analisi – La causa principale ed il perché è accaduto • Fare confronto con valori dello stato normale • Mostrare oltre ai dati il comportamento dei componenti Giuseppe Galli - K-Tech - g.galli@k-tech.it 11
  • 12. Documentazione Sul mio L'applicazione E' colpa laptop è della rete funziona stata testata Il DB Il cluster risponde va bene veloce Giuseppe Galli - K-Tech - g.galli@k-tech.it 12
  • 13. Monitoraggio • Architettura • Monitoraggio attivo/passivo Giuseppe Galli - K-Tech - g.galli@k-tech.it 13
  • 14. Misure nella JVM • Metriche • Strumenti di misura – Tempi – Probe: – Uso delle risorse java.lang.instru HW ment – Concorrenza – JMX: java.lang.manag – Crash ement – Errori Giuseppe Galli - K-Tech - g.galli@k-tech.it 14
  • 15. Rilevazione • Automatica o manuale • Soglie di allarme e di pericolo • Monitoraggio passivo real-time • Log Giuseppe Galli - K-Tech - g.galli@k-tech.it 15
  • 16. Triage • Priorità e caratterizzazione – Assegnazione della priorità – Analisi delle metriche – Tecnica esclusione Giuseppe Galli - K-Tech - g.galli@k-tech.it 16
  • 17. Triage problemi JVM Caratterizzazione problemi tipici della JVM: • Progressivi: occupazione memoria, blocco thread • Costanti: errori o timeout che si ripetono • Improvvisi: blocco thread, picchi di utilizzo della CPU • Periodici: rallentamenti, crash Giuseppe Galli - K-Tech - g.galli@k-tech.it 17
  • 18. Documentazione • Dati monitoraggio • Log con stack trace • Core dumps • Thread dump • Vendor site Giuseppe Galli - K-Tech - g.galli@k-tech.it 18
  • 19. Caso pratico 1 • Livelock, macchina biprocessore con utilizzo costante 50% CPU (1 CPU al 100%) – Misura: valore (50%) e tendenza (fisso da ore) – Triage: urgente, improvviso e poi costante – Isolamento: due thread in live-lock – Documentazione: thread dump successivi, bug parade su sito del vendor Giuseppe Galli - K-Tech - g.galli@k-tech.it 19
  • 20. Caso pratico 2 • Memory leak – Misura: dimensione memoria permanent crescente, OOM – Triage: progressivo e poi restart JVM – Isolamento: PermGen, -XNoClassGC – Documentazione: tempi, mem dump, opzioni start jvm Giuseppe Galli - K-Tech - g.galli@k-tech.it 20
  • 21. Conclusioni • Gestire correttamente le performance è un aspetto vitale per ogni progetto • Il metodo è necessario oltre gli strumenti – Necessita del monitoraggio – Assicura i risultati nel minor tempo possibile Giuseppe Galli - K-Tech - g.galli@k-tech.it 21
  • 22. Riferimenti ● http://www.k-tech.it ● http://www.javaportal.it ● http://java.sun.com/javase/reference/index.jsp ● http://www.perfeng.com/ Giuseppe Galli - K-Tech - g.galli@k-tech.it 22
  • 23. Ringraziamenti Un ringraziamento a tutto il personale K- Tech: /.*/@k-tech.it e all'organizzazione del Jax Italia Giuseppe Galli - K-Tech - g.galli@k-tech.it 23
  • 24. Q/A Giuseppe Galli - K-Tech - g.galli@k-tech.it 24