系统的三高指标

简介: 前面我们将功能性的需求几乎都已经都陈列出来,这些几乎是从外部因素考虑的。但对于运行系统的环境,以及系统的并发能力也是我们需要考虑的,这部分可称为非功能需求。非功能性需求包括:可用性、并发能力、性能、安全防护能力、水平扩容缩容能力、运维/运营成本等
一个人走的很快,一群人走的更远,欢迎留言点评提出你们的问题和建议。未来的日子里,一起成长,加油!!!

前言

本项目是重学Go语言后的实战项目,主要目的是加深Go学习,并通过此学习,对系统的高可用,高并发,高性能能够进一步的学习。
前面我们将功能性的需求几乎都已经都陈列出来,这些几乎是从外部因素考虑的。但对于运行系统的环境,以及系统的并发能力也是我们需要考虑的,这部分可称为非功能需求。

非功能性需求包括:可用性、并发能力、性能、安全防护能力、水平扩容缩容能力、运维/运营成本等

比如:一个系统的可用性达到99.99%。并发能力达到100万QPS,请求延迟低于500ms,能防范跨站脚本攻击,1分钟快速扩容,总成本控制在10万元每月等等,这些都是非功能需求要满足的。

所以,系统需要满足非功能需求的一些指标,以防止系统在运行时出现重大的故障。

秒杀系统的核心非功能需求主要有:高可用指标、高性能指标、高并发指标

高可用指标

  • MTBF(Mean Time Between Failure 平均可用时长) :系统正常、稳定运行的平均时长
  • MTTR(Mean Time to Repair 平均修复时长):系统从失效后到恢复正常所耗时的平均时间
  • SLA(Service-Level Agreement 服务等级协议):用于评估服务可用性等级,公式是SLA=MTBF/(MTBF+MTTR)。可用性高于99.99%,是指SLA高于99.99%

系统高可用的指标是SLA来判断

系统P 是由四个子系统a、b、c、d构成。那么,系统P的SLA是低于其他四个子系统;下游系统的SLA通常需要高于上游SLA,这样才能保证上游系统的稳定

高并发指标

QPS(Queries Per Second 每秒查询率)是衡量系统的承载能力。

不同的业务对并发能力要求不一致,用户量小的系统对并发要求相对比较低,用户量大的就要求比较高。

评估高并发指标,通常需要从用户增长、用户习惯、业务形态、系统承载能力等方面分析。就比如,秒杀系统,用户量肯定远大于库存量,库存一旦为0则活动就结束。

系统资源在设计上保留10%~20%的余量,以便应对突发流量

评估用户增长情况,需要月/日活用户的量,再加上因推广过程带来的用户增长来预估一个当日活动可能达到一个用户量。然后在业务系统设计上保留余量。

比如评估业务承载最高270万QPS,底层Redis承载能力1万QPS。实际设计中,业务承载服务300万,要高些以防突发突增流量,底层Redis资源8000QPS,低一些,因为底层资源比较固定不容易扩容,需要限制QPS不要超出其最大承载能力

高性能指标

对于电商平台如果访问请求超过2s影响用户体验,超出5s有可能导致流失用户,造成损失。以下因素将会影响性能指标:

  • 用户网络环境
  • 请求/返回数据大小
  • 业务系统CPU、内存、磁盘等性能
  • 下游资源的性能
  • 算法实现是否高效
  • 请求链路长短

为确保满足性能要求,我们对这边流量比较大的系统一般需要做大量的性能测试和性能调优。

场景:用户请求系统的网络环境延迟100ms,请求/返回数据处理为10ms,业务内部磁盘操作30ms,请求下游资源10ms,算法计算5ms。那么,整个请求共耗时将超过155ms。

如果超过155ms对公司造成一定损失,那么我们还需要继续优化性能。当然,优化过程也需要考虑成本等各种问题,并非指标越高越好。

目录
相关文章
|
4月前
|
缓存 运维 前端开发
【分布式】衡量网站的性能指标
【1月更文挑战第25天】【分布式】衡量网站的性能指标
|
4月前
北极星指标有哪些优缺点
北极星指标有哪些优缺点
82 0
|
11月前
|
数据采集 SQL 运维
巧用指标平台DataIndex,五步法轻松实现指标管理
在业务发展初期,企业需要做好规范的指标管理,以保证随着业务的不断发展,数据化决策能够成为业务强有力的支撑。本文将为大家详解如何通过袋鼠云指标管理平台DataIndex 进行规范化的指标开发管理,轻松开发指标,避免各类指标问题。
748 0
|
4月前
北极星指标是什么
北极星指标是什么
251 0
|
4月前
软件体系结构 - 可靠性指标
软件体系结构 - 可靠性指标
162 0
软件体系结构 - 可靠性指标
|
4月前
|
消息中间件 Cloud Native Java
项目环境稳定性指标建设之路
这篇文章讨论了项目环境在集团研发中的重要性,它是一个灵活的平台工具,用于支持联调测试和不同阶段的环境隔离。早期的项目环境管理存在任务重复运行、单机处理瓶颈和任务猝死等问题。为了解决这些问题,文章介绍了通过引入领域驱动设计(DDD)来重构流程引擎,创建了统一的异常处理和任务执行接口,增强了异常处理能力,并通过分布式分片任务、工厂模式和责任链模式实现了任务的分布式运行。此外,还使用分布式锁解决了多机忙等和任务重复执行的问题,提高了任务执行效率。优化后,环境创建成功率提升至99%以上,创建时间降低至100秒以下,系统异常率低于1%,并且能够应对更高的并发量。
|
4月前
|
安全 搜索推荐 C++
指标体系构建-01-什么是数据指标
指标体系构建-01-什么是数据指标
|
SQL 缓存 运维
系统性能指标:洞察系统运行的关键脉搏
系统性能指标:洞察系统运行的关键脉搏
|
SQL 缓存 网络协议
架构师的视角分析系统性能指标
一、一次请求全链路图 步骤一:DNS解析,,用户在浏览器输入URL按回车,请求会进行DNS查找,浏览器通过DNS解析查到域名映射的IP地址,查找成功后,浏览器会和该IP地址建立连接。对应的性能指标为:DNS解析时间。对于这个指标,我们可以通过DNS缓存或DNS预解析,适当增大域名的TTL值来增大DNS服务器缓存域名的时间,进而提升了缓存的命中率。也可以用dns-prefetch标签实现域名的预解析,让浏览器在后台把要用的DNS请求提前解析,当用户访问的页面中包含了预解析的域名时,再次解析DNS就不会有延迟了。 步骤二:建立TCP连接,由于HTTP是应用层协议,TCP是传输层协议,所以HTT
117 0
|
数据采集 编解码 监控
网站性能指标设计详解
网站性能指标设计详解
397 0
网站性能指标设计详解