分布式技术原理与算法解析
聂鹏程
智载云帆 CTO,前华为分布式 Lab 资深技术专家
39663 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 43 讲
分布式技术原理与算法解析
15
15
1.0x
00:00/00:00
登录|注册

02 | 分布式系统的指标:啥是分布式的三围

总结与思考
不同场景下分布式系统的指标
可扩展性(Scalability)
可用性(Availability)
资源占用(Resource Usage)
性能(Performance)
分布式系统的指标

该思维导图由 AI 生成,仅供参考

你好,我是聂鹏程。
在上一篇文章中,通过对分布式发展历程的学习,我们对分布式技术有了一个整体印象。接下来,我们就再来看看可以用哪些指标去具体地衡量一个分布式系统。如果你已经对分布式系统的指标了解得很清楚了,可以直接跳过这篇文章,学习下一讲的内容。

分布式系统的指标

从分布式技术的起源可以看出,分布式系统的出现就是为了用廉价的、普通的机器解决单个计算机处理复杂、大规模数据和任务时存在的性能问题、资源瓶颈问题,以及可用性和可扩展性问题。换句话说,分布式的目的是用更多的机器,处理更多的数据和更复杂的任务。
由此可以看出,性能、资源、可用性和可扩展性是分布式系统的重要指标。没错,它们就是分布式系统的“三围”。接下来,我们一起来看看这几个指标吧。

性能(Performance)

性能指标,主要用于衡量一个系统处理各种任务的能力。无论是分布式系统还是单机系统,都会对性能有所要求。
不同的系统、服务要达成的目的不同,关注的性能自然也不尽相同,甚至是相互矛盾。常见的性能指标,包括吞吐量(Throughput)、响应时间(Response Time)和完成时间(Turnaround Time)。
吞吐量指的是,系统在一定时间内可以处理的任务数。这个指标可以非常直接地体现一个系统的性能,就好比在客户非常多的情况下,要评判一个银行柜台职员的办事效率,你可以统计一下他在 1 个小时内接待了多少客户。常见的吞吐量指标有 QPS(Queries Per Second)、TPS(Transactions Per Second)和 BPS(Bits Per Second)。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

分布式系统的指标是评估系统性能的重要标准,包括性能、资源占用、可用性和可扩展性。性能指标涵盖吞吐量、响应时间和完成时间,资源占用指标反映系统所需硬件资源,可用性指标衡量系统在异常情况下的服务提供能力,可扩展性指标通过扩展集群机器规模提高系统性能和计算能力。在不同业务场景中,设计者需根据需求权衡这些指标。电商系统注重吞吐量,IoT系统关注资源占用,电信业务重视响应时间和可用性,HPC系统需关注加速比,大数据系统首要考虑扩展性,云计算系统关注任务完成时间和资源开销,区块链系统注重吞吐量和完成时间。文章提出了分布式系统指标之间的相互制约和冲突,鼓励读者思考这些关系。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《分布式技术原理与算法解析》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(35)

  • 最新
  • 精选
  • 开心小毛
    离开响应时间的要求是无法衡量QPS的,例如一个每秒处理100个查寻且99%响应时间200秒的系统,同样可以每秒处理1000个查询且99%响应时间1秒。如果继续放松对响应时间的要求,每秒处理查询数峰值可能到达5000,但99%响应时间已经到了无法忍受的程度,所以QPS不能被定为5000。

    作者回复: 首先非常感谢你的留言。肯定是像你说的这样,离开了约束去谈任何指标都是没有意义的。这也是我为什么在文章中谈到各种指标会相互制约、相互冲突的原因。所以,你的回复也是在一定程度上回复了我在文末留下的思考题。 在这里,我替所有的订阅者感谢你精彩的回复!!!

    2019-09-24
    3
    25
  • 开心小毛
    把QPS解释成每秒处理的查询数是有问题的,应该解释为可确保某给定响应时间下的每秒到达的查询数的上限。例如,某单核系统在99%分位200ms响应时间的要求下,系统最多能承受1000个查询,则QPS为1K, 而不是5。

    作者回复: 再次感谢你的留言。正如刚才我讲到的:离开了约束去谈任何指标都是没有意义的。在解释BPS的时候,我也提到了查询和查询,事务和事务之间也是不尽相同的。不尽相同的地方也就包括你所说的响应时间。其实影响QPS的不仅仅只是响应时间,还包括其它的约束,如资源占用等。为了不过多影响阅读体验,我并没有把所有的约束放在定义中,而是选择把这个点作为一个课后习题。 在这里,我再次替所有的订阅者感谢你精彩的回复!!! 也欢迎你再次思考文末的问题。期待你更精彩的留言!

    2019-09-24
    16
  • 张理查
    分布式技术原理与算法#Day2 分布式就是更多的机器处理更多的数据,更复杂的业务。就像算法要先知道时间复杂度与空间复杂度一样,分布式系统也有其评价体系,我们希望的是吃的少跑得快跑不死的马🐴。就是既想马儿跑,又想马儿不吃草,还想马儿死不了。也就是性能好,资源占用低,高可用的可扩展系统。 性能包括了吞吐量,响应时间和完成时间。读业务关注qps,写业务关注tps,传输关注bps。 资源关注cpu ram 磁盘 gpu ssd等等,用得越少越好,要看系统不跑的空载占用,也要看系统跑到极限的满载占用。 可用性就是系统的故障率,越小越可用,这里还有个可靠性的概念,可以理解为可靠性对标的硬件,但硬件的不可靠会带来系统的不可用,因此经常模糊。 可扩展性就不用说了,是分布式的初衷,但好的分布式系统是线性扩展的,即数量增加一倍,性能提升一倍,但这仅仅是理想情况。 当然不可能有上面提到的神马,一定是有取舍的,跑得快一般吃得多,吃得多容易死得早,而活得久又不能跑太快,要看关注点。

    作者回复: 优秀,总结的非常好,这个马的比喻确实很形象!

    2019-12-20
    6
  • leslie
    老师今天的东西里面是不是有疏漏啊?吞吐量里面其实就有一对有冲突的:QPS和TPS是很难做到没有没有冲突的;存储中间件/数据系统中大多数都有这种问题,RMDB是最典型的,即使是做了读写分离同样无法解决,故而才会从过去的模式升级出一主多从、双主、、、各种数据模型;甚至我们的硬件磁盘都是读性能远强于写性能。吞吐量内部就有一对互相约束的指标。 资源占用和可用性其实是有约束的:物联网中的这对其实在MQ上上就非常非常明显,不然就不至于需要特意去使用MQTT协议;9月24号《消息队列高手课》中刚好强调了这点。 其它就暂时不知:可能学习学习的还不够深入吧;毕竟学无止尽,觉得明白了一些懂了一些发现还有关联,就像之前的某些课程学习中发现学员感悟其实是另外一门同时在学的老师写的。期待老师答案的揭晓:谢谢老师的教诲。

    作者回复: 没有问题的哦。我在介绍性能指标刚开始就强调了“不同的系统、服务要达成的目的不同,关注的性能自然也不尽相同”,QPS、TPS作为吞吐量指标当然是性能指标。你的留言质量非常高,从一定程度上也回复了我文末的思考题。 加油!继续保持这种学习+思考+分享的习惯!期待你更多留言!

    2019-09-24
    6
  • 蚂蚁内推+v
    LOT 是什么系统能请教下吗

    作者回复: 你说的应该是IoT吧?IoT是Internet of Things物联网的缩写

    2019-09-24
    3
    3
  • zhaozp
    打卡文章学习: 1、分布式系统的衡量指标:性能、资源占用、可用性和可扩展性。 性能:吞吐量(QPS、TPS、BPS)、响应时间、完成时间。 资源占用:系统正常运行占用的硬件资源,比如CPU、内存、硬盘等。 可用性:系统停止时间与总时间的占比,或者某功能失败次数与总请求数据之比衡量。就是我们常说的4个9、5个9。 可扩展性:垂直扩展和水平扩展。 2、不同的分布式场景,所衡量的指标侧重点是不一样的,系统设计时需要有所取舍。

    作者回复: 积跬步,而终至千里!加油!

    2019-09-29
    1
  • 鸭先知
    分布式的目的是用更多的机器,处理更多的数据和更复杂的任务。高性能、低资源占用、高可用性和高可扩展性是衡量一个分布式系统是否成功的重要指标,单这四个目标难以兼顾。

    作者回复: 通常情况下是根据业务特征,综合考虑这四个指标

    2020-03-29
  • sky
    老师好:我认为的分布式三围是CAP。不知道老师是讲解的角度不同,还是其它什么?

    作者回复: 本文将的分布式三围指的是分布式的指标,CAP在本专栏归结围分布式系统的特征,具体可参考“23 CAP理论:这顶帽子我不想要”

    2019-10-10
  • 静水流深
    打卡,谢谢老师分享

    作者回复: 不积小流无以成江海,加油!

    2019-10-09
  • Geek_f6f02b
    CAP原理就是讲一个系统无法同时满足一致性,高可用性与分布式。至多只能满足其中2项。单机就是CA一致性且高可用(时间上的高可用,没有同步数据耗时,相同时间可以处理更多问题),如今的分布式肯定是要有P,那么剩下的只能选CP跟AP了。像cdn服务就属于AP高可用且为分布式,像pxc数据库就属于CP一致性且分布式,不知道这样理解对不对?很明显你要满足一致性且分布式就不可能满足高可用,因为同步数据肯定要耗时。其它也一样,不是在于技术是否能实现,而是这个是内在矛盾,不可能通过技术解决,只能取舍。
    2019-10-04
    6
收起评论
显示
设置
留言
35
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部