« View all new features in
Mathematica
9
◄
previous
|
next
►
New in
Mathematica
9
›
Reliability
Data Center Reliability
A data center needs 20 servers to work, one power supply, one cooling system, and one network connection. The power supply has a standby component. The network connection consists of two parallel connections.
In[1]:=
X
\[ScriptCapitalR]hdd = ReliabilityDistribution[ BooleanCountingFunction[{2, 3}, {x, y, z}], {{x, WeibullDistribution[4, 1.25 10^6]}, {y, WeibullDistribution[4, 1.25 10^6]}, {z, WeibullDistribution[4, 1.25 10^6]}}];
In[2]:=
X
\[ScriptCapitalD]cpu = ExponentialDistribution[1/30000]; \[ScriptCapitalD]ram = WeibullDistribution[.82, 2500];
In[3]:=
X
\[ScriptCapitalR]Server = ReliabilityDistribution[ hdd \[And] cpu \[And] ram, {{hdd, \[ScriptCapitalR]hdd}, {cpu, \[ScriptCapitalD]cpu}, \ {ram, \[ScriptCapitalD]ram}}];
In[4]:=
X
\[ScriptCapitalS]PowerSupply = StandbyDistribution[ ExponentialDistribution[ 1/5000], {ExponentialDistribution[1/2000]}];
In[5]:=
X
\[ScriptCapitalD]Network = ParetoDistribution[1500, 10]; \[ScriptCapitalD]Cooling = ExponentialDistribution[1/5000];
In[6]:=
X
servervars = Table[Subscript[s, i], {i, 20}]; serverdists = Table[{i, \[ScriptCapitalR]Server}, {i, servervars}]; \[ScriptCapitalR]Datacenter = ReliabilityDistribution[(And @@ servervars) \[And] power \[And] (net1 \[Or] net2) \[And] cooling, Join[serverdists, {{power, \[ScriptCapitalS]PowerSupply}, {net1, \ \[ScriptCapitalD]Network}, {net2, \[ScriptCapitalD]Network}, \ {cooling, \[ScriptCapitalD]Cooling}}]];
In[7]:=
X
mttf = NExpectation[t, t \[Distributed] \[ScriptCapitalR]Datacenter];
In[8]:=
X
failures = RandomVariate[\[ScriptCapitalR]Datacenter, 100];
In[9]:=
X
Grid[{{"MTTF", "SurvivalFunction", "Simulation"}, {mttf, Plot[Evaluate@SurvivalFunction[\[ScriptCapitalR]Datacenter, t], {t, 0, 100}, Filling -> Axis, PlotRange -> {0, 1}, Mesh -> {{mttf}}, MeshShading -> {Automatic, ColorData["Crayola"]["Mahogany"]}, MeshStyle -> PointSize[Medium]], ListPlot[{failures, {{0, mttf}, {100, mttf}}}, Joined -> {False, True}, Filling -> Axis, AxesOrigin -> {0, 0}]}}, Frame -> All, FrameStyle -> Gray, Spacings -> {2, 2}, Background -> {None, {LightBlue}}, BaseStyle -> {FontFamily -> "Verdana", FontSize -> 12}]
Out[9]=