
Defesa de Dissertação de Mestrado de Miguel Freitas de Lima Junior, 27/03/26, 14h, por videoconferência
Link para defesa: http://meet.google.com/bwf-uxgy-rbm
Novas Estratégias para Elasticidade Vertical de Aplicações com Uso de Memória Variável no Kubernetes
Resumo:
A adoção do Kubernetes como plataforma de orquestração para cargas de trabalho de Computação de Alto Desempenho (HPC) introduz um conflito arquitetural entre a natureza efêmera dos contêineres e a necessidade de persistência de estado das aplicações científicas. O modelo padrão do Kubernetes trata a falha de uma instância como um evento trivial, substituindo-a imediatamente, o que resulta na perda de estado acumulado em memória por aplicações de longa duração. As soluções existentes, como o super-provisionamento de recursos e o Vertical Pod Autoscaler (VPA) tradicional, mostram-se insuficientes: a primeira gera desperdício computacional e financeiro, enquanto a segunda exige a reinicialização do contêiner para aplicar novas configurações, interrompendo a execução científica. Esta dissertação propõe uma abordagem em duas fases para reconciliar a estabilidade exigida pelo HPC com a elasticidade da nuvem. Na primeira fase, propõe-se o DRS (Dynamic Resource Sizing), um algoritmo de redimensionamento dinâmico que utiliza a funcionalidade de In-Place Pod Vertical Scaling do Kubernetes v1.33 para ajustar os limites de memória dos contêineres em tempo de execução, sem reiniciá-los. O DRS monitora continuamente o consumo de memória, calcula limiares de alerta dinâmicos e aplica um mecanismo de quarentena que restringe pods co-alocados durante picos de demanda, prevenindo a saturação do nó. Na segunda fase, implementa-se um mecanismo de resiliência baseado em Checkpoint/Restore em espaço de usuário (CRIU) integrado ao runtime CRI-O no Kubernetes v1.30, permitindo congelar e persistir o estado completo da aplicação em disco. Ao final, as duas abordagens são comparadas diante das mesmas cargas de trabalho, discutindo as condições em que cada uma se mostra mais adequada e os compromissos envolvidos na escolha entre elasticidade vertical e preservação de estado. A validação experimental utiliza o NAS Parallel Benchmarks (NPB) e aplicações sintéticas que reproduzem padrões de consumo de memória observados em domínios reais, incluindo perfis dente de serra (dinâmica dos fluidos computacional), picos (dinâmica molecular), degraus (ETL/analytics) e épocas (treinamento de redes neurais).
Abstract:
The adoption of Kubernetes as an orchestration platform for High Performance Computing (HPC) workloads introduces an architectural conflict between the ephemeral nature of containers and the state persistence requirements of scientific applications. The standard Kubernetes model treats instance failure as a trivial event, immediately replacing it, which results in the loss of accumulated in-memory state from long-running applications. Existing solutions, such as resource over-provisioning and the traditional Vertical Pod Autoscaler (VPA), prove insufficient: the former wastes computational and financial resources, while the latter requires container restart to apply new resource configurations, disrupting the very scientific execution it aims to protect. This dissertation proposes and evaluates, independently, two approaches to reconcile the stability demanded by HPC with cloud elasticity. In the first, the Dynamic Resource Sizing (DRS) algorithm is proposed, leveraging the In-Place Pod Vertical Scaling feature of Kubernetes v1.33 to adjust container memory limits at runtime without restarting them. DRS continuously monitors memory consumption, computes dynamic alert thresholds, and enforces a quarantine mechanism that throttles co-located pods during demand spikes, preventing node saturation. In the second, a resilience mechanism based on Checkpoint/Restore in Userspace (CRIU) integrated with the CRI-O runtime on Kubernetes v1.30 is implemented, enabling the freezing and persistence of the complete application state to disk, allowing applications to resume execution without loss of computational progress. Both approaches are then compared against the same workloads, discussing the conditions under which each is more suitable and the trade-offs involved in choosing between vertical elasticity and state preservation. Experimental validation employs the NAS Parallel Benchmarks (NPB) and synthetic applications that reproduce memory consumption patterns observed in real-world domains,including sawtooth profiles (computational fluid dynamics), spikes (molecular dynamics), staircase patterns (ETL/analytics), and epoch-based cycles (neural network training).
Banca examinadora:
Profa. Lúcia Maria de Assumpção Drummond, UFF
Prof. Daniel Cardoso Moraes de Oliveira, UFF
Prof. Eugene Francis Vinod Rebello, UFF
Prof. Luan Teylo Gouveia Lima, Inria Bourdeaux
Prof. Luiz Fernando Bittencourt, UNICAMP