web-dev-qa-db-ja.com

数学的に、ノードの数とそれぞれの稼働時間の割合に基づいて稼働時間の割合を計算する方法は?

この質問はサーバーの質問よりも数学の質問ですが、サーバーに強く関連しています。

95%の稼働時間を保証できるサーバーがあり、そのサーバーを2のクラスターに配置した場合、稼働時間はどのくらいになりますか?さて、私は同じことをしますが、それを3のクラスターにしたとしましょう。

単一障害点などのことは考慮せず、ここでは純粋に数学に焦点を当てましょう。これを少し複雑にすることの1つは、たとえば2台のサーバーがある場合、両方がオフになる可能性が2 ^ 2であるため、1/4になることです。または3の場合は2 ^ 3なので、1/8になります。これらのサーバーごとに5%のダウンタイムがあるとすると、合計平均はその5%の1/8になりますか?

このようなものをどのように計算しますか?

11
Jeroen Landheer

私はさらに掘り下げて、このパズルのピースを見つけました。

可用性が95%のサーバーの例を使用して、2番目のサーバーを追加すると、可用性は95%+(1-95%)* 95%= 99.75%に向上します。これの背後にあるロジックは、最初のサーバーがダウンしているとき(時間の5%)、2番目のサーバーが時間の95%をまだアップしているということです。

3番目のサーバーを追加すると、同じ方法でこれが繰り返されます。最初の2つはすでに99.75%利用可能であるため、3つ目を追加すると、99.75%+(1-99.75%)* 95%= 99.9875%になります。などなど。これはPhilの答えに近いですが、前の反復の結果を取得して次の反復で使用する必要があるため、多少異なります。

相互に依存しているコンポーネントの場合は、可用性のパーセンテージを単純に乗算するため、50%の可用性がある2つのコンポーネントがある場合、合計の可用性は25%になります(つまり、両方のコンポーネントが機能する場合にのみシステムが機能します)。

3
Jeroen Landheer

稼働時間は滑りやすいものです... serviceの可用性を計算する場合、それは単に

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

サービスを提供するクラスターがある場合、サービスが利用できなくなる可能性は低くなりますが、サービスの可用性(稼働時間)の計算は同じままです。

11
user9517

1つのサーバーがオフラインになる可能性は(1-0.95)です。両方のサーバーがオフラインになる可能性は(1-0.95)*(1-0.95)= 0.0025などです...

したがって、モデルを使用して、純粋に数学的な観点から見ると、サーバーの1つまたは両方が99.75%の時間で稼働しているはずです。

ただし、両方のサーバーに共通する他の要因、つまり95%が5%の確率で稼働時間に影響する可能性があるため、このような数学的モデルを使用することが、稼働時間の潜在的な可能性を解決する正しい方法であるかどうかはわかりません。両方のサーバーに影響を与える停電があるため、クラスターがあっても違いはありません

8
Phil

これは、サーバーが5%の時間ダウンしている理由によって異なります。 95%の確率で電力を使用しているが、サーバーに問題がない場合、同じ場所にある2番目のサーバーは稼働時間を増加させませんまったく:1つがダウンすると、両方がダウンします。これは、失敗の例です相関。ダウンタイムの少なくとも一部は、すべてのサーバーに影響を与えるエラー(電力...)が原因である可能性があります。しかし、ダウンタイムの一部はサーバー間で独立になります。あなたがそれを適切にしたいなら、あなたはこれらのものを別々に扱うべきです。したがって、サーバー1に独立したエラー(p)がなく、サーバー2に独立したエラー(q)がなく、両方を強制するシステムエラー(r)がない確率を計算する必要があります。これらのエラーは独立していると仮定しても比較的安全です。したがって、それらを掛け合わせるだけです。pq rは、一部のサーバーが稼働している確率です。

問題は、実際の稼働時間データを使用してp、q、およびrの値を取得することはできません。ただし、サーバー1のみがあり、95%の時間で稼働している場合は、p * r = 0.95です。

5
Seamus

まず第一に、クラスターの総可用性または稼働時間は、クラスター全体が「稼働中」と見なされるためにクラスターの一部をアクティブにするために必要な大きさによって異なります。

  • 機能している1台のマシンで十分ですか?つまり、必要に応じて、単一のマシンで全負荷をかけることができます。
  • それらすべてを同時にアクティブにする必要がありますか?つまり、冗長性はありません。
  • または、オンラインの3つのうち2つで十分でしょうか?これにより、最初のケースよりも大きなワークロードが可能になります。

ご存知のように、最初の2つのケースの計算は非常に簡単です。単一のサーバーがいつでもオンラインになる確率p= 0.95とします。現在、3つのサーバーの場合、それらがすべて同時にオンラインになる確率はpです。 = 0.857375。

逆の場合、少なくとも1台のマシンが同時にアクティブである必要がある場合、問題を反転させ、マシンの確率がoffline。 1台のマシンがオフラインになる確率はq= 1-pです。 = 0.05、したがって、それらすべてが同時にダウンする確率はqです。 = 0.000125、確率1-q = 1 1-p = 0.999875、少なくとも1つは稼働しています。

3ケースのうち2ケースは、計算が少し難しいです。 3つのサーバーのうち少なくとも2つが稼働している可能性のある状況は4つあります。 1)ABCがアップ、2)ABがアップ、3)ACがアップ、4)BCがアップ。これらすべての確率は、それぞれpppppqpqpおよびqppケースはばらばらなので、確率を合計して、合計A =p + 3p2q= 0.992750。

(これはより多くのマシンに拡張できます。要因はよく知られている---(二項係数 であるため、手作業でさまざまなケースを数えることは、ほとんどが演習として機能します)


もちろん、このような計算は既製のコンピュータプログラムを使用することで処理がはるかに簡単になります...少なくとも1つのオンライン計算機がここにあります:
http://stattrek.com/online-calculator/binomial.aspx

入力値を入力すると、成功の確率= 0.95、試行の数= 3、成功の数= 2、「累積確率:P(X≥2)= 0.99275」という結果が得られます。その他の関連する値もいくつか示されています。オンラインツールを使用すると、他の数値も簡単に操作できます。


そして、はい、上記のすべてはサーバーが独立して失敗することを前提としています。つまり、a)クラスター全体に影響を与える問題を無視しました。b)サーバーが故障する可能性のあるコンポーネントのエージングのようなものはありません。またはほぼ同時に。

5
ilkkachu

サーバーごとに5%のダウンタイムがあるので、それを乗算します-0.05 * 0.05 = 0.0025、1-0.0025 = 0.9975-> 99%のアップタイムを与えます。サーバーが3台ある場合、稼働時間は1-0.000125 = 0.999875> 99.9%です。

通常、スタンドアロンホスト(冗長HDDとPSUを使用)の可用性は97%であり、2Nで99.9%以上、3N冗長で99.99%を超えています。

3
DukeLion

各サーバーのアップタイムが他のサーバーから独立していると仮定すると、合計のアップタイムは

ここで、nはサーバーの数であり、0.05は1つのサーバーのダウンタイム確率です。

0
Hani