Математически, как рассчитать процент работоспособности, основанный на количестве узлов и их процентах работоспособности?

11

Этот вопрос больше математический, чем вопрос о сервере, но он тесно связан с сервером.

Если у меня есть сервер, который я смог бы гарантировать 95% времени безотказной работы, и я бы поместил этот сервер в кластер из 2, сколько бы было время безотказной работы? Теперь, допустим, я делаю то же самое, но я делаю кластер из 3?

Давайте не будем рассматривать такие вещи, как единственная точка отказа, а просто сосредоточимся здесь на математике. Одна из вещей, которая делает это немного сложным, заключается в том, что если, например, у меня есть 2 сервера, вероятность того, что они оба отключены, составляет 2 ^ 2, то есть 1/4; или для 3 это 2 ^ 3, так что 1/8. Учитывая, что у меня есть время простоя 5% для каждого из этих серверов, будет ли общее среднее значение 1/8 от этих 5%?

Как бы вы рассчитали что-то вроде этого?

Йерун Ландхир
источник
«95% времени безотказной работы» - что это такое? Я знаю, что 5 дней или 5 лет безотказной работы. Что такое 0,95 безотказной работы? Какие единицы?
Пой
1
Почему вы должны знать это? Какой вариант использования?
июня
@poige Предположительно, «время безотказной работы 95%» означает «время безотказной работы составляет 95% времени», хотя, если вы решили быть педантичным, вы могли бы сказать, что, следовательно, у всего есть ~ 0% времени безотказной работы, потому что он не будет существовать все время ,
Фонд Моника иск
1) Предположительно автор должен ответить? ;) 2) Я думаю, прежде чем что-то вычислять, лучше понять, что это такое. ;)
Пой

Ответы:

11

Время работы - это скользкая вещь ... Если вы хотите рассчитать доступность услуги, то это просто

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

Если у вас есть кластер, предоставляющий сервис, то вероятность того, что сервис станет недоступным, снижается, но расчет доступности (времени безотказной работы) сервиса остается прежним.

user9517
источник
8

Вероятность того, что один сервер отключен, составляет (1 - 0,95). Вероятность того, что оба сервера отключены, составляет (1 - 0,95) * (1 - 0,95) = 0,0025 и т. Д.

Таким образом, используя вашу модель и с чисто математической точки зрения один или оба сервера должны работать до 99,75% времени.

Однако я не уверен, что использование такой математической модели является правильным способом определения вашего потенциального времени безотказной работы, поскольку на него могут влиять другие факторы, общие для обоих серверов, т. Е. 95% могут быть из-за 5% времени есть отключение питания, которое повлияет на ОБА серверы, поэтому наличие кластера не имеет значения

Фил
источник
Привет Фил. Энергия, безусловно, является одним из компонентов доступности, который можно уменьшить, поместив установки в несколько стоек и получая питание из разных источников и т. Д. Идея чисто математическая, поскольку в нее входит больше компонентов, чем несколько серверов. :)
Йерун Ландхир
8
Дело в том, что вычисления в этом ответе и ответе Йеруна работают только в том случае, если время работы не зависит (в математическом смысле). Если есть корреляции (например, кабель питания, питающий обе стойки), то все не так просто.
TripeHound
@TripeHound Вот почему я написал свой ответ :)
Симус
5

Это зависит от того, почему ваши серверы не работают 5% времени. Если у вас есть мощность 95% время, но ваши сервера в противном случае безупречны, то второй сервер в том же месте , не увеличивает время бесперебойной работы на всех : если один идет вниз, и идти вниз. Это пример взаимосвязи отказов . Вероятно, что по крайней мере некоторые из ваших простоев происходят из-за ошибок, которые влияют на все серверы вместе (питание ...). Но некоторые простои будут независимымимежду серверами. Если вы хотите сделать это правильно, вам следует разобраться с этими вещами отдельно. Таким образом, вы хотите определить вероятность того, что сервер 1 не имеет независимой ошибки (p), а сервер 2 не имеет независимой ошибки (q) и что нет системной ошибки, которая убивает обоих (r). Было бы относительно безопасно предположить, что эти ошибки независимы, и, таким образом, вы могли бы просто умножить их вместе: p q r - вероятность того, что какой-либо сервер работает.

Проблема в том, что вы не можете использовать фактические данные времени безотказной работы, чтобы дать вам значения для p, q и r, за исключением того, что если у вас есть только сервер 1 и он работает в 95% случаев, тогда p * r = 0,95.

Симус
источник
5

Прежде всего, общая доступность или время работы кластера зависит от того, насколько большая часть кластера должна быть активной, чтобы весь кластер считался «работающим».

  • Достаточно ли одной работающей машины? Это будет означать, что любая отдельная машина может принять полную нагрузку, если это необходимо.
  • Все ли они должны быть активными одновременно? То есть нет избыточности.
  • Или, может быть, два из трех онлайн достаточно? Это позволило бы увеличить нагрузку, чем в первом случае.

Как вы узнали, первые два случая довольно просты для расчета. Пусть вероятность того, что один сервер будет подключен к сети в любой момент времени, p = 0,95. Теперь для трех серверов вероятность того, что они все подключены одновременно, равна p 3 = 0,857375.

В противоположном случае, когда по крайней мере один компьютер должен быть активным в данный момент времени, его легче вычислить, если обратить внимание на проблему и посмотреть на вероятность того, что машины находятся в автономном режиме . Вероятность того, что один компьютер находится в автономном режиме, равна q = 1- p = 0,05, и, следовательно, вероятность того, что все они отключены одновременно, равна q 3 = 0,000125, что дает вероятность 1- q 3 = 1- (1- p ). 3 = 0,999875, что по крайней мере один работает.

Случай 2 из 3 вычислить немного сложнее. Существует четыре возможных ситуации, когда работают как минимум два из трех серверов. 1) ABC работают, 2) AB работают, 3) AC работают, 4) BC работают. Вероятности для всех этих, соответственно, ppp , ppq , pqp и qpp . Поскольку случаи не пересекаются, вероятности могут быть сложены вместе, давая в итоге A = p 3 + 3 p 2 q = 0.992750.

(Это может быть расширено до большего количества машин. Факторами являются хорошо известные биномиальные коэффициенты , поэтому подсчет различных случаев вручную работает в основном как упражнение.)


Конечно, с такими расчетами гораздо проще справиться с помощью готовой компьютерной программы ... По крайней мере, один онлайн-счетчик можно найти здесь:
http://stattrek.com/online-calculator/binomial.aspx

Вводя входные значения: вероятность успеха = 0,95, количество попыток = 3, количество успехов = 2, мы получаем результат «Совокупная вероятность: P (X ≥ 2) = 0,99275». Также приведены некоторые другие связанные значения, а онлайн-инструмент также позволяет легко играть с другими числами.


И да, все вышеперечисленное предполагает, что серверы выходят из строя независимо, то есть а) я игнорировал любые проблемы, влияющие на кластер в целом, б) нет ничего подобного устареванию компонентов, которое могло бы привести к сбою серверов при или почти одновременно.

ilkkachu
источник
3

У вас есть 5% времени простоя на каждом сервере, поэтому вы умножаете его - 0,05 * 0,05 = 0,0025, что дает вам 1-0,0025 = 0,9975 -> 99% времени безотказной работы. С 3 серверами у вас есть 1-0.000125 = 0.999875> 99,9% безотказной работы.

Я обычно учитываю доступность 97% для автономного хоста (с резервным жестким диском и блоком питания), что дает> 99,9% для 2N и> 99,99% для 3N избыточности.

DukeLion
источник
3

Я еще покопался и нашел этот кусочек головоломки.

На примере сервера с доступностью 95% добавление второго сервера увеличит доступность до: 95% + (1-95%) * 95% = 99,75%. Логика заключается в том, что когда 1-й сервер не работает (5% времени), второй сервер все еще работает в 95% времени.

Добавление третьего сервера будет повторять это так же. Первые 2 вместе уже доступны на 99,75%, поэтому добавление третьего будет: 99,75% + (1-99,75%) * 95% = 99,9875%. И так далее. Это близко к ответу Фила, но все же немного по-другому, так как вам нужно взять результат предыдущей итерации и использовать его в следующей.

Для компонентов, зависящих друг от друга, вы просто умножаете проценты доступности, поэтому, если у вас есть 2 компонента, которые доступны на 50%, у вас будет общая доступность на 25% (т.е. система работает только тогда, когда работают оба компонента).

Йерун Ландхир
источник
0

Предполагая, что время работы каждого сервера не зависит от других, общее время безотказной работы составляет

1 - (0,05) ^ n

Где n - количество серверов, а 0,05 - вероятность простоя одного сервера.

Хани
источник