Publicação
GC-Wise: a self-adaptive approach fo rmemory-performance efficiency in Java VMs
| Resumo: | High-level language runtimes are ubiquitous in every cloud deployment. From the geo-distributed heavy resources cloud provider to the new Fog and Edge deployment paradigms, all rely on these runtimes for portability, isolation and resource management. Across these clouds, an efficient resource management of several managed runtimes involves limiting the heap size of some VMs so that extra memory can be assigned to higher priority workloads. The challenges in this approach rely on the potential scale of systems and the need to make decisions in an application-driven way, because performance degradation can be severe, and therefore it should be minimized. Also, each tenant tends to repeat the execution of applications with similar memory-usage patterns, giving opportunity to reuse parameters known to work well for a given workload. This paper presents GC-Wise, a system to determine, at run-time, the best values for critical heap management parameters of the OpenJDK JVM, aiming to maximize memory-performance efficiency. GCWise comprises two main phases: 1) a training phase where it collects, with different heap resizing policies, representative execution metrics during the lifespan of a workload; and 2) an execution phase where an oracle matches the execution parameters of new workloads against those of already seen workloads, and enforces the best heap resizing policy. Distinctly from other works, the oracle can also decide upon unknown workloads. Using representative applications and different hardware setting (a resourceful server and a fog-like device), we show that our approach can lead to significant memory savings with low-impact on the throughput of applications. Furthermore, we show that we can predict with high accuracy the best heap resizing configuration in a relatively short period of time. |
|---|---|
| Autores principais: | Simão, José |
| Outros Autores: | Esteves, S.; Pires, André; Veiga, Luís |
| Assunto: | Memory management Machine learning Java virtual machine |
| Ano: | 2019 |
| País: | Portugal |
| Tipo de documento: | artigo |
| Tipo de acesso: | acesso restrito |
| Instituição associada: | Instituto Politécnico de Lisboa |
| Idioma: | inglês |
| Origem: | Repositório Científico do Instituto Politécnico de Lisboa |
Registos relacionados
groups SmartGC: online memory management prediction for PaaS Cloud Models
por: Simão, José
Publicado em: (2017)
por: Simão, José
Publicado em: (2017)
groups Locality-aware GC optimisations for big data workloads
por: Patrício, Duarte
Publicado em: (2017)
por: Patrício, Duarte
Publicado em: (2017)
article A checkpointing-enabled and resource-aware Java Virtual Machine for efficient and robust e-Science applications in grid environments
por: Simão, José
Publicado em: (2012)
por: Simão, José
Publicado em: (2012)
article Efficient high-level programming in plain java
por: Silva, Rui S.
Publicado em: (2023)
por: Silva, Rui S.
Publicado em: (2023)
article Estimação estática de métricas para distribuir aplicações Java
por: Matos, Filipe
Publicado em: (2006)
por: Matos, Filipe
Publicado em: (2006)
school Efficient execution of Java programs on GPU
por: Raposo, Gonçalo Medeiros São Pedro
Publicado em: (2022)
por: Raposo, Gonçalo Medeiros São Pedro
Publicado em: (2022)
article High performance computing with java streams
por: Silva, Rui António Sabino Castiço
Publicado em: (2022)
por: Silva, Rui António Sabino Castiço
Publicado em: (2022)
article Understanding the social evolution of the Java community in Stack Overflow: a 10-year study of developer interactions
por: Blanco, Guillermo
Publicado em: (2020)
por: Blanco, Guillermo
Publicado em: (2020)
category Specifying and Monitoring Java Classes
por: Lopes, Antonia
Publicado em: (2009)
por: Lopes, Antonia
Publicado em: (2009)
article Performance analysis of JAVA APIs for XML processing
por: Oliveira, Bruno
Publicado em: (2013)
por: Oliveira, Bruno
Publicado em: (2013)
article Processing XML with Java – a performance benchmark
por: Oliveira, Bruno
Publicado em: (2013)
por: Oliveira, Bruno
Publicado em: (2013)
article Dependable distributed OSGi environment
por: Matos, Miguel
Publicado em: (2008)
por: Matos, Miguel
Publicado em: (2008)
article Let’s get physical: Rethinking the static partitioning hypervisor architecture for an MMU-less memory model
por: Santos, Afonso
Publicado em: (2025)
por: Santos, Afonso
Publicado em: (2025)
school Profiling tools for Java
por: Gomes, Vítor Domingos Araújo
Publicado em: (2022)
por: Gomes, Vítor Domingos Araújo
Publicado em: (2022)
school LiquidJava : extending Java with refinements
por: Gamboa, Catarina Ventura
Publicado em: (2022)
por: Gamboa, Catarina Ventura
Publicado em: (2022)
article Comparing empirical ROC curves using a Java application: CERCUS
por: Moreira, Daniel
Publicado em: (2019)
por: Moreira, Daniel
Publicado em: (2019)
article Understanding the impact of introducing Lambda expressions in Java Programs
por: Lucas, Walter
Publicado em: (2020)
por: Lucas, Walter
Publicado em: (2020)
school Modularidade em Java : o impacto do projeto Jigsaw
por: Santos, Luís Fernando Rodrigues Loureiro dos
Publicado em: (2011)
por: Santos, Luís Fernando Rodrigues Loureiro dos
Publicado em: (2011)
book Projetos de POO em JAVA
por: Martins, F. Mário
Publicado em: (2014)
por: Martins, F. Mário
Publicado em: (2014)
school Cooperative testing of multithreaded Java applications
por: Simões, Miguel Ângelo Marques
Publicado em: (2014)
por: Simões, Miguel Ângelo Marques
Publicado em: (2014)
category Java2Sequence: a tool for the visualization of object-oriented programs in introductory programming
por: Barros, João Paulo
Publicado em: (2011)
por: Barros, João Paulo
Publicado em: (2011)
article Multidimensional sentiment analysis of tourism object in DKI Jakarta, Banten, East Java, Central Java and West Java using support vector machine algorithm
por: Arfilinia, Anggia
Publicado em: (2023)
por: Arfilinia, Anggia
Publicado em: (2023)
school XAdES4J: a java library for XAdES signature services
por: Gonçalves, Luís Filipe dos Santos
Publicado em: (2010)
por: Gonçalves, Luís Filipe dos Santos
Publicado em: (2010)
book Desenvolvimento de Sistemas de Informação baseados em PHP e MySQL, e Java e Oracle
por: Couto, Francisco M
Publicado em: (2011)
por: Couto, Francisco M
Publicado em: (2011)
article The use of virtual reality as e-training tool for dies’ changeover in stamping presses: a case study on automotive industry
por: Mendes Monteiro, Jorge
Publicado em: (2025)
por: Mendes Monteiro, Jorge
Publicado em: (2025)
article A first look at RISC-V virtualization from an embedded systems perspective
por: Sá, Bruno Vilaça
Publicado em: (2022)
por: Sá, Bruno Vilaça
Publicado em: (2022)
article Engenharia reversa de sistemas interactivos desenvolvidos em Java2/Swing
por: Saraiva, João Alexandre
Publicado em: (2006)
por: Saraiva, João Alexandre
Publicado em: (2006)
school JAVA DEVELOPMENT PLATFORM FOR REAL-TIME APPLICATIONS IN MULTI-CORE ARCHITECTURES
por: Anjos, José Serafim Gouveia
Publicado em: (2009)
por: Anjos, José Serafim Gouveia
Publicado em: (2009)
article Student perspectives on the use of a Java library for novices
por: Barros, João
Publicado em: (2017)
por: Barros, João
Publicado em: (2017)
school Abstração de uma plataforma robótica para teste e avaliação de aplicações Java
por: Isidro, Milton
Publicado em: (2014)
por: Isidro, Milton
Publicado em: (2014)
school EWVM - an Educational Web Virtual Machine
por: Teixeira, Sofia Almeida
Publicado em: (2022)
por: Teixeira, Sofia Almeida
Publicado em: (2022)
article Generic and reconfigurable virtual reality simulation system
por: Alves, André Filipe Castro
Publicado em: (2019)
por: Alves, André Filipe Castro
Publicado em: (2019)
article Energy efficiency of Python machine learning frameworks
por: Ajel, Salwa
Publicado em: (2023)
por: Ajel, Salwa
Publicado em: (2023)
school Inferência de PSM/PIM e padrões de conceção a partir de código Java
por: Couto, Rui
Publicado em: (2011)
por: Couto, Rui
Publicado em: (2011)
school Java development platform for real-time applications in multi-core architectures
por: Anjos, José Serafim Gouveia
Publicado em: (2009)
por: Anjos, José Serafim Gouveia
Publicado em: (2009)
article Impact of data structure layout on performance
por: Faria, Nuno Filipe Monteiro
Publicado em: (2013)
por: Faria, Nuno Filipe Monteiro
Publicado em: (2013)
school Refactoring Java monoliths into executable microservice-based applications
por: Freitas, Francisco José Oliveira
Publicado em: (2022)
por: Freitas, Francisco José Oliveira
Publicado em: (2022)
school Sistema reconfigurável de realidade virtual para simulação
por: Alves, André Filipe Castro
Publicado em: (2019)
por: Alves, André Filipe Castro
Publicado em: (2019)
school Integração da framework tapestry com o ide java intellij e eclipse
por: Carvalho, Mónica Sofia dos Santos
Publicado em: (2008)
por: Carvalho, Mónica Sofia dos Santos
Publicado em: (2008)
article Efficient lower bounding procedures with application in the allocation of virtual machines to data centers
por: Rietz, Jurgen Endre
Publicado em: (2011)
por: Rietz, Jurgen Endre
Publicado em: (2011)
Registos relacionados
-
groups SmartGC: online memory management prediction for PaaS Cloud Models
por: Simão, José
Publicado em: (2017) -
groups Locality-aware GC optimisations for big data workloads
por: Patrício, Duarte
Publicado em: (2017) -
article A checkpointing-enabled and resource-aware Java Virtual Machine for efficient and robust e-Science applications in grid environments
por: Simão, José
Publicado em: (2012) -
article Efficient high-level programming in plain java
por: Silva, Rui S.
Publicado em: (2023) -
article Estimação estática de métricas para distribuir aplicações Java
por: Matos, Filipe
Publicado em: (2006)