Vous êtes sur la page 1sur 50

Planejamento de

Capacidade de Sistemas
através de Cadeias de
Markov
Rubens Matos
Francisco Vieira
Carlos Julian
Paulo Maciel
Apresentação

 Rubens de Souza Matos Jr.


 Doutorando em Ciência da Computação / UFPE
 Mestre em Ciência da Computação / UFPE
 Bacharel em Ciência da Computação / UFS
 Atuação em projetos de pesquisa nas seguintes áreas:
 Medição, modelagem e simulação de tráfego de redes
 Avaliação de desempenho de sistemas distribuídos
 Envelhecimento/rejuvenescimento de software
 Sistemas de armazenamento distribuído
Agenda

• Introdução ao planejamento de capacidade


• Conceitos básicos de probabilidade
• Fundamentos de Cadeias de Markov
• Modelos clássicos de desempenho e disponibilidade
• Ferramentas
• Estudos de caso
O que é Planejamento de Capacidade?

Sistemas de TI precisam operar de


maneira confiável, atendendo às
necessidades de seus usuários.

Não basta atender os requisitos


“funcionais”, esquecendo os
requisitos “não-funcionais”.

O conceito de QoS (Qualidade de


Serviço) deve estar presente em
todas as fases do ciclo de vida de um
sistema.
O que é Planejamento de Capacidade?

Tempo de resposta

Vazão Disponibilidade
QoS
Confiabilidade

Escalabilidade

Segurança
O que é Planejamento de Capacidade?

 Para realizar o planejamento de capacidade é


necessário “prever” como um sistema vai se comportar
 Antes dele ser implementado
 Após alguma mudança de configuração
 Após alguma mudança na carga

Quantos atendentes eu
preciso pra que não
haja filas?
Planejando a capacidade de um banco

 Sabendo que:
 Chega um novo cliente a cada 2 minutos exatamente.
 Cada atendente leva 3 minutos pra realizar o serviço
pedido pelo cliente.
Facilmente descobre-se que são necessários 2
atendentes: Tempo (min.)

0 1 2 3 4 5 6 7 8 9 10 11 12 ...
Chegada 1 2 3 4
Saída 1 2 3 4
Planejando a capacidade de um banco

 Sabendo que:
 Chega um novo cliente a cada 2 minutos, exatamente.
 Cada atendente leva 3 minutos pra realizar o serviço
pedido pelo cliente.
Facilmente descobre-se que são necessários 2
atendentes: Tempo (min.)

0 1 2 3 4 5 6 7 8 9 10 11 12 ...
1 2 3 4

A B
Desafios à vista

No mundo real os acontecimentos não são


determinísticos.
 Requisições/clientes não chegam em intervalos de tempo
regulares/fixos
 O tempo necessário para realizar uma tarefa é variável
 Falhas não ocorrem em períodos pré-determinados
 Precisamos trabalhar com modelos probabilísticos.
O que é um modelo probabilístico?

Os eventos ocorrem aleatoriamente, porém seguindo


uma distribuição de probabilidade.

Distribuição normal Distribuição exponencial


Conceitos básicos de probabilidade

 Espaço amostral. O conjunto de todas os eventos


simples de uma experiência aleatória é chamado de
Espaço amostral, normalmente denotado por S.
Exemplos:

O lançamento de um dado.
S = {1,2,3,4,5,6}
O lançamento de uma moeda.

S = {H, T}, sendo H = cara e T = coroa


A escolha aleatória de uma carta em um baralho de 52
cartas.
S = {ás de paus, ..., reis de copas}
Conceitos básicos de probabilidade

Exemplo. O espaço amostral que consiste na observação do


número de e-mails chegados ao provedor do NPD da UFPI em
cada dia. Este espaço amostral é infinito enumerável porque
pode-se rotular cada e-mail que chega com um único número
natural, n  N, ou seja,
S = {n|n  N}

Exemplo. A medida dos tempos de espera em um ponto de


ônibus. Neste caso, S é infinito não enumerável e cada
resultado é um número real não negativo, ou seja,
S = {t|t ≥ 0}
Conceitos básicos de probabilidade

Cálculo de probabilidades.
A forma clássica de se calcular a probabilidade de um evento A, é
denotada por P(A), com m elementos em um espaço amostral finito S =
{a1, a2, ..., an}, onde os n pontos amostrais ai (i = 1, 2, ..., n) devem ter a
mesma probabilidade de ocorrer, ou seja, eles são equiprová-veis, é dada
pela relação entre a quantidade de casos favoráveis ao evento A e a
quantidade de elementos do espaço amostral S, apresentada como um
número real ou em percentagem. P(A) = m/n.

Exemplo. Ao se retirar aleatoriamente uma carta de um baralho com 52


cartas, todas elas têm a mesma probabilidade de ser a carta escolhida, ou
seja, 1/52. No entanto, a probabilidade de que esta carta seja uma dama
é 4/52, porque existem 4 damas em um baralho.
Conceitos básicos de probabilidade

 Eventos independentes.
Diz-se que dois eventos são estatisticamente independentes se a
ocorrência de um deles não afeta a ocorrência do outro.
Exemplo. Dois lançamentos seguidos de um mesmo dado constituem dois
eventos independentes porque o resultado do primeiro lançamento não
tem qualquer influência sobre o resultado do segundo, e vice-versa.
Dados dois eventos independentes A e B, a probabilidade da ocorrência
conjunta é dada pela regra da multiplicação
P(A.B) = P(A  B) = P(A).P(B)
Dados dois eventos não independentes A e B, a probabilidade
condicionada de A, dado que B já aconteceu é dada por
P(A|B) = P(A.B)/P(B) = P(A  B)/P(B)
Conceitos básicos de probabilidade

 Variáveis aleatórias
Dado um experimento e um espaço amostral S a ele
associado, denomina-se variável aleatória à função X que
associa a cada elemento s de S um número real X(s).
Variáveis aleatórias discretas ou contínuas
Seja X uma variável aleatória. Se os valores de X formarem

um conjunto finito ou infinito enumerável, então X é


denominada variável aleatória discreta. Se, no entanto, este
conjunto for um intervalo ou uma coleção de intervalos, ela é
denominada variável aleatória contínua.
Cadeias de Markov

Visão simplista:

Máquina de estados, com arcos indicando a probabilidade


de transição entre os estados

Modelo climático
Cadeias de Markov: Aplicações

Page Rank do Google: Random Surfer


Cadeias de Markov: Aplicações

 Química
 Economia

 Telecomunicações

 Computação

 Reconhecimento de fala
 Bioinformática
 Compressão de dados
Visão real das cadeias de Markov

•Modelo matemático
•Processo aleatório
•Discreto
•Contínuo
•Ausência de memória
•Distribuição exponencial
(CTMC)
Definição formal

Ausência de memória

Pr (Clima07/11 = chuva | Clima04/11 = chuva, Clima05/11 = sol, Clima06/11 = sol ) =


Pr (Clima07/11 = chuva | Clima06/11 = sol ) = pij = 0.2
Resolução de uma cadeia de Markov
Tipos possíveis de análise

•É possível encontrar medidas


•Transientes (para um tempo t específico)
•Quantos servidores estarão ocupados após 1 hora do início do
atendimento?
•Estacionárias (para um intervalo de tempo grande/
tendendo ao infinito)
•Qual a porcentagem de tempo em que meu sistema estará
disponível ao longo do ano?
Tipos possíveis de análise

Há dois aspectos principais quanto ao comportamento


de um sistema:
 Desempenho
 Tempo de resposta, nível de utilização de recursos, perda ou
descarte de requisições
 Dependabilidade
 Tempo de indisponibilidade, probabilidade de falha, tempo até
a primeira falha.
Modelos para desempenho de sistemas

Requisição chega = +1
thread ocupada Servidor web (Apache) com 3 threads

Requisição sai = -1
thread ocupada

Tempo entre requisições:


0.5 segundos

Tempo de serviço:
0.33 segundos
O sistema está superdimensionado?
Modelos para desempenho de sistemas

Matriz Q

-2 2 0 0
3 -5 2 0
0 6 -8 2
0 0 9 -9

Vetor P: [P0 P1 P2 P3] = [0.51 0.35 0.12 0.02]

Probabilidade das 3 threads estarem ocupadas: 0.02, ou 2%

Quantidade média de threads ocupadas: 0.65


Modelo para desempenho de sistemas

E se a quantidade de acessos ao
site aumentar?
Análise do desempenho com o aumento
da carga

De acordo com o modelo,


o sistema suporta bem
mais carga!
Modelos para desempenho de sistemas

 O quanto dá pra confiar nos resultados de um modelo


de cadeia de Markov?
 As taxas/probabilidades das transições têm uma distribuição
próxima à exponencial?
 Os resultados foram validados com dados experimentais (i.e.
medição do sistema real)?
 O ideal é usar um processo cíclico de modelagem /
validação / refinamento.
Metodologia para modelagem de
desempenho

Adaptado de: (Menascé et al, 2004)


Modelo clássico para disponibilidade

λ = 1/MTTF

δ = 1/MTTA

μ = 1/MTTR
Modelo para disponibilidade de um sistema
com 2 processadores

λ CPU = 1 falha a cada 2anos=1/17520


αSP = 1/2= 0.5
μ CPU = 1/0.5= 2
Disponibilidade: 99.9857326 %
Ferramentas para modelagem com
cadeias de Markov

•SHARPE
•Reliability Workbench (ISOGRAPH)
•PEPA
•MATLAB
•R
•RAM Commander
•JMT (Java Modelling Tools)/ JMCH
Ferramentas para modelagem com
cadeias de Markov

Clientes do RAM Commander Clientes do SHARPE


Java Modelling Tools / jMCH
SHARPE

Symbolic Hierarchical Automated Reliability and


Performance Evaluator
SHARPE

 Desenvolvido pelo grupo do prof. Kishor Trivedi, na


Universidade de Duke, NC, USA.
 Duke High Availability Assurance Lab (DHAAL)
SHARPE

 Modos de utilização
GUI (Windows)
Console: Scripts com linguagem própria (Linux,
Windows, Solaris)
SHARPE

 Sites da ferramenta:
 http://people.ee.duke.edu/~kst/software_packages.html
 http://sharpe.pratt.duke.edu
Estudos de caso

 Planejamento de redundância em uma rede de


computadores
 Desempenho e confiabilidade de uma composição de

web services
Planejamento de redundância em redes
Modelo sem redundância

Tempo médio de reparo = 12 horas


Tempo médio para falha do roteador = 131000 horas
Tempo médio para falha do enlace = 11988 horas
Análise do downtime do sistema
Modelo com redundância de enlace
Análise do downtime do sistema
Planejamento de redundância em redes

 Podemos querer saber o retorno financeiro esperado


para um período de 1 ano
 Rewards podem ser usados para isso
 Receita gerada durante estados “operacionais”
 Perda durante estados de reparo
Desempenho e confiabilidade de uma
composição de web services

Sistema de agente
de viagens
Probabilidade do tempo de resposta
Dúvidas

Contato:
rsmj@cin.ufpe.br
rubens.matos@gmail.com
www.modcs.org