计算机系统基础知识_可靠性

概述

对元器件进行寿命试验并根据实际资料统计得知,元器件的可靠性分为3个阶段:开始阶段,元器件工作处于不稳定状态,失效率较高;第二阶段,元器件正常工作,失效率最低,基本保持常数;第三阶段,元器件开始老化,失效率又重新增长;这个过程称之为“浴盆曲线”。

由于计算机的硬件故障通常是元器件失效引起的,因此计算机也遵循该规律,为了对计算机的可靠性进行评估,因此需要了解一些计算机可靠性的特性。

计算机可靠性

计算机系统的可靠性是指从运行时间(t=0t=0)到某时刻tt这段时间内能正常运行的概率R(t)R(t)。而失效率是指单位时间内失效的元件数与元件总数的比例,用λ\lambda表示,当其为常数时,可靠性与失效率的关系为
R(t)=eλt R(t) = e ^{- \lambda t}
典型的失效率与时间的关系曲线如下图:

计算机系统基础知识_可靠性

两次故障之间系统能正常工作的时间的平均值称为平均无故障时间(MTBF, Mean Time Between Failure),即:
MTBF=1/λ MTBF = 1 / \lambda
通常用 平均修复时间(MTTR, Mean Time To Repair) 来表示计算机的可维修性,指从故障发生到机器修复平均所需时间。

计算机的可用性指的是计算机使用效率,它以系统在执行任务的任意时刻能正常工作的概率A来表示,即
A=MTBFMTBF+MTTR A = \frac{MTBF}{MTBF+MTTR}
计算机的RAS就是指可靠性(Reliability),可用性(Availability),可维护性(Serviceability)三个指标,用它们来衡量一个计算机系统的整体可靠性。

但实际上除了元器件引发的故障还有工艺、逻辑等多因素。因此不同的厂家使用相同的元器件生产的机器其可靠性和MTBF可能差距也十分巨大。

计算机可靠性模型

计算机系统是一个复杂的系统,影响到可靠性的因素非常复杂,很难直接对其的可靠性进行分析。但通过建立合适的数学模型,把大系统分割,就可以简化其分析过程。

常见的系统可靠性数学模型有以下三种:串联系统、并联系统、N模冗余系统。

串联系统

假定一个系统是由N个子系统构成,而且并仅且只有所有子系统都能正常工作时系统才能正常工作,这种系统称为串联系统,如下图。

计算机系统基础知识_可靠性

设各个子系统的可靠性用R1,R2,R3,,RNR_1, R_2, R_3, \dots, R_N​来表示,则系统可靠性由下式求得:
R=R1×R2×R3××RN R = R_1 \times R_2 \times R_3 \times \dots \times R_N
如果各个子系统的失效率分别用λ1,λ2,λ3,,λN\lambda_1, \lambda_2, \lambda_3, \dots, \lambda_N来表示,则系统的失效率由下式求得:
λ=λ1+λ2+λ3++λN \lambda = \lambda_1 + \lambda_2 + \lambda_3 + \dots + \lambda_N

举个例子:

设计算机系统由CPU、存储器、I/O三部分组成,其可靠性分别为0.95、0.9、0.85,求计算机系统的可靠性。

解:系统可靠性是用各子部件的可靠性相乘得出,因此答案为:0.95×0.9×0.85=0.730.95 \times 0.9 \times 0.85 = 0.73,因此该系统的可靠性为0.73。

并联系统

假定一个系统由N个子系统构成,但只要有一个能正常工作,系统就能正常工作,这种系统称为并联系统,如下图。

计算机系统基础知识_可靠性

设各个子系统的可靠性用R1,R2,R3,,RNR_1, R_2, R_3, \dots, R_N来表示,则系统可靠性由下式求得:
R=1(1R1)(1R2)(1RN) R= 1-(1-R_1)(1-R_2)\dots(1-R_N)
假设所有子系统的失效率均为λ\lambda,则系统失效率μ\mu​可由下式求得:
μ=11λ×j=1N1j \mu = \frac{1}{\frac{1}{\lambda} \times \sum_{j=1}^N \frac{1}{j}}
在并联系统中,只有一个子系统就能正常工作,因此其余N-1个子系统都是冗余子系统,随着冗余子系统的增加,系统的MTBF也会增加。

举个例子:

假设一个系统由3个相同的子系统组成,其可靠性为0.9,平均无故障时间为10000小时,求系统的可靠性和平均无故障时间。

解:由于是3个完全相同的子系统,那么其的可靠性为:1(10.9)3=0.9991-(1-0.9)^3 = 0.999​,因此系统可靠性为0.999。

而系统的MTBF为:1110000×(1+12+13)18333\frac{1}{\frac{1}{10000} \times (1+ \frac{1}{2} + \frac{1}{3})} \approx 18333​小时。

N模冗余系统

假定一个系统有N(N=2n+1)个相同的子系统组成和一个表决器组成,表决器会把多个子系统中多数相同结果的作为系统输出。在N个子系统中,只要有n+1(即超过半数)或以上的子系统能正常工作,系统就能正常工作。

假设表决器是完全可靠的,每个子系统的可靠性为R1R_1,则N模冗余系统的可靠性为:
R=i=n+1N(iN)×R1i(1R1)N1 R = \sum_{i=n+1}^N (\frac{i}{N}) \times R_1^i(1-R_1)^{N-1}
其中(iN)(\frac{i}{N})表示从N个元素里取i个元素的组合数。