Simple Science

Ciência de ponta explicada de forma simples

# Informática# Computação distribuída, paralela e em cluster

Framework para Gerenciar a Interferência de Recursos em Aplicações

Uma nova estrutura tem como objetivo reduzir problemas de desempenho para serviços críticos de latência.

― 7 min ler


Otimizando o Uso deOtimizando o Uso deRecursos em Clustersserviços críticos de latência.Novo framework reduz interferência para
Índice

No ambiente de computação de hoje, muitos aplicativos rodam juntos nos mesmos servidores físicos pra aproveitar melhor os recursos disponíveis. Essa prática pode ser eficiente, mas também gera problemas de desempenho, especialmente pra aplicativos que precisam de respostas rápidas. Esses aplicativos são chamados de serviços críticos de latência (LCSs), e seu desempenho pode ser prejudicado por outros trabalhos que são menos urgentes, conhecidos como trabalhos de melhor esforço (BEJs). Quando os dois tipos de trabalhos estão no mesmo servidor, eles competem por recursos como CPU e memória, o que pode fazer o desempenho dos LCSs cair, mesmo que tentativas sejam feitas pra mantê-los separados.

Através de uma análise minuciosa de dados de diferentes clusters de produção, vemos que os BEJs costumam exibir padrões regulares no Uso de Recursos. Eles são uma fonte significativa de interferência pros LCSs, e os vários tipos de BEJs podem impactar o desempenho dos LCSs em diferentes graus. Pra lidar com esse problema, propomos uma estrutura projetada pra avaliar e reduzir a interferência de desempenho que os LCSs experimentam devido aos BEJs co-localizados.

Entendendo os Serviços Críticos de Latência e os Trabalhos de Melhor Esforço

Os LCSs são aplicativos que precisam de respostas rápidas a pedidos de usuários e incluem tarefas como compras online, mensagens e pesquisas na web. Esses serviços são projetados pra processar rapidamente os pedidos que chegam, rodando várias instâncias em diferentes servidores. Pra gerenciar as cargas de trabalho que mudam, o número de instâncias de LCS pode variar com a demanda.

Por outro lado, os BEJs são trabalhos em lote criados pra processar grandes quantidades de dados sem exigências rigorosas de tempo de resposta. Esses trabalhos estão focados principalmente em tarefas de processamento de dados e não precisam de resultados imediatos. Como eles podem usar muitos recursos, é crucial que seu Agendamento seja gerenciado corretamente quando rodando junto com os LCSs.

O Problema da Interferência

Co-locar LCSs e BEJs geralmente leva a problemas de desempenho devido à competição por recursos. Essa competição pode desacelerar o desempenho dos LCSs, que é vital pra manter a qualidade do serviço. O desafio tá em lidar com essa interferência de maneira eficaz.

Existem três complexidades principais ao tentar gerenciar a interferência em clusters de produção:

  1. Necessidades de Recursos Diversas: Aplicativos diferentes frequentemente têm requisitos variados de recursos, levando a resultados de desempenho diferentes.

  2. Interferência Recíproca: Pode ser desafiador identificar qual aplicativo está causando a queda de desempenho quando muitos aplicativos rodam no mesmo servidor.

  3. Cargas de Trabalho Dinâmicas: Os tipos e quantidades de recursos usados pelos aplicativos podem mudar rapidamente, tornando difícil desenvolver um plano estável de gerenciamento de interferência.

Desenvolver estratégias eficazes de agendamento de BEJs pra minimizar seus efeitos negativos nos LCSs é essencial nesses ambientes.

Insights da Análise de Dados

Na nossa análise detalhada de conjuntos de dados reais de dois grandes clusters de produção, fizemos várias observações importantes:

  1. Os BEJs costumam ser os responsáveis por dominar o uso de recursos nos servidores, levando a problemas de desempenho pros LCSs.

  2. Muitos BEJs repetem seus padrões de execução regularmente ao longo do tempo.

  3. Mesmo quando os BEJs ocupam níveis similares de recursos, os diferentes tipos ainda podem causar Interferências variadas no desempenho dos LCSs.

Dada a natureza dinâmica desses clusters, mudamos nosso foco pra entender o impacto coletivo dos BEJs em vez de simplesmente analisar cada um individualmente.

A Estrutura Proposta: PISM

Pra lidar com a interferência causada pelos BEJs, desenvolvemos o PISM, que significa Estrutura de Pontuação e Mitigação de Interferência de Desempenho. Veja como o PISM funciona:

  1. Caracterização dos BEJs: O PISM primeiro identifica e categoriza os BEJs pelo uso de recursos. Agrupando-os com base no comportamento e nas demandas de recursos, o PISM simplifica a complexidade da análise de interferência.

  2. Modelagem de Relações: O PISM modela a interação entre diferentes composições de BEJs em um servidor e os tempos de resposta dos LCSs. Essa modelagem ajuda a prever o grau de interferência que pode ocorrer.

  3. Pontuação de Interferência: O PISM cria um sistema de pontuação pra quantificar a interferência com base nos tempos de resposta dos LCSs. Essa pontuação ajuda a tomar decisões informadas ao agendar BEJs, garantindo que os LCSs tenham condições ideais pra performar bem.

Avaliação do PISM

A eficácia da estrutura PISM foi testada em um cluster em pequena escala, e através de simulações extensas, encontramos melhorias significativas. O PISM conseguiu reduzir a interferência em até 41,5%, o que levou a um aumento notável de 76,4% na taxa de processamento dos LCSs que enfrentam mais pressão durante o processamento.

Estratégias de Agendamento de Trabalhos

Quando os LCSs e BEJs compartilham um servidor, gerenciar suas cargas de trabalho é crucial. O agendamento dos BEJs deve ser tratado com cuidado pra minimizar os impactos de desempenho nos LCSs. Várias estratégias de agendamento podem ser usadas:

  1. Agendamento Consciente de Previsão: Esse método envolve estimar o desempenho esperado dos aplicativos quando estão co-localizados. Ajuda a identificar quais servidores causariam menos interferência.

  2. Reserva de Recursos: Reservando quantidades específicas de CPU e memória pros LCSs, essa estratégia impede que os BEJs consumam muitos recursos que poderiam levar a quedas de desempenho.

  3. Balanceamento de Carga: Distribuir as cargas de trabalho de forma equilibrada entre os servidores pode ajudar a gerenciar as demandas de recursos de forma eficaz, reduzindo a probabilidade de gargalos.

Cada uma dessas estratégias pode ser utilizada separadamente ou em conjunto, dependendo das necessidades específicas dos aplicativos envolvidos.

Resultados de Dados do Mundo Real

Usando dados de clusters de produção, descobrimos que:

  • Domínio de Recursos pelos BEJs: A maior parte da utilização de recursos nos servidores é atribuída aos BEJs. Os LCSs, enquanto requerem níveis rígidos de recursos, costumam mostrar baixas taxas de utilização.

  • Repetibilidade da Execução dos BEJs: Muitos BEJs seguem padrões de execução previsíveis, facilitando sua categorização e agendamento.

  • Sensibilidade ao Desempenho: Diferentes LCSs exibem níveis variados de sensibilidade à interferência dos BEJs, indicando que certos aplicativos podem precisar de mais proteção contra a competição por recursos do que outros.

Implicações pra Pesquisa Futura

As descobertas destacam um caminho pra pesquisas futuras voltadas a melhorar a utilização de recursos sem comprometer o desempenho dos LCSs críticos. Investigar o impacto específico de diferentes composições de BEJs e suas demandas de recursos pode levar a algoritmos de agendamento mais refinados.

Conclusão

Nosso trabalho apresenta uma estrutura robusta pra agendar recursos em clusters de produção onde LCSs e BEJs coexistem. Ao entender a dinâmica do desempenho dos aplicativos e da interferência, podemos melhorar os tempos de resposta dos LCSs enquanto maximizamos a utilização dos recursos disponíveis. Essa abordagem não só melhora o desempenho dos LCSs, mas também pode contribuir positivamente pro desempenho dos BEJs que rodam ao lado deles.

À medida que os ambientes de produção continuam a evoluir, a necessidade de um agendamento eficaz de recursos se torna ainda mais vital, garantindo que os aplicativos atendam às demandas dos usuários de forma confiável e eficiente.

A estrutura PISM serve como um passo promissor pra alcançar esse objetivo, com potencial de desenvolvimento e aplicação em vários ambientes de clusters.

Fonte original

Título: Mitigating Interference of Microservices with a Scoring Mechanism in Large-scale Clusters

Resumo: Co-locating latency-critical services (LCSs) and best-effort jobs (BEJs) constitute the principal approach for enhancing resource utilization in production. Nevertheless, the co-location practice hurts the performance of LCSs due to resource competition, even when employing isolation technology. Through an extensive analysis of voluminous real trace data derived from two production clusters, we observe that BEJs typically exhibit periodic execution patterns and serve as the primary sources of interference to LCSs. Furthermore, despite occupying the same level of resource consumption, the diverse compositions of BEJs can result in varying degrees of interference on LCSs. Subsequently, we propose PISM, a proactive Performance Interference Scoring and Mitigating framework for LCSs through the optimization of BEJ scheduling. Firstly, PISM adopts a data-driven approach to establish a characterization and classification methodology for BEJs. Secondly, PISM models the relationship between the composition of BEJs on servers and the response time (RT) of LCSs. Thirdly, PISM establishes an interference scoring mechanism in terms of RT, which serves as the foundation for BEJ scheduling. We assess the effectiveness of PISM on a small-scale cluster and through extensive data-driven simulations. The experiment results demonstrate that PISM can reduce cluster interference by up to 41.5%, and improve the throughput of long-tail LCSs by 76.4%.

Autores: Dingyu Yang, Kangpeng Zheng, Shiyou Qian, Jian Cao, Guangtao Xue

Última atualização: 2024-07-16 00:00:00

Idioma: English

Fonte URL: https://arxiv.org/abs/2407.12248

Fonte PDF: https://arxiv.org/pdf/2407.12248

Licença: https://creativecommons.org/licenses/by/4.0/

Alterações: Este resumo foi elaborado com a assistência da AI e pode conter imprecisões. Para obter informações exactas, consulte os documentos originais ligados aqui.

Obrigado ao arxiv pela utilização da sua interoperabilidade de acesso aberto.

Mais de autores

Artigos semelhantes