• Nenhum resultado encontrado

O estado do cache e preservado

4.6 Escolha dos Par^ametros do PART

Nessa sec~ao vamos discutir as diretrizes para escolha dos par^ametros do modelo PART, a saber: numero de partic~oes, de nic~ao das classes e tamanho das partic~oes. A escolha deve ser feita nesta ordem pois a de nic~ao das classes depende do numero de partic~oes e o

tamanho das partic~oes, por sua vez, depende da de nic~ao das classes. A de nic~ao nal e a da poltica de reposic~ao e sera discutida no captulo 5.

A escolha dos par^ametros deve ser baseada em duas variaveis: a de nic~ao dos objetivos, isto e, se se quer otimizar preferencialmente HR ou BHR, ou se e desejado um compromisso entre estas metricas; e a caracterizac~ao da carga.

Dada uma carga e de nido o objetivo, e possvel indicar diretrizes para escolha dos par^ametros. No entanto, como n~ao s~ao conhecidos modelos para predizer os valores de HR e BHR, a determinac~ao dos valores adequados para os par^ametros do PART so pode ser obtida atraves de simulac~ao ou experimentac~ao com o sistema real. O captulo 5 apresenta experimentos baseados em simulac~ao que v~ao mostrar a sensibilidade do modelo a de nic~ao dos objetivos, a variac~ao dos par^ametros e da carga.

4.6.1 Numero de Partic~oes

A primeira escolha deve ser a do numero de partic~oes. O particionamento tem como obje- tivo minimizar a variabilidade dos tamanhos dos objetos envolvidos numa substituic~ao. Os maiores ganhos dever~ao ser obtidos com os primeiros particionamentos. Particionamentos sucessivos v~ao aumentando os benefcios porem em escalas cada vez menores. A ideia e trabalhar com poucas partic~oes, de duas a cinco. Estas partic~oes podem ser implementadas em um mesmo servidor ou em um ambiente distribudo. Maior variabilidade na carga e indicac~ao para a de nic~ao de um numero maior de partic~oes.

4.6.2 Divis~ao da Carga em Classes

A de nic~ao das classes determina a frac~ao de documentos em cada classe, isto e, a frac~ao da carga que vai ser atendida pela partic~ao correspondente a classe. A de nic~ao das classes pode ser feita com o objetivo de dividir a carga igualmente entre as partic~oes. Em um sistema de cache distribudo a divis~ao pode ser utilizada para balancear a carga entre computadores de modo que cada um receba carga compatvel com seu poder de processamento.

Como exemplo, vamos considerar a situac~ao na qual o cache e implementado por um conjunto de computadores onde cada maquina (host) implementa uma partic~ao, isto e, armazena arquivos de uma classe. Assumimos que todos os hosts tem o mesmo poder de processamento e que a carga de cada tarefa e dada pelo tamanho da requisic~ao a ser servida. A carga total e a quantidade de E/S feita nos discos. Os hits correspondem a leitura e osmisses a escrita. Portanto, o numero total de bytes requisitados (e servidos) e a carga do sistema de E/S. O problema consiste em particionar a carga de modo que cada partic~ao sirva quantidades iguais de bytes. A de nic~ao das classes deve ser feita de modo a balancear a carga de E/S nos diversos hosts.

O mecanismo para obter o balanceamento da carga nos hostse usar a distribuic~ao dos tamanhos das tarefas para de nir os pontos de corte para as classes, isto e, os pontos t

j

da gura 4.1. O tamanho das tarefas segue a distribuic~ao limitada de Pareto. A ideia e simples: basta de nir as classes de tal forma que a carga de E/S direcionada a cada host

seja a mesma. O seguinte teorema mostra como os pontos que de nem as classes podem ser obtidos.

Teorema 1

1

A func~ao de probabilidade de massa para a distribuic~ao de Pareto limitada (Bounded Pareto), B( ;k;p), e de nida por:

f(x) = k 1?( k p) x ? ?1 kxp:

Seja X uma variavel aleatoria que segue a distribuic~ao de Pareto B( ;k;p). Nessa dis-

tribuic~ao e o grau de variabilidade, 0 <  2. k e p s~ao constantes positivas que

representam, respectivamente, o menor e o maior valor que pode ser assumido pela distri- buic~ao, k <p. h e o numero de hosts, que e igual ao numero de partic~oes. Seja

E

fXg o

primeiro momento da distribuic~ao. Ent~ao, se 6= 1, de nindo x i = (h?i) h k 1? + i h p 1? ! 1 1? ; par ai= 0;:::;h; temos k =x 0 <x 1 <x 2 <:::<x h?1 <x h = p, e Z x 1 x 0 =k x:f(x) = Z x 2 x 1 x:f(x) = Z x 3 x 2 x:f(x) =:::= Z x h =p x h?1 x:f(x) = EfXg h Se = 1, a de nic~ao correspondente e x i = k  p k  i h ;par ai= 0;:::;h:

A prova e apresentada no ap^endice deste captulo. Esse teorema de ne os pontos de corte dados por x i, i = 0;:::;h, sendo k = x 0 < x 1 < x 2 < ::: < x h?1 < x h = p. Cada par

adjacente de pontos de ne uma classe.

Na pratica a distribuic~ao dos tamanhos e facil de ser obtida atraves da manutenc~ao de um histograma de todos os tamanhos das tarefas executadas durante um perodo de tempo. Os pontos de corte s~ao calculados uma vez, dada a distribuic~ao, e ent~ao e necessario apenas que um escalonador de tarefas mantenha o registro destes pontos. No entanto, um benefcio e que se a distribuic~ao dos tamanhos muda signi cativamente no tempo, os pontos de corte podem ser recalculados e registrados para o sistema se adaptar a mudanca na carga.

Com a limitac~ao dos tamanhos dos arquivos servidos em cada host, o PART reduz a vari^ancia da distribuic~ao dos tamanhos das tarefas em relac~ao ao que cada host receberia se a distribuic~ao fosse aleatoria. Essa reduc~ao na vari^ancia dos tamanhos das tarefas gera um melhoramento no desempenho do host. Alem disso, quando a carga esta balanceada, a maioria das tarefas e enviada para os hosts que servem os menores arquivos e que s~ao os que apresentam o melhor desempenho. Em (Harchol-Balter et al., 1999) e apresentada uma prova de que, nestas condic~oes, os arquivos menores experimentar~ao o menor tempo na la.

1Elaborado em conjunto com Mark Crovella e Mor Harchol-Balter (Harchol-Balter

et al., 1999).

4.6.3 Tamanho das Partic~oes

O tamanho das partic~oes e estreitamente ligado a de nic~ao de classes. Uma vez de nidas as classes, o tamanho das partic~oes e escolhido com base na caracterizac~ao da carga de cada partic~ao e tambem com base no objetivo. A caracterizac~ao da carga indica qual e a frac~ao de bytes unicos que cada classe ocupa. Maior interesse em HR indica que as partic~oes que armazenam arquivos pequenos devem ter um maior espaco relativo. Por outro lado, maior interesse em BHR indica que maior espaco deve ser dedicado as partic~oes que armazenam arquivos maiores. O tamanho das partic~oes deve ser recon gurado em func~ao das mudancas no per l da carga ou em func~ao de mudancas no objetivo.

4.7 Relac~ao Analtica entre HR e BHR

O desempenho conjunto do cache particionado emn partic~oes e dado por:

HR = n X i=1 H i :f i ondeH

i e a frac~ao de hits na partic~ao ief

i e a frac~ao de requisic~oes destinadas a partic~ao i, 1 in. Ent~ao:

H

i = numero de requisic~oes servidas pela partic~ao i

numero requisic~oes feitas a partic~ao i

f

i = numero de requisic~oes feitas a partic~ao i

total de requisic~oes feitas ao cache

H i

:f

i = numero de requisic~oes servidas pela partic~ao i

total de requisic~oes feitas ao cache

HR = n X i=1 H i :f

i = numero de requisic~oes servidas pelo cache

total de requisic~oes feitas ao cache

Para aumentar HR deve-se aumentar o numero de arquivos servidos pelo cache. Para uma mesmacarga e mesmotamanho de cache, uma forma de fazer isso e aumentar o numero de arquivos armazenados no cache, mantendo preferencialmente os arquivos pequenos. A frac~ao de hits cresce assintoticamente com o numero de arquivos armazenados (Breslau et al., 1999). Utilizando o PART e possvel controlar o numero de arquivos armazenados no

cache e aumentar ou diminuir esse numero, o que e feito pela variac~ao do tamanho das partic~oes.

Analogamente, o desempenho em BHR e dado por: 58

BHR = n X i=1 B i :b

i = numero de bytes servidos pelo cache

total de bytes requisitados ao cache onde B

i e a frac~ao de hits em bytes na partic~ao i e b

i e a frac~ao de bytes requisitados a

partic~ao i, 1in.

A relac~ao entre HR e BHR e fundamental para o entendimento do comportamento de cada modelo de ger^encia de espaco (composto pelo modelo de particionamento mais a poltica de reposic~ao). Embora as duas metricas sejam consideradas fundamentais para o desempenho do cache, ainda n~ao ha na literatura uma formula que estabeleca a relac~ao entre elas. Esta relac~ao e estabelecida pelo teorema enunciado a seguir.

Teorema 2

Dado que

HR =

numero de requisic~oes servidas pelo cache numero de requisic~oes feitas ao cache e

BHR =

numero de bytes servidos pelo cache numero de bytes requisitados ao cache ent~ao

HR BHR

= tamanho medio das requisic~oestamanho medio dos hits (4:1)

A prova e apresentada no ap^endice deste captulo.

Este teorema mostra que se todas as requisic~oes s~ao do mesmo tamanho ent~ao HR = BHR. Este e o caso dos caches tradicionais. Alem disso, quando n~ao ha correlac~ao entre

a frequ^encia de requisic~oes e o tamanho dos objetos requisitados, ent~ao HR=BHR  1.

Se o tamanho medio das requisic~oes e maior do que o tamanho medio dos hits, ent~ao

HR > BHR. Isto e, em geral, o que acontece nos Web-caches, onde observa-se que os

arquivos mais populares s~ao menores do que a media dos arquivos requisitados. Se os

hits s~ao preferencialmente para arquivos maiores do que a media das requisic~oes, ent~ao

HR <BHR.

Portanto, para aumentarmos o BHR para uma mesma carga e mesmo tamanho de cache precisamos aumentar o tamanho medio dos hits, isto e, preservar no cache arquivos maiores que possam gerar hits. O gra co da gura 4.4 mostra a relac~ao entre HR/BHR e o tamanho medio dos hits, dada pela formula apresentada no teorema 2, considerando alguns tamanhos medios tpicos para as cargas.

Este teorema e valido para todos os tipos de cache, particionados ou n~ao, geridos por qualquer poltica de reposic~ao. Embora ele seja valido para caches com objetos de tamanho constante, sua aplicac~ao neste caso n~ao e interessante pois HR=BHR sempre.