码迷,mamicode.com
首页 > 其他好文 > 详细

老李分享:系统可用性评估

时间:2016-03-01 17:13:58      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:

移动互联网时代,似乎大家都在强调架构或服务的高可用,那什么是高可用性呢?

首先,我们来了解下什么是系统的可用性(System Usability),即系统服务不中断运行时间占实际运行时间的比例,所以高可用性就比较好理解了:系统服务不中断运行时间占实际运行时间的占比更大,换句话说符合我们的预期。

其次,系统的可用性由哪些因素决定或受哪些因素影响呢?其实我们可以想象下,有没有系统可以提供长久的不中断服务?有人会回答说:有!真的这么肯定? 
其实,对于一个简单的系统,在单位时间内是可以保证服务不中断的,但无法保证:forever ,更何况现在的系统复杂性越来越高!又因为服务器硬件老化、供电及网络故障等不确定因素,很难保证这一点,所以说可用性是指一段时间内的可用性!

系统可用性取决于系统的可靠性(MTTF)及可维护性(MTTR)的高低,其中可靠性是指系统服务多久不中断,可维护性是指服务中断后多久可恢复。那这3者是怎样的关系呢? 
System Usability = MTTF / ( MTTF + MTTR ) * 100%

备注: 
MTTF:平均无故障时间 
MTTR:平均故障修复时间 
MTBF:平均故障间隔时间 
其中,MTBF = MTTF + MTTR,故System Usability = MTTF / MTBR * 100%

那在实际的案例中如何计算呢?我们接着来了解下系统结构。

对于串联系统: 

技术分享

对于并联系统: 

技术分享

对于组合系统: 

技术分享

以下是系统可用性与停机时间的一个关系图: 

技术分享

最后,如何提高系统的可用性呢?其实就是如何提高系统的可靠性和可维护性!

(1) 对于系统中某个节点而言(可能是一台服务器、一个组件、或者一个功能模块),要求代码健壮、性能优、硬件配置高等

(2) 对于整个系统而言,我们可以使用集群技术,这里集群分2类,一是高可用集群,二是负载集群

(3) 如果说系统无Bug或不出问题,是不可能的,所以当出现故障时快速解决显得很重要,也就是可维护性要高!我们要尽可能做到:快速发现问题定位问题、解决问题,这里依赖于监控(监控很重要),不能依赖于用户反馈,更重要的是时刻优化维护流程中不合理的地方(这一点很难,但是很有效率,因为有时解决问题需要组织层级推进,能否精简流程、快速响应等,也是我们要思考的地方)!

总结:系统的可用性不是测试出来的,而是计算出来的,它是指单位时间内一个比例值,不代表所有时候!最后送大家一句话:今天的互联网时代,对系统可用性要求非常高,它直接影响着用户体验,也是衡量我们这些技术工程师团队的能力与价值的重要标准!

老李分享:系统可用性评估

标签:

原文地址:http://www.cnblogs.com/poptest/p/5231655.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!