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?
źródło
Odpowiedzi:
Uptime to śliska rzecz ... Jeśli chcesz obliczyć dostępność usługi , to po prostu
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.
źródło
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
źródło
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.
źródło
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”.
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.
źródło
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.
źródło
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ą).
źródło
Zakładając, że czas działania każdego serwera jest niezależny od pozostałych, całkowity czas działania jest taki
Gdzie n to liczba serwerów, a 0,05 to prawdopodobieństwo przestoju jednego serwera
źródło