架构之高可用: 可用性几个9

zszdevelop架构大约 4 分钟

架构之高可用: 可用性几个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 举例说明

  1. 有一个方法testTP(),6次请求的响应时间:13ms、38ms、23ms、45ms、17ms、56ms,升序排序后为[13ms、17ms、23ms、38ms、45ms、56ms]

  2. 计算取值

    TP50:650%=3,

    TP90:690%=5.4~6,

    TP99:6*99%=5.94~6,

    TP999:6*99.9%=5.994~6,

  3. 根据百分数的定义可知

    TP50=23ms,取排序为3的值,

    TP90=56ms,取排序为6的值,

    TP99=56ms,取排序为6的值,

    TP999=56ms,取排序为6的值

参考文章

SLA服务可用性4个9是什么意思?怎么达到?open in new window

Loading...