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.
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
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
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