SlideShare una empresa de Scribd logo
© 2007 IBM Corporation
®
Pág 1
Sesión 1: Entendiendo la JVM
Juan Camilo Parra Martínez
AVP Websphere
IBM Software Group | WebSphere software
¿Que es y como funciona la JVM?
La JVM es una de las piezas
fundamentales de la plataforma
Java.
Básicamente se sitúa en un nivel
superior al hardware del sistema
sobre el que se pretende ejecutar
la aplicación, y este actúa como
un puente que entiende tanto el
bytecode como el sistema sobre el
que se pretende ejecutar.
IBM Software Group | WebSphere software
Arquitectura JVM
3
IBM Software Group | WebSphere software
¿Qué es el Garbage Colector (GC)?
4
Un recolector de basura (del
inglés garbage collector) es un
mecanismo implícito de gestión de
memoria implementado en
algunos lenguajes de
programación de tipo interpretado o
semi-interpretado.
•Reservar espacios de memoria para
su uso.
•Liberar espacios de memoria
previamente reservados.
•Compactar espacios de memoria
libres y consecutivos entre sí.
•Llevar cuenta de qué espacios
están libres y cuáles no.
IBM Software Group | WebSphere software
Ejemplo practico GC
5
IBM Software Group | WebSphere software
Que es el Heap Size
 El heap es el espacio de memoria en tiempo de ejecución que
se usa para almacenar las instancias de clases, objetos y arrays.
Se crea en el inicio de la máquina virtual (JVM) y es gestionado
por el Garbage Collector.
 Se puede modificar el tamaño del heap mediante comandos de
la JVM, y el GC realiza modificaciones en tiempo de ejecución
de forma automática.
6
IBM Software Group | WebSphere software
Heap Dump
 Un Heap Dump es un snapshot o “fotografía” del estado del
heap en un momento concreto. Es generado por la JVM y
muestra un volcado (dump) de todos los objetos “vivos” en el
heap (los usados por la aplicación java) en ese momento.
 Un heap dump puede generarse de varias formas:
 De forma automática: la JVM genera un heap dump
automáticamente cuando el heap se agota.
(OutOfMemoryError)
 De forma explícita
7
IBM Software Group | WebSphere software
Entendiendo el manejo de memoria y memoria fisica
8
IBM Software Group | WebSphere software
Fases del GC
 Marking
 Sweep
 Compacting
 Reference objects
 Final reference processing
 JNI weak reference
 Heap expansion (30%)
 Heap shrinkage (60%)
9
IBM Software Group | WebSphere software
Entendiendo un poco el GC
 Es el responsable de ubicar o liberar Objetos Java, Arreglos de
objetos, Clases Java y Librerías.
 Ubica los objetos usando secciones continuas de Heap de Java
 Se asegura que el objeto se mantiene durante su vida útil o uso,
esta determinación se basa en referencias del objeto.
 Marca objetos que no se encuentran mas referenciados
 Se asegura que cualquier método de finalización es llamado
antes de que el objeto sea marcado.
10
IBM Software Group | WebSphere software
Por que se debe mantener afinado GC?
En la ejecución de todos los
procesos o aplicaciones se
pausa hasta que el GC
termina su labor.
Conocido como “Stop The
World” (STW)
11
IBM Software Group | WebSphere software
¿Que pasa a la JVM cuando la se comienza a paginar?
12
IBM Software Group | WebSphere software
Objetivo Responsiveness vs Throughput
13
IBM Software Group | WebSphere software
Responsiveness
Se refiere a la rapidez con que una aplicación o sistema responde.
Por ejemplo:
 La rapidez con una interfaz de usuario de escritorio responde a
un evento
 Qué tan rápido un sitio web devuelve una página
 Qué tan rápido se devuelve una consulta de base de datos
Para estas aplicaciones, grandes tiempos de pausa no son
aceptables. La atención se centra en dar respuesta en períodos
cortos de tiempo.
14
IBM Software Group | WebSphere software
Throughput
Se centra en maximizar la cantidad de trabajo de una aplicación en
un período específico de tiempo. Por ejemplo:
 El número de transacciones completadas en un tiempo dado.
 El número de puestos de trabajo que un programa por lotes se
puede completar en una hora.
 El número de consultas de bases de datos que se pueden
completar en una hora.
 Tiempos altos de pausa son aceptables para estas aplicaciones.
Dado que las aplicaciones de alto rendimiento se centran en los
puntos de referencia en períodos más largos de tiempo, el
tiempo de respuesta rápida no es una consideración.
15
IBM Software Group | WebSphere software
Mejorar el Performance de una aplicación JAVA
16
Mejorar la aplicación, depende
exclusivamente del código.
El afinamiento de la JVM, no va a
solucionar problemas, que competen
netamente a código!!
IBM Software Group | WebSphere software
Mejorar el Performance JVM
17
Todo afinamiento del GC trae,
consigo mejoras en los
tiempos de respuesta, pero
esto no evita el profiling y
mejora de las aplicaciones.
IBM Software Group | WebSphere software
Performance del recolector de basura
La definición de un problema de performance suele ser centrada en el
usuario (El usuario requiere)
• Tiempos de pausa del GC muy cortos
• Maximo Throughput
• Un Balance entre estas dos
1. Debemos asegurarnos que hemos seleccionado la política del
Garbage Collector según el tipo de performance que espera el usuario
final
• Para ello debemos conocer cada uno de los mecanismos de GC
2. Asegurarnos que el Heap Size esta bien configurado, por defecto y por
exceso son malas configuraciones
3. Revisar por problemas específicos de performance.
18
IBM Software Group | WebSphere software
Saquemos Conclusiones.
 ¿Qué pasa si el heap inicial es muy alto?
 ¿Qué pasa si el heap máximo es muy bajo?
 ¿Qué pasa si el heap inicial es muy bajo?
 ¿Qué pasa si el Garbage Collector tiene tiempos de pausa muy
largos?
 ¿Qué pasa si el Garbage Collector tiene tiempos de pausa cortos
pero muy seguidos?
 ¿Para que se configura el Heap inicial y el máximo en el mismo
valor?
 ¿Cuál seria el comportamiento esperado de una JVM de 32bits
con 3GB de Memoria Máxima y 256mb de memoria inicial?
19
IBM Software Group | WebSphere software
¿Preguntas?
20
© 2007 IBM Corporation
®
Pág 21
Sesión 2: Optimizar la JVM
Juan Camilo Parra Martínez
AVP
IBM Software Group | WebSphere software
Tipos de Garbage Collector (Solo IBM_J9)
22
Policy Option Description
Optimize for
throughput
-Xgcpolicy:optthruput
(optional)
The default policy. It is typically used for applications
where raw throughput is more important than short GC
pauses. The application is stopped each time that garbage
is collected.
Optimize for pause time -Xgcpolicy:optavgpause Trades high throughput for shorter GC pauses by
performing some of the garbage collection concurrently.
The application is paused for shorter periods.
Generational
concurrent
-Xgcpolicy:gencon Handles short-lived objects differently than objects that
are long-lived. Applications that have many short-lived
objects can see shorter pause times with this policy while
still producing good throughput.
Subpooling -Xgcpolicy:subpool Uses an algorithm similar to the default policy's but
employs an allocation strategy that is more suitable for
multiprocessor machines. We recommend this policy for
SMP machines with 16 or more processors. This policy is
only available on IBM pSeries® and zSeries® platforms.
Applications that need to scale on large machines can
benefit from this policy.
IBM Software Group | WebSphere software
Pistas
23
Switch to Reasons
optavgpause • My application cannot tolerate the
length of the GC pauses. A degradation
in performance is acceptable as long
as the GC pause time is reduced.
• I am running on a 64-bit platform and
use a very large heap -- more than 3 or
4GB.
• My application is a GUI application
and I'm concerned about the user
response times.
gencon • My application allocates many short-
lived objects.
• The heap space is fragmented.
• My application is transaction-based
(that is, objects in the transaction
don't survive beyond the transaction
commit).
subpool • I have scalability problems on large
multiprocessor machine.
IBM Software Group | WebSphere software
Parallel GC (optthruput)
 Es un algoritmo de Marcado y Barrido en paralelo, que evita la
compactación, esta diseñado para aumentar el performance en
SMP.
 Se encuentra optimizado para “Throughput”, con lo cual es la
mejor política para aplicaciones tipo “batch”
 En este algoritmo se encuentra un hilo principal encargado de
generar el conjunto de objetos, y una serie de hilos helper que se
encargan del resto del trabajo, el numero de hilos es igual al
numero de unidades de procesamiento (Por defecto en IBM J9)
 Se puede disminuir usando -Xgcthreads
24
IBM Software Group | WebSphere software
25
IBM Software Group | WebSphere software
Concurrent GC (optavgpause)
 Reduce y hace mas consistente, el tiempo de pausa gastado por
el GC.
 Lo logra realizando el proceso de marcado y barrido de manera
concurrente, mientras se ejecuta la aplicación o esta esta
inactiva, esto hace que la aplicación no se detenga durante
todas las fases, sino solo durante una pequeña fracción de
tiempo.
 Se reduce el tiempo de pausa entre un 90 y 95% comparado con
optthruput.
 El Throughput se reduce aproximadamente en un 5% comparado
con optthruput.
26
IBM Software Group | WebSphere software
27
Hidden Object Issue
IBM Software Group | WebSphere software
Generacional Concurrente (gencon)
 Es un concepto similar al usado por Sun y HP, se realizan copias
paralelas y recolecciones globales concurrentes por defecto.
 Se basa en la muerte muy frecuente de objetos jóvenes,
entonces enfoca su atención a limpiar los objetos que son
creados reciente.
 Para ello divide el heap en dos áreas, “Nursery” y “Tenured”
 Los objetos nuevos se alojan en Nursery, y los viejos en
Tenured.
 Las recolecciones se enfocan en el área de Nursery.
 Los objetos que sobreviven a cierto numero de recolecciones en
el Nursery, son enviados al Tenured.
28
IBM Software Group | WebSphere software
 El área de Nursery también se divide en dos, Allocate y Survivor,
en el primero los objetos nuevos son ubicados, Survivor es un
paso intermedio donde se copian los objetos de forma temporal
cuando ocurre un ciclo de GC de Nursery.
 La cantidad de ciclos de recolección del Nursery antes de llevar
un objeto al Tenured es determinada de forma automática por la
JVM, pero este numero nunca excederá las 14 recolecciones.
 Los objetos son ubicados en el espacio de Tenured y Survivor de
forma tal que se evita al máximo la fragmentación.
29
IBM Software Group | WebSphere software
30
IBM Software Group | WebSphere software
Monitoreando la actividad del GC
 Use el Verbose del GC para rastrear el comportamiento de la
maquina virtual.
 Para eso active el log usando los parámetros
– -Xverbose:gc
– -Xverbosegclog:[DirPath][FileName],[NumberOfFiles],[NumberOfCyclesPerFile]
 Puede graficar el verbose usando la herramienta GC and
Memory Visualizer (GCMV) de ISA.
 Costo de performance: Se estima que activar el GC causa una
sobre carga del 2% sobre los tiempos de pausa, así si el tiempo
de pausa usual de una maquina virtual es de 5 segundos, este
se convertirá en 5.1segundos.
31
IBM Software Group | WebSphere software
JRockit
 The following dynamic modes are available:
 throughput, which optimizes the garbage collector for maximum application
throughput. This is the default mode.
 pausetime, which optimizes the garbage collector for short and even pause
times.
 deterministic, which optimizes the garbage collector for very short and
deterministic pause times. This mode is only available as a part of Oracle JRockit
Real Time.
 The major static strategies are:
 singlepar, which is a single-generational parallel garbage collector (same
as parallel)
 genpar, which is a two-generational parallel garbage collector
 singlecon, which is a single-generational mostly concurrent garbage collector
 gencon, which is a two-generational mostly concurrent garbage collector
 http://docs.oracle.com/cd/E13150_01/jrockit_jvm/jrockit/geninfo/diagnos/memman
.html
32
IBM Software Group | WebSphere software
HotSpot de Sun
 If the application has a small data set (up to approximately 100MB), then
– select the serial collector with -XX:+UseSerialGC.
 If the application will be run on a single processor and there are no pause time requirements,
then
– let the VM select the collector, or
– select the serial collector with -XX:+UseSerialGC.
 If (a) peak application performance is the first priority and (b) there are no pause time
requirements or pauses of one second or longer are acceptable, then
– let the VM select the collector, or
– select the parallel collector with -XX:+UseParallelGC and (optionally) enable parallel
compaction with -XX:+UseParallelOldGC.
 If response time is more important than overall throughput and garbage collection pauses
must be kept shorter than approximately one second, then
– select the concurrent collector with -XX:+UseConcMarkSweepGC. If only one or two
processors are available, consider using incremental mode.
 http://www.oracle.com/technetwork/java/javase/gc-tuning-6-
140523.html
33
IBM Software Group | WebSphere software
Donde puedo encontrar los demás parámetros que
puedo ajustar en la JVM de IBM
 http://publib.boulder.ibm.com/infocenter/realtime/v1r0/index.jsp?t
opic=%2Fcom.ibm.rt.doc.10%2Frealtime%2Frt_xoptions_gc_sta
ndard.html
34
IBM Software Group | WebSphere software
Configurando Memoria JVM
 Máximos posibles
 El Heap Size “Correcto”
 Heap size fixed vs variable
 Heap Size para algoritmos generacionales (gencon)
35
IBM Software Group | WebSphere software
Máximo Heap Size Posible
 Las JVM de 32 bits tienen un máximo que varia dependiendo de
la plataforma sistema operativo, implementación de la misma
JVM, etc.
 Esta restricción suele ser baja (alrededor de 2GB)
 Se debe tener mucho cuidado con el Native Heap
 Los procesos de 64 bits, suelen tener un limite mucho mayor, tan
grande que puede ser ignorado, (alrededor de 16 TeraBytes)
36
IBM Software Group | WebSphere software
37
El Native Heap, puede ser medido usando,
Svmon(AIX), PerfMon (Windows) , RFm(zOs)
IBM Software Group | WebSphere software
Implicaciones de usar 64bits
 Menor Performance
 Mas datos a manipular
 Temas de Cache actúan con un bajo rendimiento
 Se requiere mas memoria
 Se solucionan utilizando métodos de compresión de memoria.
38
IBM Software Group | WebSphere software
El Heap Size “Correcto”
39
MaxUsed / MaxHeap = 0.7
1.43 * MaxUsed = MaxHeap
IBM Software Group | WebSphere software
Heap Fixed vs Variable
 ¿Deberia ser el heap inicial igual al heap maximo?
> -Xms = -Xmx
 Como siempre para cada aplicación hay que considerar las
ventajas y desventajas dependiendo de lo que se quiera
conseguir.
 Analicemos y consideremos las características de cada uno.
40
IBM Software Group | WebSphere software
Heap Size para algoritmos generacionales
41
IBM Software Group | WebSphere software
Preguntas
42
© 2007 IBM Corporation
®
Pág 43
Sesión 3: Practica
Juan Camilo Parra Martínez
AVP
IBM Software Group | WebSphere software
Probar
 Gencon
 Optavgpause
 Y optthruput
 ¿Como se comporta cada test con los diferentes algoritmos de GC?
 Para el test 5, el instructor dará un escenario, configure la jvm de
manera que se minimicen los tiempos de pausa.
44
IBM Software Group | WebSphere software
Preguntas?
45
IBM Software Group | WebSphere software
Referencias
 http://www-
01.ibm.com/support/docview.wss?uid=swg27013824&aid=1
 https://www.ibm.com/developerworks/library/j-ibmjava2/
 http://www.cubrid.org/blog/dev-platform/the-principles-of-java-
application-performance-tuning/
 http://www.cubrid.org/blog/dev-platform/how-to-tune-java-
garbage-collection/
 http://www-
01.ibm.com/support/docview.wss?uid=swg27013400&aid=1
46
IBM Software Group | WebSphere software
Referencias
 http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/g
c01/index.html
 http://www.cs.virginia.edu/kim/publicity/pldi09tutorials/memory-
efficient-java-tutorial.pdf
47
IBM Software Group | WebSphere software
Referencias
 http://www.redbooks.ibm.com/redbooks/pdfs/sg247353.pdf
 http://www-
01.ibm.com/support/docview.wss?uid=swg27013824&aid=1
 http://www.redbooks.ibm.com/redbooks/pdfs/sg247353.pdf
 http://www.slideshare.net/cnbailey/tuning-ibms-generational-gc-
14062096
48
IBM Software Group | WebSphere software

Más contenido relacionado

La actualidad más candente

PRACTICA 6 ALICE
PRACTICA 6 ALICEPRACTICA 6 ALICE
PRACTICA 6 ALICE
estefania loredo cortes
 
Diagramas de paquetes
Diagramas de paquetesDiagramas de paquetes
Diagramas de paquetesMoises Cruz
 
Plan de pruebas de software
Plan de pruebas de softwarePlan de pruebas de software
Plan de pruebas de softwareEdgardo Rojas
 
HA2NV50 EQ8-StarUML
HA2NV50 EQ8-StarUMLHA2NV50 EQ8-StarUML
HA2NV50 EQ8-StarUML
Erick Ortega Herrera
 
Gestion de riesgo software
Gestion de riesgo softwareGestion de riesgo software
Gestion de riesgo software
Hector L
 
Descomposición modular y estilos de control
Descomposición modular y estilos de controlDescomposición modular y estilos de control
Descomposición modular y estilos de control
Juan Pablo Bustos Thames
 
Primeros pasos con Python: Manipulando imágenes ⟷
Primeros pasos con Python: Manipulando imágenes ⟷Primeros pasos con Python: Manipulando imágenes ⟷
Primeros pasos con Python: Manipulando imágenes ⟷
Rodolfo Ferro
 
Historia de java script
Historia de java scriptHistoria de java script
Historia de java script
Francisco Javier Arce Anguiano
 
Modelo 4+1
Modelo 4+1Modelo 4+1
Estructura modular
Estructura modularEstructura modular
Estructura modularjuan_180
 
Tema3 procesos
Tema3 procesos Tema3 procesos
2.4 herramientas case
2.4 herramientas case2.4 herramientas case
2.4 herramientas case
Ivan Rm
 
problemas del software
problemas del softwareproblemas del software
problemas del software
David Abisai Gomez
 
Arquitecturas de software - Parte 2
Arquitecturas de software - Parte 2Arquitecturas de software - Parte 2
Arquitecturas de software - Parte 2
Marta Silvia Tabares
 
Ley de amdahl
Ley de amdahlLey de amdahl
Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)
Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)
Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)
Micael Gallego
 

La actualidad más candente (20)

Sesion12-componentes Visuales java
Sesion12-componentes Visuales javaSesion12-componentes Visuales java
Sesion12-componentes Visuales java
 
PRACTICA 6 ALICE
PRACTICA 6 ALICEPRACTICA 6 ALICE
PRACTICA 6 ALICE
 
Diagramas de paquetes
Diagramas de paquetesDiagramas de paquetes
Diagramas de paquetes
 
Plan de pruebas de software
Plan de pruebas de softwarePlan de pruebas de software
Plan de pruebas de software
 
HA2NV50 EQ8-StarUML
HA2NV50 EQ8-StarUMLHA2NV50 EQ8-StarUML
HA2NV50 EQ8-StarUML
 
Gestion de riesgo software
Gestion de riesgo softwareGestion de riesgo software
Gestion de riesgo software
 
Descomposición modular y estilos de control
Descomposición modular y estilos de controlDescomposición modular y estilos de control
Descomposición modular y estilos de control
 
Modelo incremental
Modelo incrementalModelo incremental
Modelo incremental
 
METODOS Y MODELOS POO
METODOS Y MODELOS POOMETODOS Y MODELOS POO
METODOS Y MODELOS POO
 
Primeros pasos con Python: Manipulando imágenes ⟷
Primeros pasos con Python: Manipulando imágenes ⟷Primeros pasos con Python: Manipulando imágenes ⟷
Primeros pasos con Python: Manipulando imágenes ⟷
 
Historia de java script
Historia de java scriptHistoria de java script
Historia de java script
 
Modelo 4+1
Modelo 4+1Modelo 4+1
Modelo 4+1
 
Estructura modular
Estructura modularEstructura modular
Estructura modular
 
Tema3 procesos
Tema3 procesos Tema3 procesos
Tema3 procesos
 
2.4 herramientas case
2.4 herramientas case2.4 herramientas case
2.4 herramientas case
 
Lenguajes de una maquina de turing
Lenguajes de una maquina de turingLenguajes de una maquina de turing
Lenguajes de una maquina de turing
 
problemas del software
problemas del softwareproblemas del software
problemas del software
 
Arquitecturas de software - Parte 2
Arquitecturas de software - Parte 2Arquitecturas de software - Parte 2
Arquitecturas de software - Parte 2
 
Ley de amdahl
Ley de amdahlLey de amdahl
Ley de amdahl
 
Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)
Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)
Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)
 

Destacado

Administración de memoria en java
Administración de memoria en javaAdministración de memoria en java
Administración de memoria en java
Luis Miguel De Bello
 
POO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y PolimorfismoPOO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y Polimorfismo
Actimel
 
Toc y la mecanica del throughput accontaing. un modelo gerencial para la toma...
Toc y la mecanica del throughput accontaing. un modelo gerencial para la toma...Toc y la mecanica del throughput accontaing. un modelo gerencial para la toma...
Toc y la mecanica del throughput accontaing. un modelo gerencial para la toma...Carmen Hevia Medina
 
Introducción a los Requerimientos no Funcionales
Introducción a los Requerimientos no FuncionalesIntroducción a los Requerimientos no Funcionales
Introducción a los Requerimientos no FuncionalesCarlos Zuluaga
 
Requisitos No Funcionales
Requisitos No FuncionalesRequisitos No Funcionales
Requisitos No Funcionales
jin_group
 
JVM Internals (2015)
JVM Internals (2015)JVM Internals (2015)
JVM Internals (2015)
Luiz Fernando Teston
 
Teoria de Colas
Teoria de ColasTeoria de Colas
Teoria de ColasComdat4
 
La Meta, Eliyahu Goldratt
La Meta, Eliyahu GoldrattLa Meta, Eliyahu Goldratt
La Meta, Eliyahu Goldratt
José Manjarréz
 
Java y sus caracteristicas
Java y sus caracteristicasJava y sus caracteristicas
Java y sus caracteristicasAny Saula
 
WEBXDN2012 - Community Management
WEBXDN2012 - Community ManagementWEBXDN2012 - Community Management
WEBXDN2012 - Community Managementwebxdn
 
Les Bandistes
Les BandistesLes Bandistes
Les Bandistes
Nicolas Boucher
 
Patapon et Rodrigue, 10 premières pages
Patapon et Rodrigue, 10 premières pagesPatapon et Rodrigue, 10 premières pages
Patapon et Rodrigue, 10 premières pages
Carolyne Comtois
 
Vae Solis Corporate 365 n°3
Vae Solis Corporate 365 n°3Vae Solis Corporate 365 n°3
Vae Solis Corporate 365 n°3vaesoliscorp
 
Pasion xulia
Pasion xuliaPasion xulia
Pasion xuliaArmelle
 
Dossier presse(1)
Dossier presse(1)Dossier presse(1)
Dossier presse(1)Jean Albert
 
Camille bosqué
Camille bosquéCamille bosqué
Camille bosquéIRI
 
Créer un compte compositeur
Créer un compte compositeurCréer un compte compositeur
Créer un compte compositeur
nextelevel
 

Destacado (20)

Administración de memoria en java
Administración de memoria en javaAdministración de memoria en java
Administración de memoria en java
 
POO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y PolimorfismoPOO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y Polimorfismo
 
Toc y la mecanica del throughput accontaing. un modelo gerencial para la toma...
Toc y la mecanica del throughput accontaing. un modelo gerencial para la toma...Toc y la mecanica del throughput accontaing. un modelo gerencial para la toma...
Toc y la mecanica del throughput accontaing. un modelo gerencial para la toma...
 
redes
redesredes
redes
 
Introducción a los Requerimientos no Funcionales
Introducción a los Requerimientos no FuncionalesIntroducción a los Requerimientos no Funcionales
Introducción a los Requerimientos no Funcionales
 
Requisitos No Funcionales
Requisitos No FuncionalesRequisitos No Funcionales
Requisitos No Funcionales
 
JVM Internals (2015)
JVM Internals (2015)JVM Internals (2015)
JVM Internals (2015)
 
Teoria de Colas
Teoria de ColasTeoria de Colas
Teoria de Colas
 
La Meta, Eliyahu Goldratt
La Meta, Eliyahu GoldrattLa Meta, Eliyahu Goldratt
La Meta, Eliyahu Goldratt
 
Java y sus caracteristicas
Java y sus caracteristicasJava y sus caracteristicas
Java y sus caracteristicas
 
Estructura datos pilas y colas
Estructura datos pilas y colasEstructura datos pilas y colas
Estructura datos pilas y colas
 
WEBXDN2012 - Community Management
WEBXDN2012 - Community ManagementWEBXDN2012 - Community Management
WEBXDN2012 - Community Management
 
Les Bandistes
Les BandistesLes Bandistes
Les Bandistes
 
Patapon et Rodrigue, 10 premières pages
Patapon et Rodrigue, 10 premières pagesPatapon et Rodrigue, 10 premières pages
Patapon et Rodrigue, 10 premières pages
 
Vae Solis Corporate 365 n°3
Vae Solis Corporate 365 n°3Vae Solis Corporate 365 n°3
Vae Solis Corporate 365 n°3
 
Pasion xulia
Pasion xuliaPasion xulia
Pasion xulia
 
Dossier presse(1)
Dossier presse(1)Dossier presse(1)
Dossier presse(1)
 
Camille bosqué
Camille bosquéCamille bosqué
Camille bosqué
 
Créer un compte compositeur
Créer un compte compositeurCréer un compte compositeur
Créer un compte compositeur
 
Funcionalismo ignite-
Funcionalismo ignite-Funcionalismo ignite-
Funcionalismo ignite-
 

Similar a Afinamiento y entendimiento Garbage Collector JVM IBM

GraalVM - MálagaJUG 2018-11-29
GraalVM - MálagaJUG 2018-11-29GraalVM - MálagaJUG 2018-11-29
GraalVM - MálagaJUG 2018-11-29
Jorge Hidalgo
 
Introducción al manejo de memoria en el JVM
Introducción al manejo de memoria en el JVMIntroducción al manejo de memoria en el JVM
Introducción al manejo de memoria en el JVM
superserch
 
Escalabilidad y alto rendimiento con Symfony2
Escalabilidad y alto rendimiento con Symfony2Escalabilidad y alto rendimiento con Symfony2
Escalabilidad y alto rendimiento con Symfony2
Ricard Clau
 
Paralela10
Paralela10Paralela10
Paralela10
Abraham Zamudio
 
herramientas tecnológicas
herramientas tecnológicasherramientas tecnológicas
herramientas tecnológicas
Gerardo Linares
 
Introducción a la Computacion paralela
Introducción a la Computacion paralelaIntroducción a la Computacion paralela
Introducción a la Computacion paralela
Ernesto Cardenas Cangahuala
 
Sistemas Operativos 08-Presentacionn.pdf
Sistemas Operativos 08-Presentacionn.pdfSistemas Operativos 08-Presentacionn.pdf
Sistemas Operativos 08-Presentacionn.pdf
JOSELUISFLORESMONZON1
 
Optimización de aplicaciones PHP (server side)
Optimización de aplicaciones PHP (server side)Optimización de aplicaciones PHP (server side)
Optimización de aplicaciones PHP (server side)
Oriol Jiménez
 
Alfresco Enterprise: Escalabilidad y Tuning
Alfresco Enterprise: Escalabilidad y TuningAlfresco Enterprise: Escalabilidad y Tuning
Alfresco Enterprise: Escalabilidad y TuningToni de la Fuente
 
Python Gae django
Python Gae djangoPython Gae django
Python Gae django
Manuel Pérez
 
Herramientas Ágiles para Desarrollo
Herramientas Ágiles para DesarrolloHerramientas Ágiles para Desarrollo
Herramientas Ágiles para DesarrolloGastón Guillerón
 
Herramientas agilesdesarrollo
Herramientas agilesdesarrolloHerramientas agilesdesarrollo
Herramientas agilesdesarrollo
gabrielpiccoli
 
Seminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring InsightSeminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring Insight
Paradigma Digital
 
Meetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOps
Meetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOpsMeetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOps
Meetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOps
avanttic Consultoría Tecnológica
 
Pylot : Herramienta para pruebas de rendimiento de Aplicaciones Web
Pylot : Herramienta para pruebas  de rendimiento de Aplicaciones WebPylot : Herramienta para pruebas  de rendimiento de Aplicaciones Web
Pylot : Herramienta para pruebas de rendimiento de Aplicaciones Web
Deisy Sapaico
 
Revista Adm dl Procesador
Revista Adm dl ProcesadorRevista Adm dl Procesador
Revista Adm dl Procesador
Gene Beiia
 
Un Framework de Triggers Rock Solid en Salesforce
Un Framework de Triggers Rock Solid en SalesforceUn Framework de Triggers Rock Solid en Salesforce
Un Framework de Triggers Rock Solid en Salesforce
Esteve Graells
 

Similar a Afinamiento y entendimiento Garbage Collector JVM IBM (20)

GraalVM - MálagaJUG 2018-11-29
GraalVM - MálagaJUG 2018-11-29GraalVM - MálagaJUG 2018-11-29
GraalVM - MálagaJUG 2018-11-29
 
Monit optim iis6_2
Monit optim iis6_2Monit optim iis6_2
Monit optim iis6_2
 
Introducción al manejo de memoria en el JVM
Introducción al manejo de memoria en el JVMIntroducción al manejo de memoria en el JVM
Introducción al manejo de memoria en el JVM
 
Escalabilidad y alto rendimiento con Symfony2
Escalabilidad y alto rendimiento con Symfony2Escalabilidad y alto rendimiento con Symfony2
Escalabilidad y alto rendimiento con Symfony2
 
Paralela10
Paralela10Paralela10
Paralela10
 
herramientas tecnológicas
herramientas tecnológicasherramientas tecnológicas
herramientas tecnológicas
 
Introducción a la Computacion paralela
Introducción a la Computacion paralelaIntroducción a la Computacion paralela
Introducción a la Computacion paralela
 
Sistemas Operativos 08-Presentacionn.pdf
Sistemas Operativos 08-Presentacionn.pdfSistemas Operativos 08-Presentacionn.pdf
Sistemas Operativos 08-Presentacionn.pdf
 
Optimización de aplicaciones PHP (server side)
Optimización de aplicaciones PHP (server side)Optimización de aplicaciones PHP (server side)
Optimización de aplicaciones PHP (server side)
 
Alfresco Enterprise: Escalabilidad y Tuning
Alfresco Enterprise: Escalabilidad y TuningAlfresco Enterprise: Escalabilidad y Tuning
Alfresco Enterprise: Escalabilidad y Tuning
 
Python Gae django
Python Gae djangoPython Gae django
Python Gae django
 
Herramientas Ágiles para Desarrollo
Herramientas Ágiles para DesarrolloHerramientas Ágiles para Desarrollo
Herramientas Ágiles para Desarrollo
 
Herramientas agilesdesarrollo
Herramientas agilesdesarrolloHerramientas agilesdesarrollo
Herramientas agilesdesarrollo
 
Seminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring InsightSeminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring Insight
 
Meetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOps
Meetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOpsMeetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOps
Meetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOps
 
Pylot : Herramienta para pruebas de rendimiento de Aplicaciones Web
Pylot : Herramienta para pruebas  de rendimiento de Aplicaciones WebPylot : Herramienta para pruebas  de rendimiento de Aplicaciones Web
Pylot : Herramienta para pruebas de rendimiento de Aplicaciones Web
 
Revista Adm dl Procesador
Revista Adm dl ProcesadorRevista Adm dl Procesador
Revista Adm dl Procesador
 
Unidad 3.pptx
Unidad 3.pptxUnidad 3.pptx
Unidad 3.pptx
 
Rendimiento extremo en php
Rendimiento extremo en phpRendimiento extremo en php
Rendimiento extremo en php
 
Un Framework de Triggers Rock Solid en Salesforce
Un Framework de Triggers Rock Solid en SalesforceUn Framework de Triggers Rock Solid en Salesforce
Un Framework de Triggers Rock Solid en Salesforce
 

Más de Juan Camilo Parra

Riesgos BPM
Riesgos BPMRiesgos BPM
Riesgos BPM
Juan Camilo Parra
 
Gestion riesgos BPM
Gestion riesgos BPMGestion riesgos BPM
Gestion riesgos BPM
Juan Camilo Parra
 
Elegir un primer proyecto BPM
Elegir un primer proyecto BPMElegir un primer proyecto BPM
Elegir un primer proyecto BPM
Juan Camilo Parra
 
Introduccion Itil
Introduccion ItilIntroduccion Itil
Introduccion Itil
Juan Camilo Parra
 
Patron de diseño composite
Patron de diseño compositePatron de diseño composite
Patron de diseño composite
Juan Camilo Parra
 
Introduccion a Scrum
Introduccion a ScrumIntroduccion a Scrum
Introduccion a Scrum
Juan Camilo Parra
 
Metodologia xp
Metodologia xpMetodologia xp
Metodologia xp
Juan Camilo Parra
 
Introduccion bpm 7.5
Introduccion bpm 7.5Introduccion bpm 7.5
Introduccion bpm 7.5
Juan Camilo Parra
 
Bpm Frameworks Metodologias Arqutecturas
Bpm Frameworks Metodologias ArqutecturasBpm Frameworks Metodologias Arqutecturas
Bpm Frameworks Metodologias ArqutecturasJuan Camilo Parra
 
Introducción a SOA
Introducción a SOAIntroducción a SOA
Introducción a SOA
Juan Camilo Parra
 
IBM Message Broker Escalar flujos
IBM Message Broker Escalar flujosIBM Message Broker Escalar flujos
IBM Message Broker Escalar flujos
Juan Camilo Parra
 
IBM Message Broker buenas practicas
IBM Message Broker buenas practicasIBM Message Broker buenas practicas
IBM Message Broker buenas practicas
Juan Camilo Parra
 

Más de Juan Camilo Parra (13)

Riesgos BPM
Riesgos BPMRiesgos BPM
Riesgos BPM
 
Gestion riesgos BPM
Gestion riesgos BPMGestion riesgos BPM
Gestion riesgos BPM
 
Elegir un primer proyecto BPM
Elegir un primer proyecto BPMElegir un primer proyecto BPM
Elegir un primer proyecto BPM
 
Introduccion Itil
Introduccion ItilIntroduccion Itil
Introduccion Itil
 
Patron de diseño composite
Patron de diseño compositePatron de diseño composite
Patron de diseño composite
 
Introduccion a Scrum
Introduccion a ScrumIntroduccion a Scrum
Introduccion a Scrum
 
Metodologia xp
Metodologia xpMetodologia xp
Metodologia xp
 
Introduccion bpm 7.5
Introduccion bpm 7.5Introduccion bpm 7.5
Introduccion bpm 7.5
 
Bpm Frameworks Metodologias Arqutecturas
Bpm Frameworks Metodologias ArqutecturasBpm Frameworks Metodologias Arqutecturas
Bpm Frameworks Metodologias Arqutecturas
 
Introducción a SOA
Introducción a SOAIntroducción a SOA
Introducción a SOA
 
IBM Message Broker Escalar flujos
IBM Message Broker Escalar flujosIBM Message Broker Escalar flujos
IBM Message Broker Escalar flujos
 
IBM Message Broker buenas practicas
IBM Message Broker buenas practicasIBM Message Broker buenas practicas
IBM Message Broker buenas practicas
 
Ibm message broker basic
Ibm message broker basicIbm message broker basic
Ibm message broker basic
 

Último

Presentacion ATS 2015 Trens argentinos Sanchez.pptx
Presentacion ATS   2015 Trens argentinos Sanchez.pptxPresentacion ATS   2015 Trens argentinos Sanchez.pptx
Presentacion ATS 2015 Trens argentinos Sanchez.pptx
MAURICIOALEJANDROTAS1
 
164822219-Clase-4-Estructuras-3.pdf losas
164822219-Clase-4-Estructuras-3.pdf losas164822219-Clase-4-Estructuras-3.pdf losas
164822219-Clase-4-Estructuras-3.pdf losas
jcbarriopedro69
 
Cálculo del espesor del conducto forzado
Cálculo del espesor del conducto forzadoCálculo del espesor del conducto forzado
Cálculo del espesor del conducto forzado
KristianSaavedra
 
Focos SSO Fin de Semana del 31 MAYO A al 02 de JUNIO de 2024.pdf
Focos SSO Fin de Semana del 31 MAYO A  al 02 de JUNIO  de 2024.pdfFocos SSO Fin de Semana del 31 MAYO A  al 02 de JUNIO  de 2024.pdf
Focos SSO Fin de Semana del 31 MAYO A al 02 de JUNIO de 2024.pdf
PatoLokooGuevara
 
352128962-Curso-herramientas-electricas.ppt
352128962-Curso-herramientas-electricas.ppt352128962-Curso-herramientas-electricas.ppt
352128962-Curso-herramientas-electricas.ppt
ROSAURO ROLDAN
 
PROCEDIMIENTO Y PLAN DE RESCATE PARA TRABAJOS EN ALTURAS (Recuperado automáti...
PROCEDIMIENTO Y PLAN DE RESCATE PARA TRABAJOS EN ALTURAS (Recuperado automáti...PROCEDIMIENTO Y PLAN DE RESCATE PARA TRABAJOS EN ALTURAS (Recuperado automáti...
PROCEDIMIENTO Y PLAN DE RESCATE PARA TRABAJOS EN ALTURAS (Recuperado automáti...
CarlitosWay20
 
NOM-001-SEDE-2012.pdf instalación eléctrica
NOM-001-SEDE-2012.pdf instalación eléctricaNOM-001-SEDE-2012.pdf instalación eléctrica
NOM-001-SEDE-2012.pdf instalación eléctrica
gabyp22
 
1. Introduccion a las excavaciones subterraneas (1).pdf
1. Introduccion a las excavaciones subterraneas (1).pdf1. Introduccion a las excavaciones subterraneas (1).pdf
1. Introduccion a las excavaciones subterraneas (1).pdf
raulnilton2018
 
INGLES_LISTA_DE_VOCABULARIO una lista completa
INGLES_LISTA_DE_VOCABULARIO una lista completaINGLES_LISTA_DE_VOCABULARIO una lista completa
INGLES_LISTA_DE_VOCABULARIO una lista completa
JaimmsArthur
 
Presentación- de motor a combustión -diesel.pptx
Presentación- de motor a combustión -diesel.pptxPresentación- de motor a combustión -diesel.pptx
Presentación- de motor a combustión -diesel.pptx
ronnyrocha223
 
tipos de energias: la Energía Radiante.pdf
tipos de energias: la Energía Radiante.pdftipos de energias: la Energía Radiante.pdf
tipos de energias: la Energía Radiante.pdf
munozvanessa878
 
ascensor o elevador​ es un sistema de transporte vertical u oblicuo, diseñado...
ascensor o elevador​ es un sistema de transporte vertical u oblicuo, diseñado...ascensor o elevador​ es un sistema de transporte vertical u oblicuo, diseñado...
ascensor o elevador​ es un sistema de transporte vertical u oblicuo, diseñado...
LuisLobatoingaruca
 
Las operaciones básicas en la construcción.
Las operaciones básicas en la construcción.Las operaciones básicas en la construcción.
Las operaciones básicas en la construcción.
MaraManuelaUrribarri
 
Infografia de operaciones basicas de la construccion.pdf
Infografia de operaciones basicas de la construccion.pdfInfografia de operaciones basicas de la construccion.pdf
Infografia de operaciones basicas de la construccion.pdf
DanielMelndez19
 
exposicion sobre los tipos de cortes de rolas para la produccion de chapas
exposicion sobre los tipos de cortes de rolas para la produccion de chapasexposicion sobre los tipos de cortes de rolas para la produccion de chapas
exposicion sobre los tipos de cortes de rolas para la produccion de chapas
raul958375
 
Guia_de_conservacion_y_mantenimiento(1).pdf
Guia_de_conservacion_y_mantenimiento(1).pdfGuia_de_conservacion_y_mantenimiento(1).pdf
Guia_de_conservacion_y_mantenimiento(1).pdf
AlmaDeliaStephanieMo
 
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...
FRANCISCOJUSTOSIERRA
 
Taller de Robots Velocistas2 esquema....
Taller de Robots Velocistas2 esquema....Taller de Robots Velocistas2 esquema....
Taller de Robots Velocistas2 esquema....
lawjose243
 
COMPARACION DE PRECIOS TENIENDO COMO REFERENTE LA OSCE
COMPARACION DE PRECIOS TENIENDO COMO REFERENTE LA OSCECOMPARACION DE PRECIOS TENIENDO COMO REFERENTE LA OSCE
COMPARACION DE PRECIOS TENIENDO COMO REFERENTE LA OSCE
jhunior lopez rodriguez
 
Especificacioes tecnicas.pdfaaaaaaaaaaaaaaaaaaaaaaaaaaa
Especificacioes tecnicas.pdfaaaaaaaaaaaaaaaaaaaaaaaaaaaEspecificacioes tecnicas.pdfaaaaaaaaaaaaaaaaaaaaaaaaaaa
Especificacioes tecnicas.pdfaaaaaaaaaaaaaaaaaaaaaaaaaaa
ssuserebb7f71
 

Último (20)

Presentacion ATS 2015 Trens argentinos Sanchez.pptx
Presentacion ATS   2015 Trens argentinos Sanchez.pptxPresentacion ATS   2015 Trens argentinos Sanchez.pptx
Presentacion ATS 2015 Trens argentinos Sanchez.pptx
 
164822219-Clase-4-Estructuras-3.pdf losas
164822219-Clase-4-Estructuras-3.pdf losas164822219-Clase-4-Estructuras-3.pdf losas
164822219-Clase-4-Estructuras-3.pdf losas
 
Cálculo del espesor del conducto forzado
Cálculo del espesor del conducto forzadoCálculo del espesor del conducto forzado
Cálculo del espesor del conducto forzado
 
Focos SSO Fin de Semana del 31 MAYO A al 02 de JUNIO de 2024.pdf
Focos SSO Fin de Semana del 31 MAYO A  al 02 de JUNIO  de 2024.pdfFocos SSO Fin de Semana del 31 MAYO A  al 02 de JUNIO  de 2024.pdf
Focos SSO Fin de Semana del 31 MAYO A al 02 de JUNIO de 2024.pdf
 
352128962-Curso-herramientas-electricas.ppt
352128962-Curso-herramientas-electricas.ppt352128962-Curso-herramientas-electricas.ppt
352128962-Curso-herramientas-electricas.ppt
 
PROCEDIMIENTO Y PLAN DE RESCATE PARA TRABAJOS EN ALTURAS (Recuperado automáti...
PROCEDIMIENTO Y PLAN DE RESCATE PARA TRABAJOS EN ALTURAS (Recuperado automáti...PROCEDIMIENTO Y PLAN DE RESCATE PARA TRABAJOS EN ALTURAS (Recuperado automáti...
PROCEDIMIENTO Y PLAN DE RESCATE PARA TRABAJOS EN ALTURAS (Recuperado automáti...
 
NOM-001-SEDE-2012.pdf instalación eléctrica
NOM-001-SEDE-2012.pdf instalación eléctricaNOM-001-SEDE-2012.pdf instalación eléctrica
NOM-001-SEDE-2012.pdf instalación eléctrica
 
1. Introduccion a las excavaciones subterraneas (1).pdf
1. Introduccion a las excavaciones subterraneas (1).pdf1. Introduccion a las excavaciones subterraneas (1).pdf
1. Introduccion a las excavaciones subterraneas (1).pdf
 
INGLES_LISTA_DE_VOCABULARIO una lista completa
INGLES_LISTA_DE_VOCABULARIO una lista completaINGLES_LISTA_DE_VOCABULARIO una lista completa
INGLES_LISTA_DE_VOCABULARIO una lista completa
 
Presentación- de motor a combustión -diesel.pptx
Presentación- de motor a combustión -diesel.pptxPresentación- de motor a combustión -diesel.pptx
Presentación- de motor a combustión -diesel.pptx
 
tipos de energias: la Energía Radiante.pdf
tipos de energias: la Energía Radiante.pdftipos de energias: la Energía Radiante.pdf
tipos de energias: la Energía Radiante.pdf
 
ascensor o elevador​ es un sistema de transporte vertical u oblicuo, diseñado...
ascensor o elevador​ es un sistema de transporte vertical u oblicuo, diseñado...ascensor o elevador​ es un sistema de transporte vertical u oblicuo, diseñado...
ascensor o elevador​ es un sistema de transporte vertical u oblicuo, diseñado...
 
Las operaciones básicas en la construcción.
Las operaciones básicas en la construcción.Las operaciones básicas en la construcción.
Las operaciones básicas en la construcción.
 
Infografia de operaciones basicas de la construccion.pdf
Infografia de operaciones basicas de la construccion.pdfInfografia de operaciones basicas de la construccion.pdf
Infografia de operaciones basicas de la construccion.pdf
 
exposicion sobre los tipos de cortes de rolas para la produccion de chapas
exposicion sobre los tipos de cortes de rolas para la produccion de chapasexposicion sobre los tipos de cortes de rolas para la produccion de chapas
exposicion sobre los tipos de cortes de rolas para la produccion de chapas
 
Guia_de_conservacion_y_mantenimiento(1).pdf
Guia_de_conservacion_y_mantenimiento(1).pdfGuia_de_conservacion_y_mantenimiento(1).pdf
Guia_de_conservacion_y_mantenimiento(1).pdf
 
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...
 
Taller de Robots Velocistas2 esquema....
Taller de Robots Velocistas2 esquema....Taller de Robots Velocistas2 esquema....
Taller de Robots Velocistas2 esquema....
 
COMPARACION DE PRECIOS TENIENDO COMO REFERENTE LA OSCE
COMPARACION DE PRECIOS TENIENDO COMO REFERENTE LA OSCECOMPARACION DE PRECIOS TENIENDO COMO REFERENTE LA OSCE
COMPARACION DE PRECIOS TENIENDO COMO REFERENTE LA OSCE
 
Especificacioes tecnicas.pdfaaaaaaaaaaaaaaaaaaaaaaaaaaa
Especificacioes tecnicas.pdfaaaaaaaaaaaaaaaaaaaaaaaaaaaEspecificacioes tecnicas.pdfaaaaaaaaaaaaaaaaaaaaaaaaaaa
Especificacioes tecnicas.pdfaaaaaaaaaaaaaaaaaaaaaaaaaaa
 

Afinamiento y entendimiento Garbage Collector JVM IBM

  • 1. © 2007 IBM Corporation ® Pág 1 Sesión 1: Entendiendo la JVM Juan Camilo Parra Martínez AVP Websphere
  • 2. IBM Software Group | WebSphere software ¿Que es y como funciona la JVM? La JVM es una de las piezas fundamentales de la plataforma Java. Básicamente se sitúa en un nivel superior al hardware del sistema sobre el que se pretende ejecutar la aplicación, y este actúa como un puente que entiende tanto el bytecode como el sistema sobre el que se pretende ejecutar.
  • 3. IBM Software Group | WebSphere software Arquitectura JVM 3
  • 4. IBM Software Group | WebSphere software ¿Qué es el Garbage Colector (GC)? 4 Un recolector de basura (del inglés garbage collector) es un mecanismo implícito de gestión de memoria implementado en algunos lenguajes de programación de tipo interpretado o semi-interpretado. •Reservar espacios de memoria para su uso. •Liberar espacios de memoria previamente reservados. •Compactar espacios de memoria libres y consecutivos entre sí. •Llevar cuenta de qué espacios están libres y cuáles no.
  • 5. IBM Software Group | WebSphere software Ejemplo practico GC 5
  • 6. IBM Software Group | WebSphere software Que es el Heap Size  El heap es el espacio de memoria en tiempo de ejecución que se usa para almacenar las instancias de clases, objetos y arrays. Se crea en el inicio de la máquina virtual (JVM) y es gestionado por el Garbage Collector.  Se puede modificar el tamaño del heap mediante comandos de la JVM, y el GC realiza modificaciones en tiempo de ejecución de forma automática. 6
  • 7. IBM Software Group | WebSphere software Heap Dump  Un Heap Dump es un snapshot o “fotografía” del estado del heap en un momento concreto. Es generado por la JVM y muestra un volcado (dump) de todos los objetos “vivos” en el heap (los usados por la aplicación java) en ese momento.  Un heap dump puede generarse de varias formas:  De forma automática: la JVM genera un heap dump automáticamente cuando el heap se agota. (OutOfMemoryError)  De forma explícita 7
  • 8. IBM Software Group | WebSphere software Entendiendo el manejo de memoria y memoria fisica 8
  • 9. IBM Software Group | WebSphere software Fases del GC  Marking  Sweep  Compacting  Reference objects  Final reference processing  JNI weak reference  Heap expansion (30%)  Heap shrinkage (60%) 9
  • 10. IBM Software Group | WebSphere software Entendiendo un poco el GC  Es el responsable de ubicar o liberar Objetos Java, Arreglos de objetos, Clases Java y Librerías.  Ubica los objetos usando secciones continuas de Heap de Java  Se asegura que el objeto se mantiene durante su vida útil o uso, esta determinación se basa en referencias del objeto.  Marca objetos que no se encuentran mas referenciados  Se asegura que cualquier método de finalización es llamado antes de que el objeto sea marcado. 10
  • 11. IBM Software Group | WebSphere software Por que se debe mantener afinado GC? En la ejecución de todos los procesos o aplicaciones se pausa hasta que el GC termina su labor. Conocido como “Stop The World” (STW) 11
  • 12. IBM Software Group | WebSphere software ¿Que pasa a la JVM cuando la se comienza a paginar? 12
  • 13. IBM Software Group | WebSphere software Objetivo Responsiveness vs Throughput 13
  • 14. IBM Software Group | WebSphere software Responsiveness Se refiere a la rapidez con que una aplicación o sistema responde. Por ejemplo:  La rapidez con una interfaz de usuario de escritorio responde a un evento  Qué tan rápido un sitio web devuelve una página  Qué tan rápido se devuelve una consulta de base de datos Para estas aplicaciones, grandes tiempos de pausa no son aceptables. La atención se centra en dar respuesta en períodos cortos de tiempo. 14
  • 15. IBM Software Group | WebSphere software Throughput Se centra en maximizar la cantidad de trabajo de una aplicación en un período específico de tiempo. Por ejemplo:  El número de transacciones completadas en un tiempo dado.  El número de puestos de trabajo que un programa por lotes se puede completar en una hora.  El número de consultas de bases de datos que se pueden completar en una hora.  Tiempos altos de pausa son aceptables para estas aplicaciones. Dado que las aplicaciones de alto rendimiento se centran en los puntos de referencia en períodos más largos de tiempo, el tiempo de respuesta rápida no es una consideración. 15
  • 16. IBM Software Group | WebSphere software Mejorar el Performance de una aplicación JAVA 16 Mejorar la aplicación, depende exclusivamente del código. El afinamiento de la JVM, no va a solucionar problemas, que competen netamente a código!!
  • 17. IBM Software Group | WebSphere software Mejorar el Performance JVM 17 Todo afinamiento del GC trae, consigo mejoras en los tiempos de respuesta, pero esto no evita el profiling y mejora de las aplicaciones.
  • 18. IBM Software Group | WebSphere software Performance del recolector de basura La definición de un problema de performance suele ser centrada en el usuario (El usuario requiere) • Tiempos de pausa del GC muy cortos • Maximo Throughput • Un Balance entre estas dos 1. Debemos asegurarnos que hemos seleccionado la política del Garbage Collector según el tipo de performance que espera el usuario final • Para ello debemos conocer cada uno de los mecanismos de GC 2. Asegurarnos que el Heap Size esta bien configurado, por defecto y por exceso son malas configuraciones 3. Revisar por problemas específicos de performance. 18
  • 19. IBM Software Group | WebSphere software Saquemos Conclusiones.  ¿Qué pasa si el heap inicial es muy alto?  ¿Qué pasa si el heap máximo es muy bajo?  ¿Qué pasa si el heap inicial es muy bajo?  ¿Qué pasa si el Garbage Collector tiene tiempos de pausa muy largos?  ¿Qué pasa si el Garbage Collector tiene tiempos de pausa cortos pero muy seguidos?  ¿Para que se configura el Heap inicial y el máximo en el mismo valor?  ¿Cuál seria el comportamiento esperado de una JVM de 32bits con 3GB de Memoria Máxima y 256mb de memoria inicial? 19
  • 20. IBM Software Group | WebSphere software ¿Preguntas? 20
  • 21. © 2007 IBM Corporation ® Pág 21 Sesión 2: Optimizar la JVM Juan Camilo Parra Martínez AVP
  • 22. IBM Software Group | WebSphere software Tipos de Garbage Collector (Solo IBM_J9) 22 Policy Option Description Optimize for throughput -Xgcpolicy:optthruput (optional) The default policy. It is typically used for applications where raw throughput is more important than short GC pauses. The application is stopped each time that garbage is collected. Optimize for pause time -Xgcpolicy:optavgpause Trades high throughput for shorter GC pauses by performing some of the garbage collection concurrently. The application is paused for shorter periods. Generational concurrent -Xgcpolicy:gencon Handles short-lived objects differently than objects that are long-lived. Applications that have many short-lived objects can see shorter pause times with this policy while still producing good throughput. Subpooling -Xgcpolicy:subpool Uses an algorithm similar to the default policy's but employs an allocation strategy that is more suitable for multiprocessor machines. We recommend this policy for SMP machines with 16 or more processors. This policy is only available on IBM pSeries® and zSeries® platforms. Applications that need to scale on large machines can benefit from this policy.
  • 23. IBM Software Group | WebSphere software Pistas 23 Switch to Reasons optavgpause • My application cannot tolerate the length of the GC pauses. A degradation in performance is acceptable as long as the GC pause time is reduced. • I am running on a 64-bit platform and use a very large heap -- more than 3 or 4GB. • My application is a GUI application and I'm concerned about the user response times. gencon • My application allocates many short- lived objects. • The heap space is fragmented. • My application is transaction-based (that is, objects in the transaction don't survive beyond the transaction commit). subpool • I have scalability problems on large multiprocessor machine.
  • 24. IBM Software Group | WebSphere software Parallel GC (optthruput)  Es un algoritmo de Marcado y Barrido en paralelo, que evita la compactación, esta diseñado para aumentar el performance en SMP.  Se encuentra optimizado para “Throughput”, con lo cual es la mejor política para aplicaciones tipo “batch”  En este algoritmo se encuentra un hilo principal encargado de generar el conjunto de objetos, y una serie de hilos helper que se encargan del resto del trabajo, el numero de hilos es igual al numero de unidades de procesamiento (Por defecto en IBM J9)  Se puede disminuir usando -Xgcthreads 24
  • 25. IBM Software Group | WebSphere software 25
  • 26. IBM Software Group | WebSphere software Concurrent GC (optavgpause)  Reduce y hace mas consistente, el tiempo de pausa gastado por el GC.  Lo logra realizando el proceso de marcado y barrido de manera concurrente, mientras se ejecuta la aplicación o esta esta inactiva, esto hace que la aplicación no se detenga durante todas las fases, sino solo durante una pequeña fracción de tiempo.  Se reduce el tiempo de pausa entre un 90 y 95% comparado con optthruput.  El Throughput se reduce aproximadamente en un 5% comparado con optthruput. 26
  • 27. IBM Software Group | WebSphere software 27 Hidden Object Issue
  • 28. IBM Software Group | WebSphere software Generacional Concurrente (gencon)  Es un concepto similar al usado por Sun y HP, se realizan copias paralelas y recolecciones globales concurrentes por defecto.  Se basa en la muerte muy frecuente de objetos jóvenes, entonces enfoca su atención a limpiar los objetos que son creados reciente.  Para ello divide el heap en dos áreas, “Nursery” y “Tenured”  Los objetos nuevos se alojan en Nursery, y los viejos en Tenured.  Las recolecciones se enfocan en el área de Nursery.  Los objetos que sobreviven a cierto numero de recolecciones en el Nursery, son enviados al Tenured. 28
  • 29. IBM Software Group | WebSphere software  El área de Nursery también se divide en dos, Allocate y Survivor, en el primero los objetos nuevos son ubicados, Survivor es un paso intermedio donde se copian los objetos de forma temporal cuando ocurre un ciclo de GC de Nursery.  La cantidad de ciclos de recolección del Nursery antes de llevar un objeto al Tenured es determinada de forma automática por la JVM, pero este numero nunca excederá las 14 recolecciones.  Los objetos son ubicados en el espacio de Tenured y Survivor de forma tal que se evita al máximo la fragmentación. 29
  • 30. IBM Software Group | WebSphere software 30
  • 31. IBM Software Group | WebSphere software Monitoreando la actividad del GC  Use el Verbose del GC para rastrear el comportamiento de la maquina virtual.  Para eso active el log usando los parámetros – -Xverbose:gc – -Xverbosegclog:[DirPath][FileName],[NumberOfFiles],[NumberOfCyclesPerFile]  Puede graficar el verbose usando la herramienta GC and Memory Visualizer (GCMV) de ISA.  Costo de performance: Se estima que activar el GC causa una sobre carga del 2% sobre los tiempos de pausa, así si el tiempo de pausa usual de una maquina virtual es de 5 segundos, este se convertirá en 5.1segundos. 31
  • 32. IBM Software Group | WebSphere software JRockit  The following dynamic modes are available:  throughput, which optimizes the garbage collector for maximum application throughput. This is the default mode.  pausetime, which optimizes the garbage collector for short and even pause times.  deterministic, which optimizes the garbage collector for very short and deterministic pause times. This mode is only available as a part of Oracle JRockit Real Time.  The major static strategies are:  singlepar, which is a single-generational parallel garbage collector (same as parallel)  genpar, which is a two-generational parallel garbage collector  singlecon, which is a single-generational mostly concurrent garbage collector  gencon, which is a two-generational mostly concurrent garbage collector  http://docs.oracle.com/cd/E13150_01/jrockit_jvm/jrockit/geninfo/diagnos/memman .html 32
  • 33. IBM Software Group | WebSphere software HotSpot de Sun  If the application has a small data set (up to approximately 100MB), then – select the serial collector with -XX:+UseSerialGC.  If the application will be run on a single processor and there are no pause time requirements, then – let the VM select the collector, or – select the serial collector with -XX:+UseSerialGC.  If (a) peak application performance is the first priority and (b) there are no pause time requirements or pauses of one second or longer are acceptable, then – let the VM select the collector, or – select the parallel collector with -XX:+UseParallelGC and (optionally) enable parallel compaction with -XX:+UseParallelOldGC.  If response time is more important than overall throughput and garbage collection pauses must be kept shorter than approximately one second, then – select the concurrent collector with -XX:+UseConcMarkSweepGC. If only one or two processors are available, consider using incremental mode.  http://www.oracle.com/technetwork/java/javase/gc-tuning-6- 140523.html 33
  • 34. IBM Software Group | WebSphere software Donde puedo encontrar los demás parámetros que puedo ajustar en la JVM de IBM  http://publib.boulder.ibm.com/infocenter/realtime/v1r0/index.jsp?t opic=%2Fcom.ibm.rt.doc.10%2Frealtime%2Frt_xoptions_gc_sta ndard.html 34
  • 35. IBM Software Group | WebSphere software Configurando Memoria JVM  Máximos posibles  El Heap Size “Correcto”  Heap size fixed vs variable  Heap Size para algoritmos generacionales (gencon) 35
  • 36. IBM Software Group | WebSphere software Máximo Heap Size Posible  Las JVM de 32 bits tienen un máximo que varia dependiendo de la plataforma sistema operativo, implementación de la misma JVM, etc.  Esta restricción suele ser baja (alrededor de 2GB)  Se debe tener mucho cuidado con el Native Heap  Los procesos de 64 bits, suelen tener un limite mucho mayor, tan grande que puede ser ignorado, (alrededor de 16 TeraBytes) 36
  • 37. IBM Software Group | WebSphere software 37 El Native Heap, puede ser medido usando, Svmon(AIX), PerfMon (Windows) , RFm(zOs)
  • 38. IBM Software Group | WebSphere software Implicaciones de usar 64bits  Menor Performance  Mas datos a manipular  Temas de Cache actúan con un bajo rendimiento  Se requiere mas memoria  Se solucionan utilizando métodos de compresión de memoria. 38
  • 39. IBM Software Group | WebSphere software El Heap Size “Correcto” 39 MaxUsed / MaxHeap = 0.7 1.43 * MaxUsed = MaxHeap
  • 40. IBM Software Group | WebSphere software Heap Fixed vs Variable  ¿Deberia ser el heap inicial igual al heap maximo? > -Xms = -Xmx  Como siempre para cada aplicación hay que considerar las ventajas y desventajas dependiendo de lo que se quiera conseguir.  Analicemos y consideremos las características de cada uno. 40
  • 41. IBM Software Group | WebSphere software Heap Size para algoritmos generacionales 41
  • 42. IBM Software Group | WebSphere software Preguntas 42
  • 43. © 2007 IBM Corporation ® Pág 43 Sesión 3: Practica Juan Camilo Parra Martínez AVP
  • 44. IBM Software Group | WebSphere software Probar  Gencon  Optavgpause  Y optthruput  ¿Como se comporta cada test con los diferentes algoritmos de GC?  Para el test 5, el instructor dará un escenario, configure la jvm de manera que se minimicen los tiempos de pausa. 44
  • 45. IBM Software Group | WebSphere software Preguntas? 45
  • 46. IBM Software Group | WebSphere software Referencias  http://www- 01.ibm.com/support/docview.wss?uid=swg27013824&aid=1  https://www.ibm.com/developerworks/library/j-ibmjava2/  http://www.cubrid.org/blog/dev-platform/the-principles-of-java- application-performance-tuning/  http://www.cubrid.org/blog/dev-platform/how-to-tune-java- garbage-collection/  http://www- 01.ibm.com/support/docview.wss?uid=swg27013400&aid=1 46
  • 47. IBM Software Group | WebSphere software Referencias  http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/g c01/index.html  http://www.cs.virginia.edu/kim/publicity/pldi09tutorials/memory- efficient-java-tutorial.pdf 47
  • 48. IBM Software Group | WebSphere software Referencias  http://www.redbooks.ibm.com/redbooks/pdfs/sg247353.pdf  http://www- 01.ibm.com/support/docview.wss?uid=swg27013824&aid=1  http://www.redbooks.ibm.com/redbooks/pdfs/sg247353.pdf  http://www.slideshare.net/cnbailey/tuning-ibms-generational-gc- 14062096 48
  • 49. IBM Software Group | WebSphere software