Troubleshooting a server
       side JVM: fast problem
           determination




Giuseppe Galli - K-Tech - g.galli@k-te...
Relatore
•    Ing. Giuseppe Galli

•    Partner in K-Tech, CTO
•    Esperto in APM da 4 anni
•    Lavora su soluzioni Java...
L'azienda: K-Tech s.r.l.
                                                        Dove ci ha portato
                      ...
Troubleshooting

• Il Metodo:
   Vantaggi
   Requisiti
• APM:
              gestione delle
               performance
    ...
Gestione delle
                               Performance Applicative
Performance applicative = Performance ditta
Ruolo IT...
Gestione delle
                               Performance Applicative
        Aumentare                                   ...
Metodo
• Individua e verifica
• Caratterizza e
   priorizza (triage)
• Isola e scopre
    l'origine
• Documentare
• Invia ...
Fase 1: Individua e
                               verifica
• Individuazione
    automatica o
    manuale
• Monitoraggio a...
Fase 2: Triage
• Caratterizzare il
   problema
   attraverso i
   sintomi
• Triage assegna le
    priorità ai diversi
    ...
Fase 3: Isola e scopre
                               l'origine
• Lo SME separa gli
   effetti dalle cause
   originarie
•...
Fase 4:
                               Documentazione
• La documentazione dovrebbe presentare:
          – Quando il probl...
Documentazione


                                              Sul mio    L'applicazione
                        E' colpa
...
Monitoraggio

• Architettura
• Monitoraggio
 attivo/passivo




Giuseppe Galli - K-Tech - g.galli@k-tech.it   13
Misure nella JVM
• Metriche                                    • Strumenti di misura
          – Tempi                    ...
Rilevazione
• Automatica o
   manuale
• Soglie di allarme e
   di pericolo
• Monitoraggio
   passivo real-time
• Log


Giu...
Triage
• Priorità e
    caratterizzazione
          – Assegnazione
             della priorità
          – Analisi delle
 ...
Triage problemi JVM
Caratterizzazione problemi tipici della JVM:
• Progressivi: occupazione memoria, blocco
   thread
• Co...
Documentazione
• Dati monitoraggio
• Log con stack trace
• Core dumps
• Thread dump
• Vendor site




Giuseppe Galli - K-T...
Caso pratico 1

• Livelock, macchina biprocessore con
    utilizzo costante 50% CPU (1 CPU al
    100%)
          – Misura...
Caso pratico 2

• Memory leak
         – Misura: dimensione memoria permanent crescente,
            OOM
         – Triage...
Conclusioni
• Gestire correttamente le performance è
   un aspetto vitale per ogni progetto
• Il metodo è necessario oltre...
Riferimenti
●   http://www.k-tech.it
●   http://www.javaportal.it
●   http://java.sun.com/javase/reference/index.jsp
●   h...
Ringraziamenti

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


 e all'organizzazione
       ...
Q/A




Giuseppe Galli - K-Tech - g.galli@k-tech.it   24
Upcoming SlideShare
Loading in …5
×

Troubleshooting a server side JVM: fast problem determination

833 views

Published on

Queste slide sono relative all’intervento che K-Tech http://www.k-tech.it/ ha presentato all’evento Jax Italia il 13 novembre a Milano.

Speaker: Giuseppe Galli

We present a set of common issues for a server side Java Virtual Machine (JVM), together with practical examples demonstrating how to troubleshoot them successfully. This material is taken from a multi-day course offered by K-Tech s.r.l. The course aims to skill Application Servers Administrators (ASAs) in taking actions that facilitate and accelerate the path to the solution, focusing on the most effective way to minimize the impact on the production. To achieve this, we present a simple but comprehensive and efficient methodology and discuss some common scenarios. We also discuss ways to apply the presented methodology to practical scenarios and compare the results to those of actions taken by ASA.

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
833
On SlideShare
0
From Embeds
0
Number of Embeds
34
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Troubleshooting a server side JVM: fast problem determination

  1. 1. Troubleshooting a server side JVM: fast problem determination Giuseppe Galli - K-Tech - g.galli@k-tech.it 1
  2. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 13. Monitoraggio • Architettura • Monitoraggio attivo/passivo Giuseppe Galli - K-Tech - g.galli@k-tech.it 13
  14. 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. 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. 16. Triage • Priorità e caratterizzazione – Assegnazione della priorità – Analisi delle metriche – Tecnica esclusione Giuseppe Galli - K-Tech - g.galli@k-tech.it 16
  17. 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. 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. 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. 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. 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. 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. 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. 24. Q/A Giuseppe Galli - K-Tech - g.galli@k-tech.it 24

×