• Sonuç bulunamadı

ÇAĞDAŞ ULUSLARARASI SĐSTEMDE KOSOVA

2.3. NATO GÖZETĐMĐ ÖNCESĐ VE SONRASI KOSOVA

2.3.1. NATO Müdahalesi Öncesi Kosova

As pol´ıticas de particionamento fazem a diferencia¸c˜ao de servi¸cos atrav´es da reserva de recursos. Assim, a diferencia¸c˜ao ocorre direcionando as requisi¸c˜oes para os recursos apropriados, dando atendimento preferencial `aquelas de maior prioridade.

As pol´ıticas de particionamento podem ser dividas em est´aticas e dinˆamicas, como discutido nas se¸c˜oes subsequentes.

Particionamento de Recursos Est´atico

Nos algoritmos de particionamento est´atico, os recursos s˜ao divididos entre as classes de servi¸co, e esta divis˜ao ´e mantida durante todo o funcionamento do algoritmo, at´e que seja modificada explicitamente pelo administrador.

O algoritmo StaticPartitioning, proposto por Cardellini et al. [Cardellini et al. 2001], as- socia um conjunto de servidores a cada classe de servi¸co. Para um sistema composto por N servidores, ´e proposto um conjunto de K elementos, em que K = ⌈(pN )⌉ e p ´e a porcentagem de requisi¸c˜oes pertencentes a determinada classe. Podem ser acrescentadas algumas unidades do n´umero de elementos, para satisfazer os acordos de n´ıveis de servi¸co firmado com os clientes. Em [Andreolini et al. 2004] ´e proposto o algoritmo StaticPart, que difere do StaticPartiti- oning apenas na escolha de quantos servidores devem ser acrescentados, aumentando o valor

48 Pol´ıticas de Controle de Admiss˜ao e Diferencia¸c˜ao de Servi¸cos

de K, para que o acordo de n´ıvel de servi¸co seja mantido.

No algoritmo Reserva de Recursos (RSV) [Teixeira 2004], o cluster de servidores ´e dividido, e cada parte ´e associada a uma classe ou grupo de classes de servi¸co. Como a divis˜ao ´e feita de maneira est´atica, ´e necess´ario que o administrador do sistema conhe¸ca antecipadamente a carga de trabalho que lhe ser´a imposta, para que a divis˜ao do cluster resulte em uma diferencia¸c˜ao de servi¸cos.

O particionamento est´atico ´e melhor aplic´avel onde a carga de trabalho ´e conhecida ou previs´ıvel. Em ambientes como a Web, em que a carga pode variar muito, de maneira ines- perada, a divis˜ao de recursos feita inicialmente pode se tornar inadequada. Al´em disso, com o particionamento est´atico, alguns recursos reservados para determinada classe, podem ficar sobrecarregados, enquanto que outros ficam ociosos ou subutilizados.

Para contornar essas desvantagens, s˜ao propostos os algoritmos de particionamento dinˆamico.

Particionamento de Recursos Dinˆamico

Usando particionamento de recursos dinˆamico, a divis˜ao dos recursos, estabelecida previa- mente pelo algoritmo, pode mudar de acordo com a carga de trabalho imposta ao sistema.

O algoritmo DynamicPartitioning, proposto por Cardellini et al. [Cardellini et al. 2001], faz a altera¸c˜ao na divis˜ao de recursos caso a soma da carga dos servidores dedicados a classe de maior prioridade ultrapasse determinado limite. Um servidor da classe de menor prioridade ´e movido para essa classe. Esse servidor, no entanto, continuar´a atendendo as requisi¸c˜oes em fila da classe inferior, e apenas as novas requisi¸c˜oes da classe de maior prioridade que ser˜ao enviadas a ele. O servidor movido pode voltar para a classe de menor prioridade se a sua ausˆencia n˜ao violar o SLA.

Andreolini et al. [Andreolini et al. 2004] consideram o algoritmo DynamicPart, semelhante ao DynamicPartitioning proposto por Cardellini et al. [Cardellini et al. 2001]. No entanto, nesse algoritmo ´e usado o n´umero de requisi¸c˜oes para documentos est´aticos e dinˆamicos para medir a carga do sistema, diferente do DynamicPartitioning que considera apenas as requisi¸c˜oes a documentos est´aticos.

Zhu et al. [Zhu et al. 2001] prop˜oem um algoritmo que se adapta dinamicamente as va- ria¸c˜oes na carga de trabalho, modificando a divis˜ao do cluster de servidores Web dependendo da demanda por recursos. Periodicamente, s˜ao calculados o n´umero de servidores que devem ser direcionados a uma classe, e qual a porcentagem de requisi¸c˜oes desta classe que deve ser rejeitada para que haja diferencia¸c˜ao de servi¸cos e garantia de desempenho, como j´a discutido

4.4 Considera¸c˜oes Finais 49

na Se¸c˜ao 4.2.3.

O algoritmo Reserva Adaptativa de Recursos (RSVAdap) [Traldi et al. 2006], divide os recursos entre as classes presentes, dinamicamente, de acordo com a carga atual no sistema, ou seja, baseando-se no n´umero de requisi¸c˜oes de classe. Seu objetivo ´e garantir melhores servi¸cos para as classes de maior prioridade.

Um dos objetivos do mecanismo WS-DSAC, proposto por Serra et al. [Serra et al. 2005], ´e utilizar os recursos do sistema de forma eficaz. Para isto, os recursos dispon´ıveis s˜ao realocados dinamicamente entre as diferentes classes de servi¸cos, enquanto eles n˜ao estiverem em n´ıveis cr´ıticos de utiliza¸c˜ao. Isto ´e feito para que as classes de menor prioridade n˜ao sejam prejudicadas devido aos servi¸cos das classes de maior prioridade, enquanto existirem recursos dispon´ıveis.

Marques [Marques 2008] descreve uma forma de gerenciar dinamicamente a capacidade de aloca¸c˜ao de recursos em cluster de servidores Web utilizando sistema multiagente. Os agentes tomam decis˜oes dinˆamicas a respeito da taxa de utiliza¸c˜ao dos recursos e da carga do sistema a fim de melhorar a eficiˆencia na utiliza¸c˜ao destes recursos. Assim, o suporte necess´ario `as mudan¸cas dos recursos dispon´ıveis na plataforma s˜ao realizados sem a interferˆencia do administrador, cuja presen¸ca s´o ´e necess´aria para a defini¸c˜ao das regras fundamentais para que a plataforma seja inicializada.

4.4

Considera¸c˜oes Finais

Neste cap´ıtulo foi discutido o controle de admiss˜ao, respons´avel pelo descarte de requisi¸c˜oes ou sua negocia¸c˜ao para atendimento em uma classe de prioridade menor, para que n˜ao haja sobrecarga dos recursos do sistema, gerando uma poss´ıvel nega¸c˜ao de servi¸co.

Foi discorrido ainda sobre as pol´ıticas de escalonamento e de particionamento de recursos, respons´aveis pelo isolamento das classes, um dos importantes conceitos relacionados a qualidade de servi¸cos na Web. As pol´ıticas de escalonamento decidem qual requisi¸c˜ao ou sess˜ao ser´a servida, e as pol´ıticas de particionamento de recursos s˜ao respons´aveis por eleger recursos para ser utilizados por classes de servi¸co espec´ıficas. As pol´ıticas de particionamento s˜ao dividas em dois grupos: as que tˆem os recursos do sistema particionados estaticamente, e as que particionam os recursos dinamicamente, ou seja, durante a execu¸c˜ao e funcionamento do sistema. Ao final da discuss˜ao sobre cada um desses temas, foram apresentados trabalhos relacionados de alguns autores.

No pr´oximo cap´ıtulo ser˜ao abordados alguns benchmarks e geradores de carga de trabalho usados para avaliar servidores Web. As ferramentas de maior importˆancia abordadas ser˜ao

50 Pol´ıticas de Controle de Admiss˜ao e Diferencia¸c˜ao de Servi¸cos

o benchmark HTTPerf [Httperf 2009] e o W4Gen [Silva 2006], que possui o mesmo objetivo deste trabalho, ou seja, gerar carga de trabalho sint´etica para modelos de servidores Web, e ser´a usado neste projeto de mestrado para a gera¸c˜ao de algumas caracter´ısticas e componentes da carga de trabalho.

Cap´ıtulo

5

Gera¸c˜ao da Carga de Trabalho

5.1

Considera¸c˜oes Iniciais

O crescimento da Web tem motivado v´arias pesquisas que buscam analisar esse ambiente, quantificar seu tr´afego, definir caracter´ısticas relacionadas `a sua carga de trabalho e avaliar ser- vidores Web, tudo isso visando oferecer melhores servi¸cos aos usu´arios. Apesar disso, poucos geradores de carga de trabalho para servidores Web s˜ao encontrados, sendo que, na maio- ria das vezes, eles se apresentam na forma de benchmarks [WebStone 2002; SPECWeb 2011; Httperf 2009].

Como s˜ao bastante ´uteis para avaliar desempenho de servidores Web, alguns benchmarks e geradores de carga de trabalho foram analisados, a fim de criar os subs´ıdios necess´arios para o desenvolvimento de um gerador de carga baseada em sess˜oes.

Na Se¸c˜ao 5.2 ´e apresentado um gerador de carga de trabalho sint´etica, que ser´a utilizado no desenvolvimento deste projeto de mestrado, o W4Gen, implementado por [Silva 2006]. Na seq¨uˆencia, s˜ao apresentados o gerador de carga de trabalho JMeter (Se¸c˜ao 5.3), e os benchmarks SPECWeb (Se¸c˜ao 5.4), WebStone(Se¸c˜ao 5.5) e HTTPerf (Se¸c˜ao 5.6). Todos os geradores analisados atuam enviando requisi¸c˜oes para um servidor Web. Para atingir o objetivo deste trabalho, que ´e possibilitar a gera¸c˜ao de carga baseada em sess˜oes para alimentar simuladores de servidores Web, fez-se um estudo comparativo entre os geradores de carga dispon´ıveis. Essa compara¸c˜ao ´e apresentada na Se¸c˜ao 5.7. Na Se¸c˜ao 5.8, ´e apresentada a proposta de um gerador de carga de trabalho baseada em sess˜oes. Nessa se¸c˜ao s˜ao apresentados ainda os trabalhos relacionados utilizados para a gera¸c˜ao de seus componentes e, as ferramentas utilizadas como base para sua implementa¸c˜ao. E finalmente, na Se¸c˜ao 5.9 ´e apresentado o Gerador de Sess˜oes

52 Gera¸c˜ao da Carga de Trabalho

Sint´eticas proposto nesta disserta¸c˜ao.