在数学上,如何根据多个节点及其各自的正常运行时间百分比来计算正常运行时间百分比?


11

这个问题更多地是数学问题,而不是服务器问题,但它与服务器密切相关。

如果我有一台能够保证95%正常运行时间的服务器,并且将该服务器放在2个群集中,那么正常运行时间将是多少?现在,让我说我也做同样的事,但我将其设为3的簇吗?

我们不考虑单点故障之类的问题,而只关注这里的数学。使事情变得复杂的一件事是,例如,如果我有2台服务器,那么它们都关闭的机会是2 ^ 2,因此是1/4。或3等于2 ^ 3,即1/8。考虑到我对这些服务器中的每一个都有5%的停机时间,那么总平均值是否就是那5%的1/8?

您将如何计算这样的数据?


“ 95%的正常运行时间”-thaaat是什么?我知道5天或5年的正常运行时间。0,95正常运行时间是多少?什么单位?
poige '16

1
为什么需要知道这一点?用例是什么?
ewwhite

@poige大概是,“ 95%正常运行时间”的意思是“正常运行时间占95%的时间”,但是如果您决定对它进行研究,则可以说所有东西的正常运行时间均为〜0%,因为它不会一直存在。
Fund Monica的诉讼

1)想必作者应该回答?;)2)我认为在计算事物之前最好先了解它是什么。;)
poige

Answers:


11

正常运行时间是一件很滑的事...如果您想计算服务的可用性,那很简单

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

如果您有一个提供服务的群集,则该服务不可用的可能性降低了,但是该服务的可用性(正常运行时间)计算保持不变。


8

一台服务器脱机的机会是(1-0.95)两台服务器脱机的机会是(1-0.95)*(1-0.95)= 0.0025等...

因此,使用模型并从纯粹的数学角度来看,一台或两台服务器的运行时间应为99.75%

但是,我不确定使用这样的数学模型是确定潜在正常运行时间的正确方法,因为还有其他因素可能会影响该正常运行时间,这对于两个服务器都是相同的,即95%可能是因为5%的时间断电会影响两台服务器,因此拥有集群不会造成任何影响


嗨,菲尔。电源当然是可用性的一个组成部分,可以通过将安装放在多个机架中并从不同的来源等获取电源来缓解。这一想法纯粹是从数学的角度出发,因为显然有更多的组件要投入使用,而不仅仅是几个服务器:)
Jeroen Landheer

8
关键是,只有正常运行时间是独立的(在数学意义上),此和Jeroen答案中的计算才有效。如果存在相关性(例如为两个机架供电的电缆),那么事情就不会那么简单了。
TripeHound16年

@TripeHound这就是为什么我写我的答案的原因:)
Seamus

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- p3 = 0.999875至少有一个上升。

三分之二的案例很难计算。在四种可能的情况下,三台服务器中至少有两台处于运行状态。1)ABC上升,2)AB上升,3)AC上升,4)BC上升。所有这些的概率分别是pppppqpqpqpp。由于情况是不相交的,因此可以将概率加在一起,得出总A = p 3 + 3 p 2 q = 0.992750。

(可以将其扩展到更多机器。这些因素是众所周知的二项式系数,因此,手工计算不同的情况主要是一种练习。)


当然,这样的计算是通过使用现成的计算机程序来处理要容易得多......至少在一个在线calculater可以在这里找到:
http://stattrek.com/online-calculator/binomial.aspx

输入输入值:成功概率= 0.95,试验次数= 3,成功次数= 2,我们得到结果“累积概率:P(X≥2)= 0.99275”。还提供了其他一些相关的值,并且在线工具也使您可以轻松地使用其他数字。


是的,以上所有假设均假设服务器独立发生故障,这是a)我忽略了影响整个集群的所有问题,b)组件老化等任何事情都不会使服务器在发生故障时发生故障或几乎同时。


3

每个服务器的停机时间为5%,因此您将其乘以-0.05 * 0.05 = 0.0025,则得出1-0.0025 = 0.9975-> 99%的停机时间。使用3台服务器,您的1-10,000125 = 0.999875正常运行时间> 99.9%。

我通常将独立主机(带有冗余HDD和PSU)的可用性提高到97%,将2N的可用性提高到99.9%,将3N的冗余提高到99.99%。


3

我做了一些进一步的挖掘,发现了这个难题。

以具有95%可用性的服务器为例,然后添加第二台服务器会将可用性提高到:95%+(1-95%)* 95%= 99.75%。其背后的逻辑是,当第一台服务器关闭(5%的时间)时,第二台服务器仍然处于95%的时间。

添加第三台服务器将以相同的方式进行迭代。前两个加在一起已经可以使用99.75%,因此将第三个加在一起将是:99.75%+(1-99.75%)* 95%= 99.9875%。等等等等。这与Phil的答案很接近,但是仍然有些不同,因为您需要获取上一个迭代的结果并在下一个迭代中使用它。

对于彼此依赖的组件,您只需将可用性百分比相乘,因此,如果您有2个组件的可用性为50%,则总可用性为25%(即系统仅在两个组件都工作时才起作用)。


0

假设每个服务器的正常运行时间独立于其他服务器,则总正常运行时间为

1-(0.05)^ n

其中n是服务器数量,0.05是一台服务器的停机概率

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.