Matematicamente, come calcolare una percentuale di uptime basata su un numero di nodi e la rispettiva percentuale di uptime?


11

Questa domanda è più una domanda matematica che una domanda server, ma è fortemente correlata al server.

Se avessi un server che sarei in grado di garantire il 95% di uptime e lo metterei in un cluster di 2, quanto sarebbe il uptime allora? Ora, diciamo che faccio lo stesso, ma lo trasformo in un cluster di 3?

Non consideriamo cose come un singolo punto di errore, ma concentriamoci esclusivamente sulla matematica qui. Una delle cose che lo rende un po 'complicato è che se per esempio ho 2 server, la possibilità che entrambi siano spenti è 2 ^ 2, quindi è 1/4; o per 3 che è 2 ^ 3, quindi 1/8. Considerando che ho un tempo di inattività del 5% per ciascuno di questi server, la media totale sarebbe quindi 1/8 di quel 5%?

Come calcoleresti qualcosa del genere?


"Tempo di attività del 95%": che cos'è? So quali sono i 5 giorni o 5 anni di attività. Che cosa è 0,95 uptime? Quali unità?
poige,

1
Perché hai bisogno di saperlo? Qual è il caso d'uso?
ewwhite,

@poige Presumibilmente, "uptime del 95%" significa "l'uptime comprende il 95% del tempo", sebbene se decidessi di essere pedante al riguardo potresti dire che quindi tutto ha ~ 0% di uptime perché non esisterà per sempre .
Fondi Monica's Lawsuit,

1) Presumibilmente l'autore dovrebbe rispondere? ;) 2) Penso che prima di calcolare qualcosa sia meglio capire di cosa si tratta. ;)
poige

Risposte:


11

L'uptime è una cosa scivolosa ... Se vuoi calcolare la disponibilità di un servizio, allora lo è semplicemente

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

Se si dispone di un cluster che fornisce il servizio, la probabilità che il servizio non sia disponibile diminuisce ma il calcolo della disponibilità (tempo di attività) per il servizio rimane lo stesso.


8

La possibilità che un server sia offline è (1 - 0,95) La possibilità che entrambi i server siano offline è (1 - 0,95) * (1 - 0,95) = 0,0025 ecc ...

Quindi, usando il tuo modello e da un punto di vista puramente matematico, uno o entrambi i server dovrebbero aumentare del 99,75% delle volte

Tuttavia, non sono sicuro che l'utilizzo di un tale modello matematico sia il modo corretto di calcolare il tuo potenziale uptime poiché ci sono altri fattori che possono influenzarlo che sono comuni a entrambi i server, ad esempio il 95% potrebbe essere perché il 5% delle volte c'è un'interruzione di corrente che influenzerebbe ENTRAMBI i server, quindi avere un cluster non farebbe alcuna differenza


Ciao Phil La potenza è certamente un componente della disponibilità che può essere mitigato inserendo installazioni in più rack e prendendo energia da fonti diverse, ecc. L'idea è puramente dal punto di vista matematico, poiché ci sono ovviamente più componenti che vanno in questo oltre a pochi server :)
Jeroen Landheer il

8
Il punto è che i calcoli in questo e nella risposta di Jeroen funzionano solo se i tempi di attività sono indipendenti (in senso matematico). Se ci sono correlazioni (ad es. Cavo di alimentazione che alimenta entrambi i rack) le cose non sono così semplici.
TripeHound,

@TripeHound Ecco perché ho scritto la mia risposta :)
Seamus,

5

Questo dipende dal motivo per cui i server sono in calo del 5% delle volte. Se hai la potenza del 95% delle volte, ma i tuoi server sono altrimenti impeccabili, un secondo server nella stessa posizione non aumenta affatto il tempo di attività : se uno si interrompe, entrambi si spengono. Questo è un esempio dei guasti correlati . È probabile che almeno alcuni dei tempi di inattività siano dovuti a errori che riguardano tutti i server insieme (alimentazione ...). Ma alcuni dei tempi di inattività saranno indipendentitra server. Se vuoi farlo correttamente, dovresti occuparti di queste cose separatamente. Quindi vuoi capire la probabilità che il server 1 non abbia un errore indipendente (p) e che il server 2 non abbia un errore indipendente (q) e che non ci sia un errore sistemico che uccide entrambi (r). Sarebbe relativamente sicuro supporre che questi errori siano indipendenti e quindi potresti semplicemente moltiplicarli insieme: p q r è la probabilità che un server sia attivo.

Il problema è che non è possibile utilizzare i dati di uptime effettivi per fornire valori per p, qer, tranne per il fatto che se si dispone solo del server 1 ed è attivo il 95% delle volte, allora p * r = 0,95.


5

Innanzitutto, la disponibilità totale o il tempo di attività di un cluster dipende dalla dimensione necessaria di una parte del cluster per essere attivo affinché l'intero cluster sia considerato "attivo".

  • È sufficiente una macchina funzionante? Ciò significherebbe che ogni singola macchina può prendere il pieno carico se necessario.
  • Devono essere tutti attivi contemporaneamente? Cioè, non c'è ridondanza.
  • O forse due su tre online sono sufficienti? Ciò consentirebbe un carico di lavoro maggiore rispetto al primo caso.

Come hai scoperto, i primi due casi sono abbastanza semplici da calcolare. Lascia che la probabilità che un singolo server sia online in qualsiasi momento p = 0.95. Ora, per tre server, la probabilità che siano tutti online contemporaneamente è p 3 = 0,857375.

Nel caso opposto, in cui almeno una macchina dovrebbe essere attiva in un dato momento, è più facile calcolare invertendo il problema e osservando le probabilità che le macchine siano offline . La probabilità che una singola macchina sia offline è q = 1- p = 0,05, e quindi la probabilità che siano tutte inattive contemporaneamente è q 3 = 0,000125, dando probabilità 1- q 3 = 1- (1- p ) 3 = 0.999875 che almeno uno è attivo.

Il caso 2 su 3 è leggermente più difficile da calcolare. Esistono quattro possibili situazioni in cui almeno due server su tre sono attivi. 1) ABC è attivo, 2) AB è attivo, 3) AC è attivo, 4) BC è attivo. Le probabilità per tutti questi sono, rispettivamente, ppp , ppq , pqp e qpp . Poiché i casi sono disgiunti, le probabilità possono essere sommate, dando un totale A = p 3 + 3 p 2 q = 0.992750.

(Questo può essere esteso a più macchine. I fattori sono i ben noti coefficienti binomiali , quindi contare i diversi casi a mano funziona principalmente come un esercizio.)


Naturalmente, calcoli come questo sono molto più facili da gestire utilizzando un programma per computer pronto all'uso ... È possibile trovare almeno un calcolatore online qui:
http://stattrek.com/online-calculator/binomial.aspx

Inserendo i valori di input: probabilità di successo = 0,95, numero di prove = 3, numero di successi = 2, si ottiene il risultato "Probabilità cumulativa: P (X ≥ 2) = 0.99275". Vengono inoltre forniti alcuni altri valori correlati e lo strumento online semplifica la riproduzione anche con altri numeri.


E sì, tutto quanto sopra presuppone che i server non funzionino in modo indipendente, ovvero a) ho ignorato qualsiasi problema relativo al cluster nel suo insieme, b) non esiste nulla come l'invecchiamento dei componenti che renderebbe probabile il fallimento dei server o quasi allo stesso tempo.


3

Hai un downtime del 5% per ciascun server, quindi lo moltiplichi - 0,05 * 0,05 = 0,0025, dandoti 1-0,0025 = 0,9975 -> uptime del 99%. Con 3 server hai 1-0.000125 = 0.999875> uptime del 99,9%.

Di solito conto la disponibilità del 97% per l'host standalone (con HDD e PSU ridondanti), dando> 99,9% per 2N e> 99,99% per ridondanza 3N.


3

Ho scavato un po 'di più e ho trovato questo pezzo del puzzle.

Utilizzando l'esempio di un server con una disponibilità del 95%, l'aggiunta di un secondo server aumenterebbe la disponibilità a: 95% + (1-95%) * 95% = 99,75%. La logica alla base di ciò è che quando il 1 ° server è inattivo (il 5% delle volte), il secondo server è ancora attivo il 95% delle volte.

L'aggiunta di un terzo server lo ripeterebbe allo stesso modo. I primi 2 insieme sono già disponibili al 99,75%, quindi l'aggiunta del terzo sarebbe: 99,75% + (1-99,75%) * 95% = 99,9875%. E così via e così via. Questo è vicino alla risposta di Phil, ma è ancora un po 'diverso poiché devi prendere il risultato della precedente iterazione e usarlo nella successiva.

Per i componenti che dipendono l'uno dall'altro, è sufficiente moltiplicare le percentuali di disponibilità, quindi se si dispone di 2 componenti che sono disponibili al 50%, si dispone della disponibilità totale del 25% (ovvero il sistema funziona solo quando entrambi i componenti funzionano).


0

Supponendo che il tempo di attività di ciascun server sia indipendente dagli altri, il tempo di attività totale è

1 - (0,05) ^ n

Dove n è il numero di server E 0,05 è la probabilità di inattività di un server

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.