SlideShare ist ein Scribd-Unternehmen logo
1 von 46
Downloaden Sie, um offline zu lesen
Introducción al manejo
de memoria en el JVM
Sergio Martínez

@SuperSerch
¿Qué ocurre en la memoria?
¿Qué ocurre en la memoria?
¿Qué ocurre en la memoria?
¿Qué ocurre en la memoria?
¿Qué ocurre en la memoria?
¿Qué ocurre en la memoria?
¿Qué ocurre en la memoria?
¿Qué ocurre en la memoria?
Retos al administrar la memoria
Velocidad de asignación ( velocidad de
creación de objetos )
Seguimiento de objetos y valores vivos
Seguimiento del espacio vacío
Fragmentación de la memoria
JVMS: 2.5.3 Heap
“The heap is created on virtual machine start-up. Heap storage for
objects is reclaimed by an automatic storage management system
(known as a garbage collector); objects are never explicitly deallocated.
The Java Virtual Machine assumes no particular type of automatic
storage management system, and the storage management technique
may be chosen according to the implementor's system requirements.
The heap may be of a fixed size or may be expanded as required by the
computation and may be contracted if a larger heap becomes
unnecessary. The memory for the heap does not need to be contiguous.”
If a computation requires more heap than can be made available
by the automatic storage management system, the Java Virtual
Machine throws an OutOfMemoryError.
The heap is created on virtual machine start-up. Heap storage for
objects is reclaimed by an automatic storage management system
(known as a garbage collector); objects are never explicitly deallocated.
The Java Virtual Machine assumes no particular type of automatic
storage management system, and the storage management technique
may be chosen according to the implementor's system requirements.
The heap may be of a fixed size or may be expanded as required by the
computation and may be contracted if a larger heap becomes
unnecessary. The memory for the heap does not need to be contiguous.
JVMS: 2.5.3 Heap
Hipótesis Generacional
Hipótesis generacional
La mayoría de los objetos mueren jóvenes
80% - 95% de los objetos en 1MB mueren
antes de que se llene el siguiente MB
95% de los objetos Java son de corta vida
Memoria generacional
PermGen
(jdk8-nativo)
Old Gen
Young Gen
Young Gen
Young Gen
Eden
Survivor Spaces
From To⇄
Allocation
Allocation
Allocation
From To
Allocation
From To
Allocation
To From
Allocation
To From
Allocation
From To
Promotion
From To
No hay espacio suficiente
Promotion
From To
Old Generation
¿Cuándo un Objeto es basura?
Un objeto es elegible para ser colectado
cuando desde ningún GC Root de la JVM se
puede alcanzar con una referencia fuerte al
objeto
Referencia fuerte (Variable en alcance)
GC Root de la JVM
GC Roots de la JVM
Threads activos
Variables locales
(stack)
Variables estáticas
Referencias JNI GC Roots
Objetos
Alcanzables
Objetos NO
Alcanzables
Colectores en Oracle JVM
Serial Garbage Collector
Parallel Garbage Collector
Concurrent Mark-Sweep Garbage Collector
G1 Garbage Collector (Garbage 1srt)
Z Garbage Collection (JDK 11)
Serial Garbage Collector
Compactación por deslizamiento,
con una pausa stop-the-world
Util para ambientes con 1 virtual
core o en ambientes donde
varias JVMs comparten el mismo
hardware
Para Heaps en el orden de MBs
Pausas posiblemente largas
App App AppGC GC
Parallel Garbage Collector
Compactación por
deslizamiento, con una pausa
stop-the-world
utiliza todos los núcleos
disponibles
Alto throughput
Para Heap’s en el orden de GBs
App App AppGC GC
Concurrent Mark-Sweep Garbage
Collector
Diseñado para tener un tiempo de
respuesta consistente
Hace gran parte del trabajo de
limpiar Old Gen concurrente a la
aplicación
Si se acaba el espacio antes de que
CMS pueda limpiar, ocurre una
SWP y limpia en paralelo
Require un Heap mas grande
App App AppIM RM
SW
G1 Garbage Collector (Garbage 1srt)
Paralelo, concurrente e incremental
Pausas cortas (200ms) y alto
throughput
Divide el heap en regiones
Cada región puede cambiar de rol
según se requiera al momento
Remplazo del CMS, a partir del JDK9
es el GC por defecto
App App AppGC GC
G1 Garbage Collector (Garbage 1srt)
G1 Garbage Collector (Garbage 1srt)
G1 Garbage Collector (Garbage 1srt)
G1 Garbage Collector (Garbage 1srt)
G1 Garbage Collector (Garbage 1srt)
Z Garbage Collector (JDK 11*)
Concurrente
Divide el heap en regiones
Pausas que no exceden 10ms
Tiempo de pausas no
incrementa con el tamaño del
Heap
NUMA-aware
Usa punteros coloreados
Utiliza load barriers (~4%)
Para Heap’s con tamaños desde
Megabytes hasta Terabytes
Solo una generación*
Tiempo de pausas incrementa
al incrementar los GC Roots
ZGC Cycle
Pause Mark Start Pause Mark End Pause Relocate Start
Concurrent
Mark/Remap
Concurrent
prep. relocation
Concurrent
Relocate
Colored Pointers & Load Barriers
Object address (44bits - 16 TB address space)Unused (16 bits)
Metadata
Puntero a un Objeto (64 Bits)
Object o = obj.fieldA;
<Load Barrier>
-No es el color correcto?
-Realizar los ajustes
<Load Barrier>
…
Tipos de Referencias
Fuerte
Suave ( SoftReference )
Debil ( WeakReference )
Fantasma ( PhantomReference )
Ejemplo WeakReference
WagTask.run Kennel.dogCache
WeakReference
Dog
Tail
Stack Heap
Ejemplo WeakReference
WagTask.run Kennel.dogCache
WeakReference
Dog
Tail
Stack Heap
El Thread se muere
Ejemplo WeakReference
Kennel.dogCache
WeakReference
Dog
Tail
Heap
Durante un GC
Ejemplo WeakReference
Kennel.dogCache
WeakReference
null
Heap
Después del GC
¿ Preguntas ?

Weitere ähnliche Inhalte

Ähnlich wie Introducción al manejo de memoria en el JVM

Memorias (Sistemas Operativos)
Memorias (Sistemas Operativos)Memorias (Sistemas Operativos)
Memorias (Sistemas Operativos)JaderValdivia
 
Segunda unidas open suse
Segunda unidas open suseSegunda unidas open suse
Segunda unidas open suseMiguel Magaña
 
AWS Summits América Latina 2015 EC2 Avanzado
AWS Summits América Latina 2015 EC2 AvanzadoAWS Summits América Latina 2015 EC2 Avanzado
AWS Summits América Latina 2015 EC2 AvanzadoAmazon Web Services LATAM
 
Webprendedor 2009 Escalabilidad
Webprendedor 2009 EscalabilidadWebprendedor 2009 Escalabilidad
Webprendedor 2009 Escalabilidadedavism
 
Sistema operativo.ppt
Sistema operativo.pptSistema operativo.ppt
Sistema operativo.pptAngizon Vn'
 
Tarea de investigacion 6 sm2
Tarea de investigacion 6 sm2Tarea de investigacion 6 sm2
Tarea de investigacion 6 sm2Yesi Reyes
 
Memoria ram
Memoria ramMemoria ram
Memoria ramStarionT
 
Tarea de investigacion 6 sm2
Tarea de investigacion 6 sm2Tarea de investigacion 6 sm2
Tarea de investigacion 6 sm2Miguel Damian
 
La memoria ram
La memoria ramLa memoria ram
La memoria ramiturbide92
 
Plataformas de hosting en la nube
Plataformas de hosting en la nubePlataformas de hosting en la nube
Plataformas de hosting en la nubeRefresh Maracaibo
 
Softonic Labs - Web Escalable
Softonic Labs - Web EscalableSoftonic Labs - Web Escalable
Softonic Labs - Web EscalableAlex Puig
 
Estructura de datos c++
Estructura de datos c++Estructura de datos c++
Estructura de datos c++kikeMerck
 

Ähnlich wie Introducción al manejo de memoria en el JVM (20)

Memorias (Sistemas Operativos)
Memorias (Sistemas Operativos)Memorias (Sistemas Operativos)
Memorias (Sistemas Operativos)
 
De Mensajería hacia Logs con Apache Kafka
De Mensajería hacia Logs con Apache KafkaDe Mensajería hacia Logs con Apache Kafka
De Mensajería hacia Logs con Apache Kafka
 
Segunda unidas open suse
Segunda unidas open suseSegunda unidas open suse
Segunda unidas open suse
 
Opensuse2
Opensuse2Opensuse2
Opensuse2
 
AWS Summits América Latina 2015 EC2 Avanzado
AWS Summits América Latina 2015 EC2 AvanzadoAWS Summits América Latina 2015 EC2 Avanzado
AWS Summits América Latina 2015 EC2 Avanzado
 
EC2 Avanzado
EC2 AvanzadoEC2 Avanzado
EC2 Avanzado
 
Webprendedor 2009 Escalabilidad
Webprendedor 2009 EscalabilidadWebprendedor 2009 Escalabilidad
Webprendedor 2009 Escalabilidad
 
Sistema operativo.ppt
Sistema operativo.pptSistema operativo.ppt
Sistema operativo.ppt
 
Tarea de investigacion 6 sm2
Tarea de investigacion 6 sm2Tarea de investigacion 6 sm2
Tarea de investigacion 6 sm2
 
Memoria ram
Memoria ramMemoria ram
Memoria ram
 
Tarea de investigacion 6 sm2
Tarea de investigacion 6 sm2Tarea de investigacion 6 sm2
Tarea de investigacion 6 sm2
 
La memoria ram
La memoria ramLa memoria ram
La memoria ram
 
Plataformas de hosting en la nube
Plataformas de hosting en la nubePlataformas de hosting en la nube
Plataformas de hosting en la nube
 
Monit optim iis6_2
Monit optim iis6_2Monit optim iis6_2
Monit optim iis6_2
 
Tunning Flex Apps
Tunning Flex AppsTunning Flex Apps
Tunning Flex Apps
 
Clase x
Clase xClase x
Clase x
 
Softonic Labs - Web Escalable
Softonic Labs - Web EscalableSoftonic Labs - Web Escalable
Softonic Labs - Web Escalable
 
Estructura de datos c++
Estructura de datos c++Estructura de datos c++
Estructura de datos c++
 
Equipo1
Equipo1Equipo1
Equipo1
 
Equipo1
Equipo1Equipo1
Equipo1
 

Mehr von superserch

Identificando problemas en el JVM
Identificando problemas en el JVMIdentificando problemas en el JVM
Identificando problemas en el JVMsuperserch
 
Lambda & Stream API workshop 2019
Lambda & Stream API workshop 2019Lambda & Stream API workshop 2019
Lambda & Stream API workshop 2019superserch
 
OWASP Top 10 2017
OWASP Top 10 2017OWASP Top 10 2017
OWASP Top 10 2017superserch
 
Jvmmx docker jvm
Jvmmx docker jvmJvmmx docker jvm
Jvmmx docker jvmsuperserch
 
Cloudino workshopcpmx7
Cloudino workshopcpmx7Cloudino workshopcpmx7
Cloudino workshopcpmx7superserch
 
Workshop: Lambdas y Stream API en Java 8
Workshop: Lambdas y Stream API en Java 8Workshop: Lambdas y Stream API en Java 8
Workshop: Lambdas y Stream API en Java 8superserch
 
Chela stress test
Chela stress testChela stress test
Chela stress testsuperserch
 
Zed Attack Proxy
Zed Attack ProxyZed Attack Proxy
Zed Attack Proxysuperserch
 
Inyección, XSS, CSRF en ChelaJS
Inyección, XSS, CSRF en ChelaJSInyección, XSS, CSRF en ChelaJS
Inyección, XSS, CSRF en ChelaJSsuperserch
 

Mehr von superserch (10)

Identificando problemas en el JVM
Identificando problemas en el JVMIdentificando problemas en el JVM
Identificando problemas en el JVM
 
Lambda & Stream API workshop 2019
Lambda & Stream API workshop 2019Lambda & Stream API workshop 2019
Lambda & Stream API workshop 2019
 
OWASP Top 10 2017
OWASP Top 10 2017OWASP Top 10 2017
OWASP Top 10 2017
 
Jvmmx docker jvm
Jvmmx docker jvmJvmmx docker jvm
Jvmmx docker jvm
 
Cloudino workshopcpmx7
Cloudino workshopcpmx7Cloudino workshopcpmx7
Cloudino workshopcpmx7
 
Workshop: Lambdas y Stream API en Java 8
Workshop: Lambdas y Stream API en Java 8Workshop: Lambdas y Stream API en Java 8
Workshop: Lambdas y Stream API en Java 8
 
Jvmmx jigsaw
Jvmmx jigsawJvmmx jigsaw
Jvmmx jigsaw
 
Chela stress test
Chela stress testChela stress test
Chela stress test
 
Zed Attack Proxy
Zed Attack ProxyZed Attack Proxy
Zed Attack Proxy
 
Inyección, XSS, CSRF en ChelaJS
Inyección, XSS, CSRF en ChelaJSInyección, XSS, CSRF en ChelaJS
Inyección, XSS, CSRF en ChelaJS
 

Kürzlich hochgeladen

Estructura del lenguaje c++. Operaciones básicas y su jerarquía aplicada en e...
Estructura del lenguaje c++. Operaciones básicas y su jerarquía aplicada en e...Estructura del lenguaje c++. Operaciones básicas y su jerarquía aplicada en e...
Estructura del lenguaje c++. Operaciones básicas y su jerarquía aplicada en e...FabianCruz73
 
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...Neo4j
 
SQL server Analysis Services & SQL Server Reporting Services.pptx
SQL server Analysis Services & SQL Server Reporting Services.pptxSQL server Analysis Services & SQL Server Reporting Services.pptx
SQL server Analysis Services & SQL Server Reporting Services.pptxRAMIROANTONIOGALINDO
 
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafos
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafosBBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafos
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafosNeo4j
 
Webinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdfWebinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdfAnaRosaMontenegro
 
Delitos informáticos en Slideshare.pptx
Delitos informáticos en  Slideshare.pptxDelitos informáticos en  Slideshare.pptx
Delitos informáticos en Slideshare.pptxmaykolmagallanes012
 
Tipos de pensamiento y pensamiento lógico
Tipos de pensamiento y pensamiento lógicoTipos de pensamiento y pensamiento lógico
Tipos de pensamiento y pensamiento lógicoMaxCaldern2
 
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxMacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxcalzadillasluis134
 
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...Neo4j
 
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOSISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOELIAMARYTOVARFLOREZD
 
Instalacion de servicios windows, configuracion y aplicacion.
Instalacion de servicios windows, configuracion y aplicacion.Instalacion de servicios windows, configuracion y aplicacion.
Instalacion de servicios windows, configuracion y aplicacion.CZSOTEC
 

Kürzlich hochgeladen (11)

Estructura del lenguaje c++. Operaciones básicas y su jerarquía aplicada en e...
Estructura del lenguaje c++. Operaciones básicas y su jerarquía aplicada en e...Estructura del lenguaje c++. Operaciones básicas y su jerarquía aplicada en e...
Estructura del lenguaje c++. Operaciones básicas y su jerarquía aplicada en e...
 
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...
 
SQL server Analysis Services & SQL Server Reporting Services.pptx
SQL server Analysis Services & SQL Server Reporting Services.pptxSQL server Analysis Services & SQL Server Reporting Services.pptx
SQL server Analysis Services & SQL Server Reporting Services.pptx
 
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafos
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafosBBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafos
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafos
 
Webinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdfWebinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdf
 
Delitos informáticos en Slideshare.pptx
Delitos informáticos en  Slideshare.pptxDelitos informáticos en  Slideshare.pptx
Delitos informáticos en Slideshare.pptx
 
Tipos de pensamiento y pensamiento lógico
Tipos de pensamiento y pensamiento lógicoTipos de pensamiento y pensamiento lógico
Tipos de pensamiento y pensamiento lógico
 
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxMacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
 
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...
 
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOSISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
 
Instalacion de servicios windows, configuracion y aplicacion.
Instalacion de servicios windows, configuracion y aplicacion.Instalacion de servicios windows, configuracion y aplicacion.
Instalacion de servicios windows, configuracion y aplicacion.
 

Introducción al manejo de memoria en el JVM