Matematicamente, como calcular uma porcentagem de tempo de atividade com base em vários nós e sua respectiva porcentagem de tempo de atividade?

11

Esta questão é mais uma questão de matemática do que uma questão de servidor, mas está fortemente relacionada ao servidor.

Se eu tivesse um servidor capaz de garantir 95% de tempo de atividade e colocaria esse servidor em um cluster de 2, quanto seria o tempo de atividade? Agora, digamos que eu faça o mesmo, mas faço um cluster de 3?

Não vamos considerar coisas como um único ponto de falha, mas focar puramente na matemática aqui. Uma das coisas que torna isso um pouco complicado é que, por exemplo, se eu tiver 2 servidores, a chance de ambos estarem fora é 2 ^ 2, então isso é 1/4; ou para 3 é 2 ^ 3, então 1/8. Considerando que eu tenho um tempo de inatividade de 5% para cada um desses servidores, a média total seria de 1/8 desses 5%?

Como você calcularia algo assim?

Jeroen Landheer
fonte
"95% de tempo de atividade" - o que é isso? Eu sei o que são 5 dias ou 5 anos de atividade. O que é tempo de atividade 0,95? Quais unidades?
poige 04/07
1
Por quê você precisa saber disso? Qual é o caso de uso?
ewwhite
@poige Presumivelmente, "95% de tempo de atividade" significa "o tempo de atividade representa 95% do tempo", embora, se você decidisse ser pedante, poderia dizer que, portanto, tudo tem ~ 0% de tempo de atividade, porque não existirá o tempo todo .
Fund Monica's Lawsuit
1) Presumivelmente o autor deve responder? ;) 2) Acho que antes de calcular algo é melhor entender o que é. ;)
poige

Respostas:

11

O tempo de atividade é uma coisa escorregadia ... Se você deseja calcular a disponibilidade de um serviço , é simplesmente

amount of time service is available
-----------------------------------   x 100
  amount of time that has passed 

Se você tiver um cluster que fornece o serviço, a probabilidade de o serviço ficar indisponível diminui, mas o cálculo da disponibilidade (tempo de atividade) do serviço permanece o mesmo.

user9517
fonte
8

A chance de um servidor ficar offline é (1 - 0,95) A chance de ambos os servidores ficarem offline é (1 - 0,95) * (1 - 0,95) = 0,0025 etc ...

Portanto, usando o seu modelo e do ponto de vista puramente matemático, um ou ambos os servidores devem aumentar 99,75% do tempo

No entanto, não tenho certeza de que o uso de um modelo matemático seja a maneira correta de calcular o tempo de atividade em potencial, pois existem outros fatores que podem afetá-lo, comuns aos dois servidores, ou seja, os 95% podem ocorrer porque 5% das vezes existe um corte de energia que afetaria AMBOS servidores, portanto, ter um cluster não faria diferença

Phil
fonte
Oi Phil. A energia é certamente um componente da disponibilidade que pode ser atenuado, colocando as instalações em vários racks e obtendo energia de fontes diferentes, etc. A ideia é puramente do ponto de vista matemático, uma vez que obviamente existem mais componentes para isso do que apenas alguns servidores :)
Jeroen Landheer
8
O ponto é que os cálculos nesta resposta e na de Jeroen só funcionam se os tempos de atividade forem independentes (em um sentido matemático). Se houver correlações (por exemplo, cabo de alimentação que alimenta ambos os racks), as coisas não serão tão simples.
TripeHound 4/16/16
@TripeHound É por isso que eu escrevi a minha resposta :)
Seamus
5

Isso depende do motivo pelo qual seus servidores estão inativos 5% do tempo. Se você tem o poder de 95% do tempo, mas os servidores são de outra maneira impecável, em seguida, um segundo servidor no mesmo local não aumentar o seu tempo de atividade em tudo : se um vai para baixo, ambos vão para baixo. Este é um exemplo das falhas sendo correlacionadas . É provável que pelo menos parte do seu tempo de inatividade seja devido a erros que afetam todos os servidores juntos (energia ...). Mas parte do tempo de inatividade será independenteentre servidores. Se você deseja fazer isso corretamente, deve lidar com essas coisas separadamente. Portanto, você deseja calcular a probabilidade de que o servidor 1 não tenha um erro independente (p) e que o servidor 2 não tenha um erro independente (q) e que não haja nenhum erro sistêmico que mate ambos (r). Seria relativamente seguro assumir que esses erros são independentes e, portanto, você pode simplesmente multiplicá-los: p q r é a probabilidade de algum servidor estar ativo.

O problema é que você não pode usar dados de tempo de atividade reais para fornecer valores para p, q e r, exceto que, se você tiver apenas o servidor 1 e estiver em 95% do tempo, então p * r = 0,95.

Seamus
fonte
5

Antes de tudo, a disponibilidade total ou o tempo de atividade de um cluster depende de quão grande parte do cluster é necessária para estar ativa para que todo o cluster seja considerado 'ativo'.

  • Uma máquina funcionando é suficiente? Isso significa que qualquer máquina pode suportar a carga total, se necessário.
  • Todos eles precisam estar ativos ao mesmo tempo? Ou seja, não há redundância.
  • Ou talvez dois em cada três online sejam suficientes? Isso permitiria uma carga de trabalho maior que o primeiro caso.

Como você descobriu, os dois primeiros casos são bastante simples de calcular. Deixe a probabilidade de um único servidor estar online a qualquer momento p = 0,95. Agora, para três servidores, a probabilidade de que todos estejam online ao mesmo tempo é p 3 = 0,857375.

No caso oposto, em que pelo menos uma máquina deve estar ativa em um determinado momento, é mais fácil calcular, invertendo o problema e observando as probabilidades de as máquinas estarem offline . A probabilidade de uma única máquina estar offline é q = 1- p = 0,05 e, portanto, a probabilidade de que todas elas estejam inativas ao mesmo tempo é q 3 = 0,000125, fornecendo a probabilidade 1- q 3 = 1- (1- p ) 3 = 0.999875 que pelo menos um está ativo.

O caso 2 de 3 é um pouco mais difícil de calcular. Existem quatro situações possíveis em que pelo menos dois de três servidores estão ativos. 1) ABC está ativo, 2) AB está ativo, 3) AC está ativo, 4) BC está ativo. As probabilidades para todos estes são, respectivamente, ppp , PPQ , PQP e QPP . Como os casos são disjuntos, as probabilidades podem ser somadas, resultando em um total A = p 3 + 3 p 2 q = 0,992750.

(Isso pode ser expandido para mais máquinas. Os fatores são os coeficientes binomiais bem conhecidos , portanto, contar os diferentes casos manualmente funciona principalmente como um exercício.)


Obviamente, cálculos como esse são muito mais fáceis de lidar usando um programa de computador pronto ... Pelo menos um calculador on-line pode ser encontrado aqui:
http://stattrek.com/online-calculator/binomial.aspx

Entrando os valores de entrada: probabilidade de sucesso = 0,95, número de tentativas = 3, número de tentativas = 2, obtemos o resultado "Probabilidade acumulada: P (X ≥ 2) = 0,99275". Alguns outros valores relacionados também são fornecidos, e a ferramenta online também facilita a reprodução com outros números.


E sim, todas as opções acima pressupõem que os servidores falhem de forma independente, ou seja, a) eu ignorei quaisquer problemas que afetassem o cluster como um todo; b) não há nada como o envelhecimento de componentes que tornaria provável a falha dos servidores em ou quase ao mesmo tempo.

ilkkachu
fonte
3

Você tem 5% de tempo de inatividade para cada servidor e, portanto, o multiplica - 0,05 * 0,05 = 0,0025, fornecendo 1-0,0025 = 0,9975 -> 99% de tempo de atividade. Com 3 servidores, você tem 1-0.000125 = 0.999875> tempo de atividade de 99,9%.

Normalmente, sou responsável por 97% da disponibilidade de host independente (com HDD e PSU redundantes), fornecendo> 99,9% para 2N e> 99,99% para redundância 3N.

DukeLion
fonte
3

Fiz mais algumas escavações e encontrei esta peça do quebra-cabeça.

Usando o exemplo de um servidor com uma disponibilidade de 95%, a adição de um segundo servidor aumentaria a disponibilidade para: 95% + (1-95%) * 95% = 99,75%. A lógica por trás disso é que, quando o 1º servidor está inativo (5% das vezes), o segundo servidor ainda está ativo 95% das vezes.

A adição de um terceiro servidor iteraria da mesma maneira. Os dois primeiros juntos já são 99,75% disponíveis, portanto, a adição do terceiro seria: 99,75% + (1-99,75%) * 95% = 99,9875%. E assim por diante. Isso está próximo da resposta de Phil, mas ainda um pouco diferente, pois você precisa pegar o resultado da iteração anterior e usá-lo na próxima.

Para componentes que dependem um do outro, basta multiplicar as porcentagens de disponibilidade; portanto, se você tiver 2 componentes disponíveis em 50%, terá 25% de disponibilidade total (ou seja, o sistema funcionará apenas quando os dois componentes funcionarem).

Jeroen Landheer
fonte
0

Supondo que o tempo de atividade de cada servidor seja independente dos outros, o tempo de atividade total é

1 - (0,05) ^ n

Onde n é o número de servidores E 0,05 é a probabilidade de tempo de inatividade de um servidor

Hani
fonte