系统SLA

SLA:Service-Level-Aggrement,即服务等级协议。常见的4中SLA指标:可用性、准确性、系统容量和延迟。

可用性(Availability)

可用性指的是系统服务能正常运行所占的时间百分比。

一般情况下,四个9的可用性(99.99%)或每年50分钟以内的中断时间,就被定义为高可用

虽然理论上来说,可用性越高越好,最好是到100%,但是现实告诉我们,从99% —》99.9% —》 99.99% —》99.9999% —》100%,难度是几何增加的,并且成本也越来越大。

在这里插入图片描述

我们在做系统设计或架构时,这是一个很重要的权衡点,假设可用性从99到99.9的成本是1,那么99.9到99.99的成本可能是10或20,这个代价是不是值得,很多时候是需要做一个trade-off的。

强如阿里云、亚马逊、谷歌等提供的云服务,也不能做到说100%的可用性。极端情况也会出现服务中断(机房着火、网线被挖断、发生地震等)。

我们以99.99%的可用性为例,这就意味着,我们一年的服务不可用时间最多为:365 * 24* 3600 * 0.0001 = 3153.6秒, 约等于52分钟。现在就能够看出来,假如说多一个9的可用性,其实就意味着服务不可用时间缩短了10倍,难度是倍增的。

准确性(Accuracy)

准确性指的是系统在一定时间段内,能够接受的数据丢失或数据不准确的程度。

往往有两个指标:一定时间范围内数据错误率、一定时间范围内数据丢失的比例,我这里用Error Rate和Miss Rate来表示。

不准确率,一般是针对OLAP系统来说的,因为更加注重分析的能力,因此能够接受一定程度的不准确性。假设5分钟内的错误率为1%,意味着,在五分钟内,假如来了10000的请求,那么允许错误的请求为10000 * 1% = 100个。

丢失率其实同理,就是能接受的数据丢失的比例。

关于OLAP和ALTP系统,我这里不做展开,分别举两个例子,详细的内容自行google。

OLAP:Doris数据库、Clickhouse

OLTP:Mysql、Oracle

系统容量(Capacity)

系统容量通常指的就是系统的负载,我们可以用核心链路的QPS(Query per second)和TPS(Transaction per second)或者吞吐量来表示。

那我们在系统建设完成之后,怎么给出这个系统的负载呢?通常有以下几种方式:

  • 压测,可以通过Jmeter压测工具
  • 限流,在网关或server端做限流,例如使用google 的guava中的RateLimit或者使用分布式的缓存中间件。

当然,我们在压测或限流中,需要注意几点:

  • 压测数据尽量避免热点、需要做到足够分散,数学上叫离散。
  • 压测环境的配置要跟生产环境严格一致,这里给出几个细项:服务器的cpu、内存、磁盘(是否SSD)、服务器的带宽、所在网络域、数据库的相关配置等。
  • 一般系统都会用到缓存,那么需要考虑缓存命中率。因为命中缓存和直接查库,性能相差很大。性能差距可以参考下面的延迟数量级。
  • 限流,假如是利用的进程级别的限流,那么可能会不准,依赖于上游流量负载的策略。
Latency numbers every programmer should know
L1 cache reference ......................... 0.5 ns
Branch mispredict ............................ 5 ns
L2 cache reference ........................... 7 ns
Mutex lock/unlock ........................... 25 ns
Main memory reference ...................... 100 ns             
Compress 1K bytes with Zippy ............. 3,000 ns  =   3 µs
Send 2K bytes over 1 Gbps network ....... 20,000 ns  =  20 µs
SSD random read ........................ 150,000 ns  = 150 µs
Read 1 MB sequentially from memory ..... 250,000 ns  = 250 µs
Round trip within same datacenter ...... 500,000 ns  = 0.5 ms
Read 1 MB sequentially from SSD* ..... 1,000,000 ns  =   1 ms
Disk seek ........................... 10,000,000 ns  =  10 ms
Read 1 MB sequentially from disk .... 20,000,000 ns  =  20 ms
Send packet CA->Netherlands->CA .... 150,000,000 ns  = 150 ms

延时(Latency)

延迟指的是系统在收到用户请求到响应这个请求所耗费的时间。针对某次请求,也可以用rt来表示。

更通用的延迟表示格式为,P95为20ms或p99在20ms。这里的P99表示的是百分之99的请求,都在20ms内返回了,剩余百分之一的请求超过了20ms。

这是一项很重要的指标,往往系统容量和延迟是我们讨论的最多的。

总结

假如作为一个架构师,利用SLA精准的描述和定义一个系统是非常重要的。在做架构演进或优化过程中,始终将SLA作为衡量标准。

当然作为一名技术,当下次客户问到,你们系统/产品提供什么样的SLA?就可以按照以上四个维度来解释。

  • 27
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
等保2.0系统SLA手册是指在等保2.0(信息安全等级保护2.0)标准下,规定了系统服务提供商和用户之间的服务级别协议(Service Level Agreement,SLA)。 SLA手册通常包含以下内容: 1. 服务标准:确定了服务提供商在响应时间、故障修复时间、服务可用性、安全性等方面应当达到的标准。这些标准通常是根据等保2.0标准中的要求来确定的。 2. 服务等级:将服务按照不同的等级划分,例如金牌服务、银牌服务、铜牌服务等。不同的等级对应着不同的服务水平和对等保要求的满足程度。 3. 用户权益:明确了用户在使用服务过程中的权益,例如获得补偿或赔偿、追究服务提供商责任等。 4. 服务监督与管理:规定了用户对服务提供商的监督与管理方式,例如如何提出投诉、监督服务质量等。 5. 维护与支持:说明了服务提供商在维护和支持方面的责任和义务,例如故障排除、升级更新等。 6. 保密与安全:明确了服务提供商和用户在数据保密和信息安全方面的责任。根据等保2.0标准的要求,服务提供商应确保数据的机密性、完整性和可用性,同时也应遵守相关的隐私法律法规。 等保2.0系统SLA手册可以作为服务提供商和用户之间的合同依据,确保服务的质量和安全性,保障用户的权益。同时,SLA手册也是监督和评估服务提供商履行责任的重要依据,对于提升系统服务质量和用户满意度具有重要作用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值