架构之高可用: 可用性几个9
架构之高可用: 可用性几个9
1. 简介
SLA:服务等级协议(简称:SLA,全称:service level agreement)。是在一定开销下为保障服务的性能和可用性,服务提供商与用户间定义的一种双方认可的协定。通常这个开销是驱动提供服务质量的主要因素。
SLA的定义来源百度,这到底是什么意思呢?
我们平常经常看到互联网公司喊口号,我们今年一定要做到3个9、4个9,即99.9%、99.99%,甚至还有5个9,即99.999%。
2. 这么多9代表什么意思呢?
首先,SLA的概念,对互联网公司来说就是网站服务可用性的一个保证。9越多代表全年服务可用时间越长服务更可靠,停机时间越短,反之亦然。
3. 这么多9是怎么计算的呢?
全年拿365天做计算吧,看看几个9要停机多久时间做能才能达到!
1年 = 365天 = 8760小时
99.9 = 8760 * 0.1% = 8760 * 0.001 = 8.76小时
99.99 = 8760 * 0.0001 = 0.876小时 = 0.876 * 60 = 52.6分钟
99.999 = 8760 * 0.00001 = 0.0876小时 = 0.0876 * 60 = 5.26分钟
从以上看来,全年停机5.26分钟才能做到99.999%,即5个9。依此类推,要达到6个9及更多9,可说是非常难了吧。
4. 为什么需要更多的9
每个公司对几个9的定义都不一样,互联网公司至少都是99.99吧。像一些政府网站,如社保公积金等,经常故障服务不可用,能做到99.9就不错了。
如果我们提供的服务可用性越低,意味着造成的损失也越大,别的不说,如果是特别重要的时刻,或许就在某一分钟,你可能就会因服务不可用而丢掉一笔大的订单,这都是始料未及的。所以,只要尽可能的提升SLA可用性才能最大化的提高企业生产力。
要做到更多的9,就要不断的监控自己的服务,服务挂掉能及时恢复服务。就像开车出远门,首先得检查轮胎,同时还得准备一个备胎一样的道理。
5. 怎么做到更多的9
6. (补充)性能指标TP50、TP90、TP99、TP999
6.1 TP指标说明
TP指标: 指在一个时间段内,统计该方法每次调用所消耗的时间,并将这些时间按从小到大的顺序进行排序, 并取出结果为:总次数*指标数=对应TP指标的值,再取出排序好的时间。
TP=Top Percentile,Top百分数,是一个统计学里的术语,与平均数、中位数都是一类。
TP50、TP90、TP99和TP999等指标常用于系统性能监控场景,指高于50%、90%、99%等百分线的情况
6.2 计算/统计方法
TP50:指在一个时间段内(如5分钟),统计该方法每次调用所消耗的时间,并将这些时间按从小到大的顺序进行排序,取第50%的那个值作为TP50的值;配置此监控指标对应的报警阀值后,需要保证在这个时间段内该方法所有调用的消耗时间至少有50%的值要小于此阀值,否则系统将会报警。
TP90,TP99,TP999与TP50值计算方式一致,它们分别代表着对方法的不同性能要求,TP50相对较低,TP90则比较高,TP99,TP999则对方法性能要求很高
6.3 举例说明
有一个方法testTP(),6次请求的响应时间:13ms、38ms、23ms、45ms、17ms、56ms,升序排序后为[13ms、17ms、23ms、38ms、45ms、56ms]
计算取值
TP50:650%=3,
TP90:690%=5.4~6,
TP99:6*99%=5.94~6,
TP999:6*99.9%=5.994~6,
根据百分数的定义可知
TP50=23ms,取排序为3的值,
TP90=56ms,取排序为6的值,
TP99=56ms,取排序为6的值,
TP999=56ms,取排序为6的值