系统的可用性(System Usability),即系统服务不中断运行时间占实际运行时间的比例。
系统可用性取决于系统的可靠性(MTTF)及可维护性(MTTR)的高低,其中可靠性是指系统服务多久不中断,可维护性是指服务中断后多久可恢复。那这3者是怎样的关系呢?
1 |
|
MTTF:平均无故障时间
MTTR:平均故障修复时间
MTBF:平均故障间隔时间
其中,MTBF = MTTF + MTTR,所以系统可用性也可以描述如下:
1 |
|
以下是系统可用性与停服务时间的一个关系图:
可用性分类 | 可用水平 | 每年停服务时间 |
---|---|---|
容错可用性 | 99.9999 | < 1min |
极高可用性 | 99.999 | 5min |
故障自动回复能力的可用性 | 99.99 | 53min |
高可用性 | 99.9 | 8.8h |
商品可用性 | 99 | 43.8h |
如何提高系统的可用性呢?本质就是如何提高系统的可靠性和可维护性!
(1) 对于系统中某个节点而言(可能是一台服务器、一个组件、或者一个功能模块),要求代码健壮、性能优、硬件配置高等;
(2) 对于整个系统而言,我们可以使用集群技术,这里集群分2类,一是高可用集群,二是负载集群;
(3) 如果说系统无Bug或不出问题,是不可能的,所以当出现故障时快速解决显得很重要,也就是可维护性要高,尽可能做到:快速发现问题、定位问题、解决问题,这里依赖于监控(监控很重要),不能依赖于用户反馈,更重要的是时刻优化维护流程中不合理的地方;
总结:系统的可用性不是测试出来的,而是计算出来的,它是指单位时间内一个比例值,不代表所有时候。