数据中心的可靠性
一个数据中心需要20台服务器、一个电源、一个冷却系统和一个网络连接. 电源有一个备用组件.网络连接由两条并行连接组成.
ℛ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]}}];𝒟cpu = ExponentialDistribution[1 / 30000];
𝒟ram = WeibullDistribution[.82, 2500];ℛServer = ReliabilityDistribution[hdd∧cpu∧ram, {{hdd, ℛhdd}, {cpu, 𝒟cpu}, {ram, 𝒟ram}}];𝒮PowerSupply = StandbyDistribution[ExponentialDistribution[1 / 5000], {ExponentialDistribution[1 / 2000]}];𝒟Network = ParetoDistribution[1500, 10];
𝒟Cooling = ExponentialDistribution[1 / 5000];servervars = Table[Subscript[s, i], {i, 20}];
serverdists = Table[{i, ℛServer}, {i, servervars}];
ℛDatacenter = ReliabilityDistribution[(And@@servervars)∧power∧(net1∨net2)∧cooling, Join[serverdists, {{power, 𝒮PowerSupply}, {net1, 𝒟Network}, {net2, 𝒟Network}, {cooling, 𝒟Cooling}}]];mttf = NExpectation[t, tℛDatacenter];failures = RandomVariate[ℛDatacenter, 100];Grid[{{"MTTF", "SurvivalFunction", "Simulation"}, {mttf, Plot[Evaluate@SurvivalFunction[ℛ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, {StandardBlue}}, BaseStyle -> {FontFamily -> "Verdana", FontSize -> 12}]