Matematycznie, jak obliczyć procent czasu sprawności na podstawie liczby węzłów i odpowiadającego im procentu czasu sprawności?

11

To pytanie jest bardziej pytaniem matematycznym niż pytaniem serwera, ale jest silnie związane z serwerem.

Gdybym miał serwer, który byłbym w stanie zagwarantować 95% czasu pracy i umieściłbym ten serwer w klastrze 2, jaki byłby wtedy czas pracy? Powiedzmy, że robię to samo, ale czynię to zgrupowaniem 3?

Nie bierzmy pod uwagę takich rzeczy jak pojedynczy punkt niepowodzenia, ale skupmy się wyłącznie na matematyce. Jedną z rzeczy, która sprawia, że ​​jest to trochę skomplikowane, jest to, że jeśli na przykład mam 2 serwery, szansa, że ​​oba są wyłączone, wynosi 2 ^ 2, czyli 1/4; lub dla 3 to 2 ^ 3, czyli 1/8. Biorąc pod uwagę, że mam 5% przestoju dla każdego z tych serwerów, czy całkowita średnia wyniosłaby wtedy 1/8 z tych 5%?

Jak obliczysz coś takiego?

Jeroen Landheer
źródło
„95% czasu pracy” - co to jest? Wiem, co to jest 5 dni lub 5 lat przestojów. Co to jest czas sprawności 0,95? Jakie jednostki?
poige
1
Dlaczego musisz to wiedzieć? Jaki jest przypadek użycia?
ewwhite
@poige Prawdopodobnie „95% czasu pracy” oznacza „czas pracy komputera stanowi 95% czasu”, ale jeśli zdecydujesz się być pedantyczny, możesz powiedzieć, że dlatego wszystko ma ~ 0% czasu pracy, ponieważ nie będzie istniał przez cały czas .
Pozew Fund Moniki w dniu
1) Prawdopodobnie autor powinien odpowiedzieć? ;) 2) Myślę, że przed obliczeniem czegoś lepiej zrozumieć, co to jest. ;)
poige

Odpowiedzi:

11

Uptime to śliska rzecz ... Jeśli chcesz obliczyć dostępność usługi , to po prostu

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

Jeśli masz klaster świadczący usługę, prawdopodobieństwo, że usługa stanie się niedostępna, spada, ale obliczenia dostępności (dostępności) dla usługi pozostają takie same.

użytkownik9517
źródło
8

Szansa, że ​​jeden serwer będzie offline (1 - 0,95) Szansa, że ​​oba serwery będą offline (1 - 0,95) * (1 - 0,95) = 0,0025 itd.

Tak więc używając twojego modelu i z czysto matematycznego punktu widzenia jeden lub oba serwery powinny zajmować 99,75% czasu

Nie jestem jednak pewien, czy użycie takiego modelu matematycznego jest właściwym sposobem na sprawdzenie potencjalnego czasu pracy bez przestojów, ponieważ mogą na niego wpływać inne czynniki, które są wspólne dla obu serwerów, tj. 95% może być spowodowane tym, że 5% czasu nastąpiło odcięcie zasilania, które wpłynęłoby na OBA serwery, więc posiadanie klastra nie miałoby znaczenia

Phil
źródło
Cześć Phil. Moc jest z pewnością jednym z elementów dostępności, który można złagodzić, umieszczając instalacje w wielu szafach i pobierając energię z różnych źródeł itp. Pomysł jest czysto matematyczny, ponieważ w grę wchodzi oczywiście więcej komponentów niż tylko kilka serwerów :)
Jeroen Landheer
8
Chodzi o to, że obliczenia w tym i odpowiedzi Jeroena działają tylko wtedy, gdy czasy działania są niezależne (w sensie matematycznym). Jeśli istnieją korelacje (np. Kabel zasilający oba stojaki), to nie jest tak proste.
TripeHound,
@TripeHound Dlatego napisałem odpowiedź :)
Seamus,
5

Zależy to od tego, dlaczego Twoje serwery tracą 5% czasu. Jeśli masz moc 95% czasu, ale serwery są poza tym bez zarzutu, a drugi serwer w tym samym miejscu nie zwiększa swój czas pracy w ogóle : jeśli ktoś idzie w dół, zarówno w dół. To jest przykład korelacji awarii . Jest prawdopodobne, że przynajmniej część twojego przestoju jest spowodowana błędami, które wpływają na wszystkie serwery razem (moc ...). Ale niektóre przestoje będą niezależnemiędzy serwerami. Jeśli chcesz to zrobić poprawnie, powinieneś poradzić sobie z tymi sprawami osobno. Chcesz więc ustalić prawdopodobieństwo, że serwer 1 nie ma błędu niezależnego (p) i że serwer 2 nie ma błędu niezależnego (q) i że nie ma błędu systemowego, który zabiłby oba (r). Można względnie bezpiecznie założyć, że błędy te są niezależne, a zatem można je po prostu pomnożyć: p q r to prawdopodobieństwo, że jakiś serwer nie działa.

Problem polega na tym, że nie można użyć rzeczywistych danych czasu działania, aby podać wartości p, q i r, z wyjątkiem tego, że jeśli masz tylko serwer 1 i jest on w 95% przypadków większy, to p * r = 0,95.

Seamus
źródło
5

Przede wszystkim całkowita dostępność lub czas działania klastra zależy od tego, jak duża część klastra jest potrzebna do działania, aby cały klaster mógł zostać uznany za „działający”.

  • Czy wystarczy jedna działająca maszyna? Oznaczałoby to, że każda pojedyncza maszyna może w razie potrzeby w pełni załadować.
  • Czy wszystkie muszą być aktywne jednocześnie? Oznacza to, że nie ma redundancji.
  • A może dwa z trzech online są wystarczające? Pozwoliłoby to na większe obciążenie pracą niż w pierwszym przypadku.

Jak się dowiedziałeś, pierwsze dwa przypadki są dość łatwe do obliczenia. Niech prawdopodobieństwo, że pojedynczy serwer będzie w trybie online w danym momencie p = 0,95. Teraz dla trzech serwerów prawdopodobieństwo, że wszystkie są jednocześnie w trybie online, wynosi p 3 = 0,857375.

W przeciwnym przypadku, gdy co najmniej jedna maszyna powinna być aktywna w danym momencie, łatwiej jest obliczyć, odwracając problem i patrząc na prawdopodobieństwo, że maszyny są w trybie offline . Prawdopodobieństwo, że pojedyncza maszyna jest w trybie offline, wynosi q = 1 p = 0,05, a zatem prawdopodobieństwo, że wszystkie one spadną w tym samym czasie wynosi q 3 = 0,000125, co daje prawdopodobieństwo 1- q 3 = 1- (1 p ) 3 = 0,999875, że co najmniej jeden jest w górę.

Przypadek 2 z 3 jest nieco trudniejszy do obliczenia. Istnieją cztery możliwe sytuacje, w których działają co najmniej dwa z trzech serwerów. 1) ABC są w górę, 2) AB są w górę, 3) AC są w górę, 4) BC są w górę. Prawdopodobieństwem dla nich wszystkich jest odpowiednio ppp , ppq , pqp i qpp . Ponieważ przypadki są rozłączne, prawdopodobieństwa można sumować razem, dając w sumie A = p 3 + 3 p 2 q = 0,992750.

(Można to rozszerzyć na więcej maszyn. Czynnikami są dobrze znane współczynniki dwumianowe , więc ręczne liczenie różnych przypadków działa głównie jako ćwiczenie).


Oczywiście obliczenia takie jak ten są o wiele łatwiejsze do wykonania przy użyciu gotowego programu komputerowego ... Przynajmniej jeden kalkulator online można znaleźć tutaj:
http://stattrek.com/online-calculator/binomial.aspx

Wprowadzając wartości wejściowe: prawdopodobieństwo sukcesu = 0,95, liczba prób = 3, liczba sukcesów = 2, otrzymujemy wynik „Skumulowane prawdopodobieństwo: P (X ≥ 2) = 0,99275”. Podano również inne powiązane wartości, a narzędzie online ułatwia grę z innymi liczbami.


I tak, wszystkie powyższe założenia zakładają, że serwery ulegają awarii niezależnie, to znaczy: a) zignorowałem wszelkie problemy mające wpływ na klaster jako całość, b) nie ma czegoś takiego jak starzenie się komponentów, które mogłoby spowodować awarię serwerów lub prawie w tym samym czasie.

ilkkachu
źródło
3

Masz 5% przestojów dla każdego serwera, więc pomnóż go - 0,05 * 0,05 = 0,0025, co daje 1-0,0025 = 0,9975 -> 99% czasu sprawności. Przy 3 serwerach masz 1-0.000125 = 0,999875> 99,9% czasu sprawności.

Zwykle odpowiadam za 97% dostępności autonomicznego hosta (z redundantnym dyskiem twardym i zasilaczem), co daje> 99,9% dla 2N i> 99,99% dla redundancji 3N.

DukeLion
źródło
3

Jeszcze trochę kopałem i znalazłem ten kawałek układanki.

Na przykładzie serwera o dostępności 95% dodanie drugiego serwera zwiększy dostępność do: 95% + (1-95%) * 95% = 99,75%. Logika tego polega na tym, że gdy pierwszy serwer jest wyłączony (5% czasu), drugi serwer nadal działa w 95% przypadków.

Dodanie trzeciego serwera wykonałoby iterację w ten sam sposób. Pierwsze 2 razem są już dostępne w 99,75%, więc dodanie trzeciego byłoby: 99,75% + (1-99.75%) * 95% = 99,9875%. I tak dalej i tak dalej. Jest to bliskie odpowiedzi Phila, ale wciąż nieco inne, ponieważ musisz wziąć wynik z poprzedniej iteracji i użyć jej w następnej.

W przypadku komponentów, które są od siebie zależne, wystarczy pomnożyć procent dostępności, więc jeśli masz 2 komponenty, które są w 50% dostępne, masz 25% całkowitej dostępności (tj. System działa tylko wtedy, gdy oba komponenty działają).

Jeroen Landheer
źródło
0

Zakładając, że czas działania każdego serwera jest niezależny od pozostałych, całkowity czas działania jest taki

1 - (0,05) ^ n

Gdzie n to liczba serwerów, a 0,05 to prawdopodobieństwo przestoju jednego serwera

Hani
źródło