+ All Categories
Home > Documents > Balanceamento de Carga em Grids de Agentes para Ger��ncia de Redes de Computadores

Balanceamento de Carga em Grids de Agentes para Ger��ncia de Redes de Computadores

Date post: 04-Dec-2023
Category:
Upload: inrialpes
View: 0 times
Download: 0 times
Share this document with a friend
12
Balanceamento de Carga em Grids de Agentes para Gerência de Redes de Computadores TomSpindola 1 , Carlos Becker Westphall 1 , Marcos Dias Assunção 2 , Fernando Luiz Koch 3 1 Laboratório de Redes e Gerência – Universidade Federal de Santa Catarina (UFSC) Centro Tecnológico 88.049-970 – Florianópolis – SC – Brasil 2 Universidade do Oeste de Santa Catarina (UNOESC) – Centro Tecnológico 89.560-000 Videira – SC – Brasil 3 Intelligent Systems Group – Institute of Information and Computing Sciences Utrecht University – The Netherlands {assuncao,tom,westphal}@lrg.ufsc.br, [email protected] Abstract. Computational grids are a universal, easy, secure and trustable way to access dynamic groups of heterogeneous and geographically distributed computational resources. Agent grids are, basically, computational grids built on top of software agent systems. The success of a grid architecture is directly associated with the way it manages available computational resources. More specifically, the way how it is done the balance of work loads applied to the grid. This work presents a load balance model for network management based on agent grid. The proposed model is validated in an experimental environment and is flexible enough to be scalable and adaptable to other grid solutions. Resumo Computação em grid, ou grids computacionais, são uma forma de acesso universal, facilitado, confiável e seguro a agrupamentos dinâmicos de recursos computacionais heterogêneos dispersos geograficamente. Grids de agentes são, basicamente, grids que utilizam como infraestrutura sistemas de agentes de software. O sucesso de uma arquitetura de grid está diretamente ligado à forma com que ela gerencia os recursos computacionais disponíveis. Mais especificamente à forma como é realizado o balanceamento das cargas de trabalho aplicadas ao grid. Neste trabalho apresentamos um modelo de balanceamento de carga para a gerência de redes baseada em grids de agentes. O modelo proposto é validado em um ambiente experimental possuindo flexibilidade para ser adaptado a outras soluções de grid. 1. Introdução Os grids computacionais nasceram do aumento progressivo das necessidades por capacidade de processamento. Essas necessidades chegaram a patamares que tornam a reunião num mesmo local físico dos requisitos de processamento para aplicações de grande escala, muito complexa, se não inviável. Os grids, então, se utilizam das cada vez mais presentes, eficientes e confiáveis estruturas de redes de comunicação para agregar colaborativamente recursos distribuídos de varias instituições em ambientes altamente heterogêneos e dinâmicos, capazes de processar grandes quantidades de dados. Claramente, o gerenciamento de um ambiente de estrutura dinamicamente variável no decorrer do tempo, formado por recursos heterogêneos, de localidades distribuídas geograficamente, interligados por redes de diferentes e altas latências, envolve uma complexa
Transcript

Balanceamento de Carga em Grids de Agentes para Gerência de Redes de Computadores

TomSpindola1, Carlos Becker Westphall1, Marcos Dias Assunção2, Fernando Luiz Koch3

1Laboratório de Redes e Gerência – Universidade Federal de Santa Catarina (UFSC) Centro Tecnológico 88.049-970 – Florianópolis – SC – Brasil

2Universidade do Oeste de Santa Catarina (UNOESC) – Centro Tecnológico 89.560-000 Videira – SC – Brasil

3Intelligent Systems Group – Institute of Information and Computing Sciences Utrecht University – The Netherlands

{assuncao,tom,westphal}@lrg.ufsc.br, [email protected]

Abstract. Computational grids are a universal, easy, secure and trustable way to access dynamic groups of heterogeneous and geographically distributed computational resources. Agent grids are, basically, computational grids built on top of software agent systems. The success of a grid architecture is directly associated with the way it manages available computational resources. More specifically, the way how it is done the balance of work loads applied to the grid. This work presents a load balance model for network management based on agent grid. The proposed model is validated in an experimental environment and is flexible enough to be scalable and adaptable to other grid solutions. Resumo Computação em grid, ou grids computacionais, são uma forma de acesso universal, facilitado, confiável e seguro a agrupamentos dinâmicos de recursos computacionais heterogêneos dispersos geograficamente. Grids de agentes são, basicamente, grids que utilizam como infraestrutura sistemas de agentes de software. O sucesso de uma arquitetura de grid está diretamente ligado à forma com que ela gerencia os recursos computacionais disponíveis. Mais especificamente à forma como é realizado o balanceamento das cargas de trabalho aplicadas ao grid. Neste trabalho apresentamos um modelo de balanceamento de carga para a gerência de redes baseada em grids de agentes. O modelo proposto é validado em um ambiente experimental possuindo flexibilidade para ser adaptado a outras soluções de grid.

1. Introdução Os grids computacionais nasceram do aumento progressivo das necessidades por capacidade de processamento. Essas necessidades chegaram a patamares que tornam a reunião num mesmo local físico dos requisitos de processamento para aplicações de grande escala, muito complexa, se não inviável. Os grids, então, se utilizam das cada vez mais presentes, eficientes e confiáveis estruturas de redes de comunicação para agregar colaborativamente recursos distribuídos de varias instituições em ambientes altamente heterogêneos e dinâmicos, capazes de processar grandes quantidades de dados.

Claramente, o gerenciamento de um ambiente de estrutura dinamicamente variável no decorrer do tempo, formado por recursos heterogêneos, de localidades distribuídas geograficamente, interligados por redes de diferentes e altas latências, envolve uma complexa

plataforma de software. As características dos ambientes de grid e necessárias à plataforma de infra-estrutura do grid são bastante similares às características de agentes móveis, como descritas em [LANGE 1999], portanto a associação de grids computacionais e agentes móveis ocorreu naturalmente nos grids computacionais baseados em agentes ou, simplesmente, grid de agentes. [ASSUNÇÃO 2004] propôs, utilizando grids de agentes, uma arquitetura para o gerenciamento de redes, que através da distribuição das tarefas de manipulação e análise dos dados proporciona maior extensibilidade e adaptabilidade do que os modelos centralizados tradicionalmente utilizados. O ponto chave para o sucesso desta arquitetura é a otimização da utilização de recursos e de distribuição de carga. Sendo assim, o estudo dos métodos de balanceamento de carga a serem aplicados a esta nova arquitetura, e aos grids de agentes em geral, é o objetivo deste trabalho.

2. Grids Computacionais A inspiração para os Grids computacionais surgiu da rede elétrica (electrical power grid) ,

que une diferentes fontes de energia e, através de sua estrutura, distribui esta energia em uma vasta área, de maneira confiável e, usando um termo próprio da informática, amigável.

Assim, usando a definição de [FOSTER 1999], grid computacional é uma infraestrutura de hardware e software que fornece acesso seguro, confiável, universal e barato a dispositivos computacionais de alta capacidade. Ou ainda, usando a definição de [MANOLA 1999], um mecanismo ou conceito para integrar ou compartilhar componentes físicos e lógicos, possibilitando que sejam utilizados como um único.

Se a inspiração para os grids computacionais vem do grid elétrico, sua motivação vem do mundo científico, das aplicações de grande escala e alta-performance. Estas aplicações atingiram um nível em que a reunião dos recursos necessários para o seu processamento em único local se tornava inviável, note-se que os recursos mencionados incluem, entre outros, super computadores e ambientes distribuídos tradicionais. A solução foi a união de recursos de diferentes instituições que possuíssem alguma afinidade entre si, que pudessem, em momentos de ociosidade local, ajudar a suprir as necessidades das outras organizações. Fator fundamental nessa união de pontos distribuídos geograficamente é a alta capacidade e confiabilidade atingidas pelas tecnologias de redes de comunicação em anos recentes.

A união de organizações diversas com o objetivo inicial de aumentar a capacidade total de recursos disponíveis facilitou a expansão do conceito de grid quando diferentes dispositivos (software, periféricos, sensores) de cada organização começaram a ser incluídos no grid. Assim, como sugere [MANOLA 1999], o termo grid começa lentamente a ser associado com o conceito de criação de um ambiente computacional gigante formado por coleções de arquivos, bases de dados, computadores e dispositivos externos.

Algumas características que diferenciam os grids das computações paralela e distribuída são:

• Heterogeneidade - grande diversidade de hardware, software, conexão de rede e políticas administrativas de todas as organizações devem ser suportadas no grid;

• Distribuído geograficamente; • Dinamicidade - recursos se conectam e desconectam do grid ao longo do tempo e com

diferentes capacidades; • Controle distribuído - não existe um controle central, cada organização é responsável por

seu domínio. Apesar destas tentativas de conceituação de grid computacional ainda não se chegou a uma

definição fechada. Como dizem alguns autores, as características listadas para os grids servem

para definir uma plataforma como grid, mas a ausência de uma delas não desqualifica a plataforma.

2.1. Estado da arte em Grids A utilização de grids computacionais pressupõe uma piora na conectividade dos recursos,

devido a sua formação inclui recursos geograficamente dispersos, compensada pelo ganho na diversidade de recursos e na escala, pois teremos agora um número de recursos entre cem e mil vezes os sistemas distribuídos clássicos. As aplicações que podem tirar vantagem dessas características são aquelas que exigem um poder computacional muito grande, mas que podem ser segmentadas em sub-tarefas independentes, sendo os resultados dos diversos processamentos agrupados quando de sua finalização.

A seguir comentaremos algumas aplicações que utilizam esta arquitetura. O projeto SETI@home, que busca sinais de inteligência extraterrestre através da análise de

sinais de rádio. Os dados captados pelo radio telescópio de Arecibo são divididos em milhões de pedaços, um aplicativo instalado nos computadores dos usuários registrados acessa esses dados, via internet e os processados nos momentos de ociosidade do computador. O usuário não precisa estar conectado a rede permanentemente, pois após o download dos dados todo processamento é local. Com o processamento terminado, os resultados são devolvidos à plataforma central que os agrupa com os resultados globais.

O Distributed Net tem o objetivo de formar um imenso computador globalmente distribuído que resolva problemas de larga escala oferecendo um poder de computação acessível universalmente.

O TeraGrid é um esforço para criar a maior e mais rápida infraestrutura distribuída para pesquisa cientifica, engloba atualmente cinco centros de computação avançada conectados por uma rede que operará a 40 Gb/s e armazenará 1 petabyte de informações. O TeraGrid é formado por clusters Linux e desenvolvido sobre o middleware Globus.

3. Arquitetura de gerência de redes baseada em grid de agentes [ASSUNÇÃO 2003] descreve uma arquitetura de gerência de redes baseada em grid de

agentes, implementada sobre a plataforma AgentLight. Essa arquitetura apresenta a necessidade de distribuição da carga de trabalho em certos pontos. Como teremos esta arquitetura em mente ao propor nossas soluções de balanceamento vamos então apresentá-la de maneira sucinta com a Figura 1 como base.

Os agentes do grid coletor (GC), coletam as informações dos equipamentos gerenciados (via SNMP, por exemplo), as pré-formatam e enviam adiante (via HTTP ou SMTP) para o grid classificador (GCL) que tem como objetivo classificá-las e armazená-las de maneira estruturada e que facilite a recuperação. O grid de processamento (GP) é o mais importante, tanto para a arquitetura de gerência quanto para aplicação das técnicas de balanceamento de carga que veremos em nosso trabalho. Sua importância para a arquitetura vem da responsabilidade de efetivamente transformar os dados coletados em relatórios de gerência e alertas enviados para o grid de interface (GI), que é o canal de comunicação com o gerente da rede. O GP é formado por agentes distribuídos em vários recursos, formando um ambiente dinâmico em que novos recursos podem ser adicionados ou removidos do grid de acordo com a necessidade e disponibilidade. Quando a presença de dados que necessitam de processamento é sinalizada ao GP (pelo GCL) este realiza a distribuição entre os recursos. Para essa distribuição são levadas em consideração as informações prestadas pelo recursos, no momento de seu registro no grid, sobre seus conhecimentos, habilidades e capacidade disponível do

recurso.

InformaçõesColetadas

Coleta de dadosPré-parsingFormatação

ParsingClassificaçãoIndexaçãoArmazenamento

Análise emmúltiplos níveis

InterfaceRelatóriosFeedback

InformaçõesColetadas

InformaçõesColetadas

FeedbackKDB

Agentes coletores

Site

ISi

te II

Site

III

FIPA ACL

FIPA ACL

Mensagem avisandopresença de dados

Mensagem avisando sobre relatórios

GC GCL GP GI

InformaçõesClassificadas

Informaçõesde Gerência

Alertas Usuárioou outrosistema

KdB

INTE

RFA

CE

Figura 1 – Arquitetura de gerência em grid com agentes. Fonte : [ASSUNÇÃO 2003]

4. Balanceamento de carga em sistemas paralelos e distribuídos O balanceamento de carga tem entre suas metas: evitar a utilização excessiva de um recurso qualquer; eqüalizar a utilização dos recursos disponíveis; maximizar a utilização da capacidade do sistema e minimizar o tempo de execução das tarefas.

Os métodos de balanceamento de carga podem ser divididos em várias categorias de acordo com certos critérios. Apresentaremos alguns a seguir.

Iniciados-pelo-emissor e iniciados-pelo-receptor – Os iniciados-pelo-emissor tem sua utilidade facilmente notada na situação de um recurso perceber que sua capacidade está se esgotando e que uma queda/travamento está por ocorrer, nesse caso ele inicia uma busca por outros recursos para onde possa enviar suas tarefas. Os iniciados-pelo-receptor, se mostram úteis no caso de recursos com baixa taxa de utilização (um nó recém adicionado ao sistema, por exemplo) que pesquisa nós com altas cargas, iniciando a migração.

Processo de decisões Centralizado e Distribuído – No processo Centralizado as informações de capacidades disponíveis dos recursos são dirigidas a um escalonador central, que as toma como base para as decisões de alocação das tarefas. Essa política reduz a troca de informações mas pode tornar o escalonador central um gargalo. No processo distribuído todos os recursos partilham estas informações. Neste segundo caso não existe o gargalo, mas a o tráfego causado pela atualização das informações é muito grande.

Estático e Adaptativo – No método estático o tratamento dos parâmetros do sistema é o mesmo durante todo o ciclo de vida. No Adaptativo, o valor dos parâmetros do sistema implica em alterações no tratamento das informações e nos algoritmos utilizados para alocação.

A divisão destes métodos não implica que a utilização de uns excluem os outros, principalmente quando da utilização de um esquema adaptativo de balanceamento onde todas as divisões anteriores podem ser usadas conjuntamente ou em diferentes momentos do ciclo de vida.

5. Proposta de balanceamento de carga O primeiro modelo estudado consiste de um escalonador central (EC), que realiza as alocações baseado nas informações sobre o estado dos recursos que o próprio EC requisita aos recursos com certa periodicidade. Essa requisição poderia ser feita via SNMP e, para que as decisões de escalonamento se baseiem em informações que reflitam o atual estado dos recursos, devem ocorrer em situações tais como :

• quando o recurso se registra no grid; • quando uma tarefa é alocada ao recurso, alterando sua disponibilidade; • em um intervalo de tempo X, garantindo que as informações não fiquem

desatualizadas; • quando algum evento causar grande alteração à capacidade do recurso.

Este modelo possui algumas características insatisfatórias. A primeira é a centralização das tarefas no EC que poderá causar diminuição da eficiência com que este realiza os escalonamentos, principalmente se considerarmos um grande número de recursos. A segunda é a impossibilidade de o EC identificar as mudanças de capacidade de processamento dos recursos no momento em que ocorrem. Essas características indicam necessidade de retirar a execução de algumas tarefas do EC e possibilidade de melhora dos serviços através da execução de tarefas nos recursos. Deste modo avançamos para uma outra estrutura onde a locação é responsabilidade do EC, mas o fornecimento e atualização das informações são responsabilidade de um agente ativo em cada um dos recursos do grid. Essa modificação aumenta a eficiência da atualização das informações e afasta o custo de processamento destas operações do EC. Além disso, quando incluímos agentes inteligentes nos recursos deixamos aberto o caminho para que mais funcionalidades sejam posteriormente adicionadas ao modelo. Durante seu ciclo de vida, um sistema funciona a maior parte do tempo num modo normal de operação. Em nosso caso este modo normal ocorreria com as tarefas chegando ao grid para processamento e sendo distribuídas, pela raiz, entre os recursos disponíveis para processá-las. Mas as exceções a este modo de operação ocorrem e o sistema deve estar preparado para tratá-las. Utilizaremos dois tipos diferentes de políticas de alocação: as iniciadas-pelo-receptor e iniciadas-pelo-emissor, para tratar de situações que não serão incomuns em nosso ambiente, como: recursos recém chegados ao ambiente e com grande capacidade disponível para processamento; e recursos com sua utilização se aproximando de 100%.

No balanceamento iniciado-pelo-receptor um recurso com baixa carga de processamento, ao invés de esperar passivamente pela alocação de recursos, age diretamente selecionando as tarefas que executará.

Em nosso modelo isso pode ser feito de diferentes maneiras: • Ao se registrar no grid o recurso informa sua capacidade, a raiz do grid com base nas

informações dos recursos estabelece um limite até o qual aquele recurso poderá receber as tarefas, a partir deste momento as mensagens de aviso de processamento serão dirigidas diretamente ao agente balanceador ativo naquele recurso, liberando a raiz da tarefa, quando o limite for atingido o agente devolve o controle à raiz, entrando novamente no modo normal de operação do sistema;

• O agente balanceador pode acessar diretamente a fila de entrada, onde estão armazenadas as tarefas aguardando processamento, selecionando-as e iniciando o processamento; Estas duas soluções permitem ao receptor selecionar tarefas cujo processamento ainda não

iniciou e alocá-las para si, mas existe uma outra situação onde o balanceamento iniciado pelo

receptor tem uma utilidade maior: a migração das tarefas em execução. Neste caso, um recurso com baixa utilização procuraria recursos sobrecarregados e negociaria com estes a migração da tarefa.

No caso do balanceamento iniciado-pelo-emissor um nó com alta carga de tarefas, inicia o processo de transferência.

As maneiras como isso pode ocorrer são: • Na situação de as tarefas ainda não terem sido iniciadas e estarem aguardando em uma

fila do recurso, este procura (no serviço de diretório) as capacidades disponíveis dos outros recursos e reencaminha as tarefas;

• A situação mais comum será, provavelmente, a de um nó que por problemas internos, se torne sobrecarregado, atrasando desta forma o processamento das tarefas em execução. Neste caso, também, ao invés de uma nova alocação da tarefa o que deverá ocorrer é sua migração.

Conforme anotado anteriormente, o sistema apresenta comportamentos diferentes ao longo do tempo e para se conseguir os melhores resultados em cada um desses estados devemos ter um esquema de balanceamento que se adapte as características instantâneas do sistema.

A modificação dos métodos e políticas do sistema de acordo com sua condição, com os valores de seus parâmetros e do relacionamento entre estes é chamada de balanceamento adaptativo.

O cenário final que apresentaremos a seguir mostra um modelo de balanceamento onde os métodos que descrevemos acima são agrupados de modo a se adaptarem dinamicamente à variação dos parâmetros durante o ciclo de vida do sistema

A situação inicial seria o modo padrão de operação do sistema onde os agentes/tarefas chegam ao EC, que realiza o balanceamento dinâmico baseado nas informações do serviço de diretório que são atualizadas pelos agentes balanceadores.

A situação de balanceamento iniciado-pelo-receptor ocorreria em duas ocasiões distintas: • Incapacidade da raiz do grid de distribuir eficientemente as tarefas da fila; • a entrada de um nó pouco carregado ao grid ;

A situação de balanceamento iniciado-pelo-emissor ocorreria no caso de: • um nó do grid atingindo uma carga limite que caracterize a sobrecarga;

A situação 3 seria resultado da necessidade de as políticas da situação 2 executarem migração de tarefas já em processamento através da mobilidade de agentes.

Na quarta situação, detectado um desequilíbrio entre os conhecimentos distribuídos aos recursos do grid e o número de tarefas necessitando destes conhecimentos, incidiríamos na migração do conhecimento.

6. Resultados experimentais Uma série de experimentos foram realizados para demonstrar o comportamento da

implementação em cada um dos modos de balanceamento e na alternância entre eles. O laboratório utilizado para execução dos experimentos era formado por 6 computadores

de igual configuração, compostos por processadores Intel Celeron de 850 MHz, com 256 MBs de memória RAM, executando o sistema operacional Windows Millenium. As máquinas estavam interligadas em um segmento isolado de rede, protocolo TCP/IP, com velocidade de 100 Mbps.

6.1. Experimentos realizados Para os testes realizados foi definido um tipo básico de tarefa, que necessita de um

conhecimento A para seu processamento. Seu funcionamento consistia na busca do arquivo de

dados associado à tarefa, na leitura deste arquivo, no tamanho de 1 Kbyte. A execução de cada tarefa durou em média 63,27 segundos, consumindo aproximadamente em torno de 2 % dos recursos disponíveis.

A quantidade de memória disponível foi utilizada para indicar a disponibilidade dos recursos. A informação sobre a disponibilidade dos recursos era atualizada a cada 20 segundos ou após eventos que causassem grandes alterações na disponibilidade, como inícios e términos de execução de tarefas.

6.1.1. Modo Padrão de Balanceamento O objetivo deste primeiro experimento é verificar o correto comportamento do sistema

no modo padrão de operação. Para este experimento foram adicionados ao grid 4 recursos, nomeados de 1 a 4, com taxas de utilização iniciais de 40,15, 36,61, 41,73, 50,39.Foram encaminhadas ao grid 50 tarefas que chegaram com uma diferença média de 2,4 segundos.

A Figura 2 mostra a taxa de alocação dos recursos no momento da alocação de cada tarefa ao longo da execução do sistema.

Taxa de Utilização X alocação de tarefas

010203040506070

111

124

136

149

162

175

188

200

213

226

238

251

264

277

289

302

315

328

341

353

366

379

392

404

417

Tempo de alocação (segundos)

Taxa

de

Util

izaç

ão

(Per

ecen

tual

) Recurso 1Recurso 2Recurso 3Recurso 4

Figura 2 – Taxa de utilização dos recursos.

Analisando o gráfico notamos que a taxa de utilização (TU) para os recursos de 1 a 3 cresce, com as alocações estabilizando próximo ao recurso 4, que inicialmente possuía uma TU. O desvio padrão da taxa de utilização no início do experimento era 34,24 e a média dos desvios padrão das taxas de utilização durante toda execução foi 28,22, indicando a diminuição da diferença entre as TUs, objetivo do balanceamento de carga.Verificando o histórico das alocações observou-se que as tarefas eram alocadas em seqüência ao mesmo recurso, mesmo quando a diferença entre a taxa de utilização dos recursos indicava que com a alocação de apenas uma tarefa aquele deixaria de ser o recurso mais disponível. Examinando dos tempos de alocação e execução detectou-se a causa deste comportamento. O tempo médio entre alocações é de 6,4 segundos e o tempo médio que uma tarefa alocada necessita para iniciar sua execução é de 12,5 segundos. Nesse meio tempo é realizada a busca do arquivo de dados e outras operações que não tem impacto na taxa de utilização do recurso e novas alocações são feitas.

6.1.2. Escalonamento com migração de conhecimento O grid foi concebido de forma a processar tarefas de diferentes tipos, que necessitam de

conhecimentos, ou habilidades, diferentes em sua execução. Essas habilidades são distribuídas

entre os recursos que o compõem através de uma configuração inicial de acordo com o comportamento conhecido e esperado da aplicação a que ele se destina. Fatores dinâmicos podem levar o grid a atingir um estado em que a necessidade de processamento não é compatível com as habilidades disponíveis nos recursos que compõem o grid naquele momento.

Este experimento tem por objetivo avaliar o funcionamento do grid em uma situação em que este desbalanceamento ocorre e acompanhar seu desempenho de dois modos distintos: com e sem a ocorrência da migração.

Neste teste os recursos de 1 a 3 iniciaram com taxas de utilização próximas a 58 % e o recurso número 4 com taxa de utilização próxima a 35 %. Na distribuição de habilidades, os recursos de 1 a 3 possuíam habilidades para processar todos os tipos de tarefa, já o recurso 4 possuía habilidade apenas para o tipo B. Foram endereçadas ao grid 30 tarefas que necessitavam para seu processamento da habilidade tipo A . A migração de conhecimento foi habilitada apenas para asegunda parte da experiência, para ocorrer quando o sistema detectasse um recurso com taxa de utilização 40% inferior a media dos recursos e sem capacidade para processamento do tipo de tarefas aguardando execução.

A Figura 3 mostra o acompanhamento das taxas de utilização dos recursos do sistema sem e com a ocorrência da migração.

No primeiro caso o recurso de número 4, que vem a ser o recurso com maior disponibilidade do grid não é utilizado por não possuir a habilidade para processar as tarefas do tipo A. No segundo caso, a partir do momento que a media da taxa de utilização dos recursos atinge o patamar de 40 % além da taxa de utilização do recurso 4, a migração da habilidade ocorre e as tarefas passam a ser alocadas a este recurso que é o mais disponível do grid.

6.1.3. Escalonamento iniciado pelo receptor caso 1 Este primeiro caso de escalonamento iniciado pelo receptor, ocorre quando um recurso é

adicionado ao grid e sua taxa de utilização é inferior em 40 % a média da taxa de utilização dos recursos pré-existentes. Nesse caso, como as próximas alocações seriam destinadas a este recurso, o escalonador se aproveita da situação para deixar o próprio recurso realizar as alocações, aumentando a eficiência. O escalonamento ocorre desta maneira até que a taxa de utilização do novo recurso atinja um patamar de estabilidade com os outros recursos.

Este experimento se divide em 2 partes, na primeira foi realizado com o modo de balanceamento pelo receptor desabilitado, na segunda o modo foi habilitado.

A configuração deste experimento foi a seguinte: recursos de 1 a 3 com taxa de utilização inicial próxima de 58 % e recurso número 4 próximo de 38 %. 30 tarefas do tipo A, para o qual todos os recursos possuíam conhecimento necessário ao processamento, foram encaminhadas ao grid, com diferença de 2,4 segundos entre si.

A Figura 4, acompanha a TU de recursos durante a execução da primeira parte do experimento. Contudo, o dado mais importante aqui é o tempo médio de alocação que foi de 6,3s.

Taxa de utilização

0

10

20

30

40

50

60

70

80

156,6

517

5,8719

4,8821

3,9423

3,5525

2,6627

1,6129

0,6130

9,5632

8,62

Tempo de alocação (segundos)

Taxa

de

Util

izaç

ão (P

erec

entu

al)

Taxa de utilização

0

10

20

30

40

50

60

70

217

237

258

277

297

316

335

354

373

392

Tempo de alocação (segundos)

Taxa

de

Util

izaç

ão (P

erec

entu

al)

Recurso 1Recurso 2Recurso 3Recurso 4

Figura 3 – Taxas de utilização dos recursos do sistema sem e com a ocorrência da migração.

Taxa de utilização

0,0010,0020,0030,0040,0050,0060,0070,00

60,91

73,71 86

,499

,0311

1,66

124,3

136,9

814

9,6716

2,36

175,1

187,7

320

0,37

21322

5,6323

8,27

Tempo de alocação (segundos)

Taxa

de

Util

izaç

ão

(Per

ecen

tual

)

Recurso 1Recurso 2Recurso 3Recurso 4

Figura 4 – Taxa de utilização dos recursos, modo iniciado pelo receptor desabilitado.

Na segunda parte do experimento foi habilitado o modo de escalonamento iniciado pelo receptor. Neste modo, quando constatada a grande capacidade ociosa do recurso 4 o escalonador central passa o controle do escalonamento para o agente do recurso que verifica junto ao gerenciador do grid as tarefas que devem ser alocadas e as solicita para si. Assim, a performance na alocação sofre uma sensível melhora com o tempo médio caindo para 3,3 segundos.Contudo, operando neste modo ocorre grande centralização das operações no agente residente no recurso causando o travamento do mesmo e não atualização das informações do agente no grid.

Taxa de utilização

0,0010,0020,0030,0040,0050,0060,0070,00

69,2

92,55

117,4

314

2,14

166,8

181,8

202,5

122

2,28

238,2

625

7,93

Tempo de alocação (segundos)

Taxa

de

Util

izaç

ão

(Per

cent

ual) Recurso 1

Recurso 2Recurso 3Recurso 4

Figura 5 - Taxa de utilização dos recursos, modo iniciado pelo receptor habilitado.

6.1.4. Escalonamento iniciado pelo receptor caso 2 Este caso foi implementado tendo em mente situações o escalonador central não

consegue, sozinho, dar vazão às tarefas que chegam ao grid. Na primeira parte deste experimento o modo de escalonamento estava desabilitado. Na

segunda fase o escalonamento foi configurado para ser disparado sempre que o número de tarefas na fila passasse de 10. Nas duas partes deste experimento os recursos de 1 a 4 foram inicializados com taxas de utilização próximas de 41 %, 47 %, 44 % e 40 %, respectivamente. Foram encaminhadas 30 tarefas ao grid com intervalo médio de 1,25 segundos.

A Figura 6 mostra o gráfico com os tamanhos das filas, nas duas partes do experimento. O gráfico mostra claramente o funcionamento do escalonamento iniciado pelo receptor que quando disparado impede o crescimento ilimitado da fila. Como conseqüência o tempo médio de espera das tarefas por alocação caiu de 57,8 para 17,3 segundos.

6.1.5. Escalonamento iniciado pelo emissor O escalonamento iniciado pelo emissor foi implementado com o objetivo de evitar tanto

quanto possível a perda de trabalho já realizado e, quando isso não for possível, dar continuidade ao fluxo das tarefas no grid sem que haja uma grande perda de tempo com o reenvio da tarefa ao grid.

Este experimento se divide em 3 partes, em todas elas foi simulado um problema em um recurso onde tarefas estavam sendo executadas.O problema foi simulado através de um agente maligno consumindo repentinamente recursos do computador.

Na segunda, a simulação de problema levou o sistema ao patamar entre 80 e 90 % de taxa de utilização, equivalente ao primeiro modo, onde o emissor escolhe um novo destino para a execução da tarefa.Na terceira parte, com um consumo superior a 90 % do total do recurso, o sistema entrou no segundo modo de escalonamento iniciado pelo emissor, onde as tarefas são devolvidas ao gerenciador do grid.

Tarefas esperando alocação

0

5

10

15

20

25

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

Número de tarefas

Alo

caçã

o EscalonamentocentralIniciado-pelo-receptor

Figura 6 – Número de tarefas na fila de alocação.

Para este experimento todos os recursos possuíam conhecimento para processamento das tarefas tipo A encaminhadas ao grid no número de 30. Em um dado momento, quando o recurso 3 se encontrava executando tarefas, foi simulada a pane deste recurso.

No primeiro caso todas as tarefas que executavam no recurso 3 no momento da pane não terminaram sua execução, gerando uma perda de 10 % do trabalho total encaminhado.

No segundo caso, no momento da pane, o recurso 3 iniciou o processo de escolha de um novo recurso para onde enviar as tarefas. Apesar de alcançar parcialmente o objetivo, conseguindo evitar que todas as tarefas fossem perdidas, este modo de operação apresentou perda de 6,6 % das tarefas.

No terceiro caso, o recurso 3 efetuou o envio das tarefas para realocação e estas entraram novamente no fluxo do grid. Novamente não foi alcançado sucesso total, apresentando perda de 6,6 do total das tarefas encaminhadas ao grid.

Como era esperado no segundo caso houve um desempenho melhor do sistema, o tempo entre a chegada da primeira tarefa ao grid e o término da execução da última foi de 257,8 segundos contra 269,3 para o terceiro caso.

6.2. Problemas encontrados O projeto software de código aberto Aglet Software Development Kit (ASDK) versão 2 parece abandonado, a última atualização data de fevereiro de 2002 e as tentativas de contato com os desenvolvedores não obtiveram resposta, impedindo assim a tentativa de se chegar à solução ou alternativas para alguns erros (bugs), mesmo que já conhecidos, da plataforma. Alguns destes erros, implicaram em grandes modificações para permitir a execução do sistema. Os computadores utilizados para os testes apresentaram problemas na alocação de memória nas situações de extrema utilização, causando instabilidade da aplicação. Tal instabilidade não foi experimentada em outros computadores.

7. Conclusões O balanceamento de carga é um assunto já bastante explorado em áreas como a computação

paralela e distribuída. A computação em grid e, extensivamente, os grids de agentes são sistemas distribuídos de maior complexidade e portanto os experimentos realizados naquelas áreas têm

aplicabilidade nos grids. Os experimentos realizados para os diversos modos de balanceamento atingiram os

resultados esperados, indicando a validade do modelo proposto e comprovando a necessidade de um modelo adaptativo que contemple as diferentes características dos estados alcançados pelo grid em seu ciclo de vida dinâmico. A realização de um estudo sobre as características das tarefas resultará em mais informações sobre quais tipos de recursos são necessários para seu processamento. Assim, as decisões de alocação poderão contemplar, além da disponibilidade de memória, a disponibilidade de processador, e atribuir pesos diferenciados para cada um deles.

7.1. Principais Contribuições Podemos identificar como contribuições deste trabalho:

• o estabelecimento do modelo aplicável a arquitetura de grids de agentes aplicada à gerência de rede;

• a definição de um modelo adaptativo facilmente escalável e que, portanto, tem utilização geral em arquiteturas de grid;

• a validação deste modelo através dos experimentos; • a identificação dos parâmetros que provocam a alteração de estados dentro modelo.

7.2. Trabalhos Futuros A arquitetura de gerência de redes para qual este modelo de balanceamento foi desenvolvido é baseada na plataforma AgentLight, portanto o próximo passo a implementação do modelo para esta plataforma. Outro trabalho que traria grandes benefícios é o estabelecimento dos valores limite que disparam as alterações de estado dentro do modelo adaptativo. Esse estudo poderia ser feito de duas maneiras: utilizando algum software de simulação ou através de experimentos.

Referências [ASSUNÇÃO 2003] ASSUNÇÃO, M. D.; WESTPHALL, C. B.; KOCH, F. L. “Arquitetura de Grids de Agentes Aplicada à Gerência de Redes de Computadores e Telecomunicações”, In: SIMPÓSIO BRASILEIRO DE REDES DE COMPUTADORES, 21., 2003, Natal-RN. Proceedings. Natal: 21º Simpósio Brasileiro de Redes de Computadores, 2003, p. 789-804. [ASSUNÇÃO 2004] ASSUNÇÃO, M. D.; WESTPHALL, C. B.; KOCH, F. L. Grids of Agents for Computer and Telecommunication Network Management. Journal of Concurrency and Computation: Practice and Experience, John Wiley & Sons, Inc. Online ISSN: 1532-0634. Print ISSN: 1532-0626. March/April 2004. [FOSTER 1999] FOSTER, I.; KESSELMAN, K. The Grid: Blueprint for a new Computing Infrastructure. Morgan Kaufmann Publishers. San Francisco, CA. 1999. [LANGE 1999] LANGE, B. D.; OSHIMA, M. “Seven Good Reasons for Mobile Agents”. Communications of ACM, 42(3). pp. 88-89. Março 1999. [MANOLA 1999] MANOLA, F.; THOMPSON, C. “Characterizing the Agent Grid”. 1999. Disponível em: <http://www.objs.com/agility/tech-reports/990623-characterizing-the-agent-grid.html >.Acesso em: 24 ago. 2003.


Recommended